gulp plugin for LiquidJs, current project https://github.com/icai/gulp-liquidr
npm install gulp-liquidr --save
The full list of options for Liquid()
is listed as following:
-
root
is a directory or an array of directories to resolve layouts and includes, as well as the filename passed in when calling.renderFile()
. If an array, the files are looked up in the order they occur in the array. Defaults to["."]
-
extname
is used to lookup the template file when filepath doesn't include an extension name. Eg: setting to".html"
will allow including file by basename. Defaults to""
. -
cache
indicates whether or not to cache resolved templates. Defaults tofalse
. -
dynamicPartials
: if set, treat<filepath>
parameter in{%include filepath %}
,{%layout filepath%}
as a variable, otherwise as a literal value. Defaults totrue
. -
strict_filters
is used to enable strict filter existence. If set tofalse
, undefined filters will be rendered as empty string. Otherwise, undefined filters will cause an exception. Defaults tofalse
. -
strict_variables
is used to enable strict variable derivation. If set tofalse
, undefined variables will be rendered as empty string. Otherwise, undefined variables will cause an exception. Defaults tofalse
. -
trim_tag_right
is used to strip blank characters (including\t
, and\r
) from the right of tags ({% %}
) until\n
(inclusive). Defaults tofalse
. -
trim_tag_left
is similiar totrim_tag_right
, whereas the\n
is exclusive. Defaults tofalse
. See [Whitespace Control][whitespace control] for details. -
trim_value_right
is used to strip blank characters (including\t
, and\r
) from the right of values ({{ }}
) until\n
(inclusive). Defaults tofalse
. -
trim_value_left
is similiar totrim_value_right
, whereas the\n
is exclusive. Defaults tofalse
. See [Whitespace Control][whitespace control] for details. -
greedy
is used to specify whethertrim_left
/trim_right
is greedy. When set totrue
, all consecutive blank characters including\n
will be trimed regardless of line breaks. Defaults totrue
.
The above is All Liquidjs initilization options.
-
tags
is used to Liquidjs instance to callregisterTag
-
filters
is used to Liquidjs instance to callregisterFilter
-
data
is used to Liquidjs instance to callparseAndRender
with stream
by the way, extname default is extname: '.html'
.
gulp.task('example', () => {
return gulp.src([
'example/views/**/*.html', // scan
'!example/views/_includes/**/*.html', // filter
'!example/views/_layouts/**/*.html' // filter
])
.pipe(liquidjs({
root: [resolve('views/'), resolve('views/_includes/'), resolve('views/_layouts/')],
filters: {
'add': (initial, arg1, arg2) => initial + arg1 + arg2
},
tags: {
'upper': {
parse: function (tagToken/*, remainTokens*/) {
this.str = tagToken.args; // name
},
render: function (scope/*, hash*/) {
var str = Liquid.evalValue(this.str, scope); // 'alice'
return Promise.resolve(str.toUpperCase()); // 'Alice'
}
}
}
}))
.pipe(gulp.dest('.tmp'))
})
Copyright (c) 2017 Terry Cai. Licensed under the MIT license.