Skip to content

posthtml/posthtml-load-plugins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm version Dependencies Build Status Coverage Status XO Code Style

Autoload Plugins for PostHTML

Install

(sudo) npm i -D posthtml-load-plugins

Usage

Plugins will be loaded directly from your projects package.json file or local installed plugins.
Install them as usual with npm i -S or npm i -D or npm i.

PostHTML Plugins

After installing your plugins there a three ways to declare your plugin options.

  • Set options directly as arguments.
  • Set options in your package.json.
  • Create a separated [name].[ext] file, where [name] is any name you like and [ext] should be either .js or .json. For an example of well formed options file see below.
  • For plugins not having rules installed locally will be used default settings.
  • Pretty reporting about not installed plugins.

Options

package.json

{
    "dependencies": {
        "posthtml-bem": "^0.2.2",
        "posthtml-each": "^1.0.1",
        "posthtml-include": "^1.0.2"
},
    "devDependencies": {
        "posthtml-style-to-file": "^0.1.1"
},
    "posthtml": {
        "bem": {
            "elemPrefix": "__",
            "modPrefix": "-",
            "modDlmtr": "--"
        },
        "include": {
            "root": "./",
            "encoding": "utf-8"
        },
        "styleToFile": {
            "path": "./dist/style.css"
        }
    }
}

[name].[ext]

JS

module.exports = {
    bem: {
        elemPrefix: '__',
        modPrefix: '-',
        modDlmtr: '--'
    },
    include: {
        root: './',
        encoding: 'utf-8'
    },
    styleToFile: {
        path: './dist/style.css'
    }
}

or

module.exports = [
    {
        bem: {
            elemPrefix: '__',
            modPrefix: '-',
            modDlmtr: '--'
        },
        include: {
            root: './',
            encoding: 'utf-8'
        }
    }, {
        styleToFile: {
            path: './dist/style.css'
        }
    }
]

JSON

{
    "bem": {
        "elemPrefix": "__",
        "modPrefix": "-",
        "modDlmtr": "--"
    },
    "include": {
        "root": "./",
        "encoding": "utf-8"
    },
    "styleToFile": {
        "path": "./dist/style.css"
    }
}

Usage

For general usage and build process integration see PostHTML Docs

Examples using Node API

Default

const fs = require('fs');

const posthtml = require('posthtml');
const plugins = require('posthtml-load-plugins');

let html = fs.readFileSync('./index.html', 'utf8');

posthtml(plugins([object|array[objects]|file] /* options */, [object|array[objects]|file] /* extends */))
    .process(html)
    .then(result => console.log(result.html));

Options file (e.g posthtml.json)

const fs = require('fs');

const posthtml = require('posthtml');
const plugins = require('posthtml-load-plugins')('posthtml.(js|json)');

let html = fs.readFileSync('./index.html', 'utf8');

posthtml(plugins)
    .process(html)
    .then(result => console.log(result.html));

Extends options

const fs = require('fs');

const posthtml = require('posthtml');
const plugins = require('posthtml-load-plugins')('posthtml.(js|json)', {"posthtml-bem": {elemPrefix: '__'}});

let html = fs.readFileSync('./index.html', 'utf8');

posthtml(plugins)
    .process(html)
    .then(result => console.log(result.html));
const fs = require('fs');

const posthtml = require('posthtml');
const standardConfig = require('posthtml-standard-config');
const plugins = require('posthtml-load-plugins')(standardConfig);

let html = fs.readFileSync('./index.html', 'utf8');

posthtml(plugins)
    .process(html)
    .then(result => console.log(result.html));

Contributors

GitScrum
Ivan Demidov

License

MIT