2.0.2 • Published 6 years ago
gulp-ex-file-include v2.0.2
gulp-ex-file-include
a plugin of gulp for file include
install
npm install gulp-ex-file-include
options
- options - type:
string
, just as prefix, default@@
, and basepath is default@file
fileinclude('@@')
options - type:
object
- prefix:
string
, default@@
- suffix:
string
, default''
- basepath:
string
, default@file
, it could be@root
,@file
,your-basepath
- filters:
object
, filters of include content - context:
object
, context ofif
statement - indent:
boolean
, defaultfalse
- prefix:
options.basepath - type:
string
, it could be@root
, include file relative to the dir wheregulp
running in@file
, include file relative to the dir wherefile
in exampleyour-basepath
include file relative to the basepath you give
fileinclude({
prefix: '@@',
basepath: '@file'
})
fileinclude({
prefix: '@@',
basepath: '/home/'
})
example
- @@include options - type:
JSON
index.html
<!DOCTYPE html>
<html>
<body>
@@include('./view.html')
@@include('./var.html', {
"name": "haoxin",
"age": 12345,
"socials": {
"fb": "facebook.com/include",
"tw": "twitter.com/include"
}
})
</body>
</html>
view.html
<h1>view</h1>
var.html
<label>@@name</label>
<label>@@age</label>
<strong>@@socials.fb</strong>
<strong>@@socials.tw</strong>
gulpfile.js
var fileinclude = require('gulp-file-include'),
gulp = require('gulp');
gulp.task('fileinclude', function() {
gulp.src(['index.html'])
.pipe(fileinclude({
prefix: '@@',
basepath: '@file'
}))
.pipe(gulp.dest('./'));
});
and the result is:
<!DOCTYPE html>
<html>
<body>
<h1>view</h1>
<label>haoxin</label>
<label>12345</label>
<strong>facebook.com/include</strong>
<strong>twitter.com/include</strong>
</body>
</html>
filters
<!DOCTYPE html>
<html>
<body>
@@include(markdown('view.md'))
@@include('./var.html', {
"name": "haoxin",
"age": 12345
})
</body>
</html>
view.md
view
====
var fileinclude = require('gulp-file-include'),
markdown = require('markdown'),
gulp = require('gulp');
gulp.task('fileinclude', function() {
gulp.src(['index.html'])
.pipe(fileinclude({
filters: {
markdown: markdown.parse
}
}))
.pipe(gulp.dest('./'));
});
include
statement
index.html
@@include('file.html', {
"fileName": "index.txtIndex.txtIndex",
"arr": []
})
include
statement + data.json
index.html
@@include('article.html', 'data.json')
data.json
{
"fileName": "filenamefilename",
"arr": [
{
"name": "Lili"
}, {
"name": "Lala"
}, {
"name": "FeFe"
}
]
}
include
statement + variable
- index.html
@@inlcude("list.html", {
"title": "列表",
"list": [
{ "title": "My post title", "text": "<p>lorem ipsum...</p>" },
{ "title": "Another post", "text": "<p>lorem ipsum...</p>" },
{ "title": "One more post", "text": "<p>lorem ipsum...</p>" }
]
})
- list.html
<body>
@@title
@@loop("item.html", `list`)
</body>
- item.html
<div>
@@title
@@text
</div>
if
statement
fileinclude({
context: {
name: 'test'
}
});
@@include('some.html', { "nav": true })
@@if (name === 'test' && nav === true) {
@@include('test.html')
}
for
statement
fileinclude({
context: {
arr: ['test1', 'test2']
}
});
<ul>
@@for (var i = 0; i < arr.length; i++) {
<li>`+arr[i]+`</li>
}
</ul>
loop
statement
- index.html
<body>
@@loop('loop-article.html', [
{ "title": "My post title", "text": "<p>lorem ipsum...</p>" },
{ "title": "Another post", "text": "<p>lorem ipsum...</p>" },
{ "title": "One more post", "text": "<p>lorem ipsum...</p>" }
])
</body>
- loop-article.html
<article>
<h1>@@title</h1>
@@text
</article>
loop
statement + data.json
data.json
[
{ "title": "My post title", "text": "<p>lorem ipsum...</p>" },
{ "title": "Another post", "text": "<p>lorem ipsum...</p>" },
{ "title": "One more post", "text": "<p>lorem ipsum...</p>" }
]
- loop-article.html
<body>
@@loop("loop-article.html", "data.json")
</body>
loop
statement + variable
- index.html
@@inlcude("loop-article.html", {
"list": [
{ "title": "My post title", "text": "<p>lorem ipsum...</p>" },
{ "title": "Another post", "text": "<p>lorem ipsum...</p>" },
{ "title": "One more post", "text": "<p>lorem ipsum...</p>" }
]
})
- loop-article.html
<body>
@@loop("loop-article.html", `list`)
</body>
webRoot
built-in context variable
The webRoot
field of the context contains the relative path from the source document to
the source root (unless the value is already set in the context options).
example
support/contact/index.html
<!DOCTYPE html>
<html>
<head>
<link type=stylesheet src=@@webRoot/css/style.css>
</head>
<body>
<h1>Support Contact Info</h1>
<footer><a href=@@webRoot>Home</a></footer>
</body>
</body>
</html>
and the result is:
<!DOCTYPE html>
<html>
<head>
<link type=stylesheet src=../../css/style.css>
</head>
<body>
<h1>Support Contact Info</h1>
<footer><a href=../..>Home</a></footer>
</body>
</body>
</html>
License
MIT