node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

gulp-posthtml

npm node deps tests coverage code style chat

Gulp PostHTML

Install

npm i -D gulp-posthtml

Usage

import { task, src, dest } from 'gulp'
 
import posthtml from 'gulp-posthtml'
 
task('html', () => {
  return src('src/*.html')
    .pipe(posthtml())
    .pipe(dest('dest'))
})

Options

Plugins

Name Type Default Description
plugins {Array} [] PostHTML Plugins

Options

Name Type Default Description
options {Object} {} PostHTML Options

gulpfile.js

import { task, src, dest } from 'gulp'
 
import tap from 'gulp-tap'
import rename from 'gulp-rename'
import posthtml from 'gulp-posthtml'
 
task('html', () => {
  let path
 
  const plugins = [ require('posthtml-include')({ root: path }) ]
  const options = { parser: require('posthtml-sugarml')() }
 
  return src('src/*.html')
    .pipe(tap((file) => path = file.path))
    .pipe(posthtml(plugins, options))
    .pipe(rename({ ext: '.html' }))
    .pipe(dest('dest'))
})

Config

Name Type Default Description
plugins {Array} [] PostHTML Plugins
options {Object} {} PostHTML Options

gulpfile.js

import { task, src, dest } from 'gulp'
 
import rename from 'gulp-rename'
import posthtml from 'gulp-posthtml'
 
 
task('sml', () => {
  const config = (file) => {
    plugins: [ require('posthtml-include')({ root: file.dirname }) ]
    options: { parser: require('posthtml-sugarml')() }
  }
 
  return src('src/*.sml')
    .pipe(posthtml(config))
    .pipe(rename({ ext: '.html' }))
    .pipe(dest('dest'))
})

posthtml.config.js

Context

Name Type Default Description
env {String} 'development' process.env.NODE_ENV
file {Object} dirname, basename, extname File
options {Object} {} Options (Parser, Render, Plugin Options)

posthtml.config.js

module.exports = ({ file, options, env }) => ({
  parser: 'posthtml-sugarml'
  plugins: {
    'posthtml-include': { root: file.dirname },
    'posthtm-expressions': { locals: options.locals }
    'htmlnano': env === 'production' ? {} : false
  }
})

gulpfile.js

import { task, src, dest } from 'gulp'
 
import rename from 'gulp-rename'
import posthtml from 'gulp-posthtml'
 
 
task('sml', () => {
  const ctx = { locals: { a: 'Hello World!'} }
 
  return src('src/*.sml')
    .pipe(posthtml(ctx))
    .pipe(rename({ ext: '.html' }))
    .pipe(dest('dest'))
})

Maintainer


Ivan Voischev

Contributors


Michael Ciniawsky