igo
Version:
Igo is a Node.js Web Framework based on Express
83 lines (61 loc) • 2.02 kB
Markdown
Igo.js uses the [Igo Dust.js](https://github.com/igocreate/igo-dust) templating engine.
The templates files are located in the `/views` directory.
```js
// will render "/views/users/show.dust"
res.render('users/show');
```
The Igo Dust.js documentation can be found [here](https://igocreate.github.io/igo-dust/).
Igo.js uses [i18next](http://i18next.com/), which is a great module so make sure that your read their [documentation](http://i18next.com/docs).
Here is the default configuration:
```js
config.i18n = {
whitelist: [ 'en', 'fr' ],
preload: [ 'en', 'fr' ],
fallbackLng: 'en',
backend: {
loadPath: 'locales/{{lng}}/{{ns}}.json',
},
detection: {
order: [ 'querystring', 'path', 'cookie' ],
lookupPath: 'lang',
lookupQuerystring: 'lang',
lookupCookie: 'lang',
caches: [ 'cookie' ]
},
};
```
**Usage:**
Use the `{@t key="mykey" /}` syntax to insert internationalized wordings.
Translations are defined in the `/locales/{LANG}/translation.json` files.
```json
{
"mykey": "Hello World"
}
```
Igo.js allows to define custom Dust Helpers in the `/app/helpers.js` file.
```js
module.exports.init = function(dust) {
// define your dust helpers here
// (example taken from https://igocreate.github.io/igo-dust/#/guide/helpers?id=custom-helpers)
// @nl2br helper
igodust.helpers.nl2br = (params, locals) => {
if (params.value) {
return params.value.replace(/(\r\n|\n\r|\r|\n)/g, '<br/>');
};
};
// @boolean helper
igodust.helpers.boolean = (params, locals) => {
const color = params.value ? 'success' : 'danger';
return `<div class="bullet bullet-sm bullet-${color}"></div>`;
};
};
```
Igo.js have one predefined helper :
Dateformat, it take a timestamp and format it with the help of momentjs [momentjs](https://momentjs.com/)
```js
{@dateformat date=date format="calendar" /}
```