npm i -D posthtml-load-options
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"
}
}
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"
}
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'
}
}
parser
:
parser: 'posthtml-sugarss'
from
:
from: 'path/to/dest/file.html'
to
:
to: 'path/to/dest/file.html'
render
:
render: 'posthtml-jsx'
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.
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))
}))
Michael Ciniawsky |