Install
npm i -D posthtml-load-options
Usage
package.json
Create a posthtml section in package.json.
Root
|– client
|– public
|
|- package.json
{
"dependencies": {
"posthtml-sugarml": "^1.0.0"
},
"posthtml": {
"parser": "posthtml-sugarss",
"from": "path/to/src/file.html",
"to": "path/to/dest/file.html"
}
}.posthtmlrc
Create a .posthtmlrc file.
Root
|– client
|– public
|
|-.posthtmlrc
|- package.json
{
"parser": "posthtml-sugarss",
"from": "path/to/src/file.html",
"to": "path/to/dest/file.html"
}posthtml.config.js
Create a posthtml.config.js file.
Root
|– client
|– public
|
|- posthtml.config.js
|- package.json
module.exports = (ctx) => { return { parser: ctx.ext ==='.sml' ? 'posthtml-sugarss' : false, from: 'path/to/src/file.html', to: 'path/to/dest/file.html' } }
Options
parser:
parser: 'posthtml-sugarss'from:
from: 'path/to/dest/file.html'to:
to: 'path/to/dest/file.html'render:
Context
When using a function in (posthtml.config.js), it's possible to pass context to posthtml-load-options, which will be evaluated before loading your options. By default ctx.env (process.env.NODE_ENV) and ctx.cwd (process.cwd()) are available.
Example
posthtml.config.js
export default config = (ctx) => { return { parser: ctx.ext === '.sml' ? 'posthtml-sugarml' : false, from: 'client/index.html', to: 'public/index.html' } }
import { dirname } from 'path' import { readFileSync } from 'fs' import posthtml from 'posthtml' import optionsrc from 'posthtml-load-options' const sml = readFileSync('./client/index.sml', 'utf8') const ctx = { ext: dirname(sml) } optionsrc(ctx).then((options) => { posthtml() .process(sml, options) .then((result) => console.log(result.html)) }))