https://github.com/coditorium/nodejs-swig-loader
https://github.com/coditorium/nodejs-swig-loader
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/coditorium/nodejs-swig-loader
- Owner: coditorium
- License: mit
- Created: 2015-03-01T21:44:29.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2024-03-13T08:50:56.000Z (over 2 years ago)
- Last Synced: 2025-03-26T05:03:06.369Z (over 1 year ago)
- Language: JavaScript
- Size: 25.4 KB
- Stars: 9
- Watchers: 2
- Forks: 3
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Webpack Swig loader
[](https://travis-ci.org/coditorium/nodejs-swig-loader)
[](https://david-dm.org/coditorium/nodejs-swig-loader)
[](https://coveralls.io/r/coditorium/nodejs-swig-loader)
[](https://www.npmjs.com/package/swig-loader)
Webpack loader for [swig](http://paularmstrong.github.io/swig) templates.
## How to use
### Webpack configuration
You can define swig loader using webpack configuration.
``` javascript
{
module: {
loaders: [
{ test: /\.swig$/, loader: "swig-loader" }
]
}
};
```
### Require parameter
You can load swig template using require parameter.
``` javascript
var template = require('swig!./template.swig');
```
### Passing swig options
You can pass [swig options](http://paularmstrong.github.io/swig/docs/api/#SwigOpts) to the loader using `swigLoader.options({ ... })` or loader query parameters. If you choose loader query parameters take a look at query [webpack standard query format](https://github.com/webpack/loader-utils#parsequery).
``` javascript
// Option #1 - Swig loader global options
var swigLoader = require('swig-loader');
swigLoader.options({
varControls: ['{:', ':}']
});
// Option #2 - Swig loader query parameters
var swigLoader = require('swig?varControls[]={:&varControls[]=:}!./template.swig');
```
### Passing template parameters
You can pass template parameters to the loader using resource query parameters. If you need to pass some parameters take a look at query [webpack standard query format](https://github.com/webpack/loader-utils#parsequery).
``` javascript
var swigLoader = require('swig!./template.swig?username=John');
```
### Customizers
You can customize `query`, `resourceQuery` and `result` using customizers:
``` javascript
var swigLoader = require('swig-loader');
swigLoader.queryCustomizer(function(query, templatepath) {
// modify query
});
swigLoader.resourceQueryCustomizer(function(resourceQuery, templatepath) {
// modify resource query
});
swigLoader.resultCustomizer(function(query, templatepath, resourceQuery, query) {
// modify result and don't forget to return it!
return result;
});
```