- Notifications
You must be signed in to change notification settings - Fork0
Autoload Config for PostHTML
License
posthtml/posthtml-load-config
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
npm i -D posthtml-load-config
npm i -S|-D posthtml-plugin posthtml-plugin ...Install plugins and save them to yourpackage.json
Create aposthtml section inpackage.json.
Root |– client |– public | |- package.json{"posthtml": {"parser":"posthtml-sugarml","from":"/path/to/src/file.sml","to":"/path/to/dest/file.html","plugins": {"posthtml-plugin": {} } }}Create a.posthtmlrc file.
Root |– client |– public | |-.posthtmlrc |- package.json{"parser":"posthtml-sugarml","from":"/path/to/src/file.sml","to":"/path/to/dest/file.html","plugins": {"posthtml-plugin": {} }}Create aposthtml.config.js file.
Root |– client |– public | |- posthtml.config.js |- package.jsonmodule.exports=(ctx)=>{return{parser:ctx.ext==='.sml' ?'posthtml-sugarml' :false,from:ctx.from,to:ctx.to,plugins:{'posthtml-plugin':ctx.plugin}}}
Plugins can be loaded either using an{Object} or an{Array} inconfig.plugins.
module.exports=(ctx)=>{return{ ...options,plugins:{'posthtml-plugin':ctx.plugin}}}
module.exports=(ctx)=>{return{ ...options,plugins:[require('posthtml-plugin')(ctx.plugin)]}}
⚠️ When using an Array, make sure torequire()them.
parser:
parser:'posthtml-sugarml'from:
from:'path/to/src/file.sml'to:
to:'path/to/dest/file.html'render:
render:'posthtml-jsx'{} || null: Plugin loads with defaults.
'posthtml-plugin':{}||null
⚠️ {}must be anempty object
[Object]: Plugin loads with given options.
'posthtml-plugin':{option:'',option:''}
false: Plugin will not be loaded.
'posthtml-plugin':false
Pluginorder is determined by declaration in the plugins section.
{plugins:{'posthtml-plugin':{},// plugins[0]'posthtml-plugin':{},// plugins[1]'posthtml-plugin':{}// plugins[2]}}
When using a function(posthtml.config.js), it is possible to pass context toposthtml-load-config, which will be evaluated while loading your config. By defaultctx.env (process.env.NODE_ENV) andctx.cwd (process.cwd()) are available.
posthtml.config.js
module.exports=(ctx)=>({parser:ctx.ext==='.sml' ?'posthtml-sugarml' :false,from:ctx.from,to:ctx.to,plugins:{posthtml-include:{},posthtml-expressions:{locals:ctx.locals},htmlnano:ctx.env==='production' ?{} :false}})
"scripts": {"build":"NODE_ENV=production node posthtml","start":"NODE_ENV=development node posthtml"}
import{readFileSync}=require('fs')constposthtml=require('posthtml')constposthtmlrc=require('posthtml-load-config')constsml=readFileSync('index.sml','utf8')constctx={ext:'.sml'}posthtmlrc(ctx).then(({ plugins, options})=>{posthtml(plugins).process(sml,options).then((result)=>console.log(result.html))})
npm i -D gulp-posthtml
package.json
"scripts": {"build":"NODE_ENV=production gulp","start":"NODE_ENV=development gulp"}
gulpfile.js
import{task,src,dest}from'gulp'importpluginsfrom'gulp-load-plugins'task('pug',()=>{constctx={locals:{}}returnsrc('src/*.pug').pipe(posthtml(ctx)).pipe(rename({ext:'.html'})).pipe(dest('dest'))})task('sml',()=>{returnsrc('src/*.sml').pipe(posthtml()).pipe(rename({ext:'.html'})).pipe(dest('dest'))})task('html',()=>{returnsrc('src/*.html').pipe(posthtml()).pipe(dest('dest'))})
npm i -D html-loader posthtml-loader
package.json
"scripts": {"build":"NODE_ENV=production webpack","start":"NODE_ENV=development webpack-dev-server"}
webpack.config.js
module.exports=(env)=>{module:{rules:[{test:/\.html$/use:['html-loader','posthtml-loader']}]}}
Michael Ciniawsky |
About
Autoload Config for PostHTML
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.