JSPM

posthtml-load-options

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2855
  • Score
    100M100P100Q122392F
  • License MIT

Autoload Options for PostHTML

Package Exports

  • posthtml-load-options
  • posthtml-load-options/lib/options.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (posthtml-load-options) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

npm node deps tests coverage code style chat

Load Options

Autoload Options for PostHTML

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:

render: 'posthtml-jsx'

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))
}))

Maintainer


Michael Ciniawsky