Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/posthtml/gulp-posthtml

PostHTML for Gulp
https://github.com/posthtml/gulp-posthtml

deps-url gulpfile posthtml

Last synced: about 1 month ago
JSON representation

PostHTML for Gulp

Awesome Lists containing this project

README

        

[![npm][npm]][npm-url]
[![node][node]][node-url]
[![deps][deps]][deps-url]
[![tests][tests]][tests-url]
[![coverage][cover]][cover-url]
[![code style][style]][style-url]
[![chat][chat]][chat-url]






Gulp PostHTML


Install

```bash
npm i -D gulp-posthtml
```

Usage

```js
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**
```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**
```js
import { task, src, dest } from 'gulp'

import rename from 'gulp-rename'
import posthtml from 'gulp-posthtml'

task('ssml', () => {
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`](https://github.com/posthtml/posthtml-load-config)

#### `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**
```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**
```js
import { task, src, dest } from 'gulp'

import rename from 'gulp-rename'
import posthtml from 'gulp-posthtml'

task('ssml', () => {
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


[npm]: https://img.shields.io/npm/v/gulp-posthtml.svg
[npm-url]: https://npmjs.com/package/gulp-posthtml

[node]: https://img.shields.io/node/v/gulp-posthtml.svg
[node-url]: https://nodejs.org/

[deps]: https://david-dm.org/posthtml/gulp-posthtml.svg
[deps-url]: https://david-dm.org/posthtml/gulp-posthtml

[tests]: http://img.shields.io/travis/posthtml/gulp-posthtml.svg
[tests-url]: https://travis-ci.org/posthtml/gulp-posthtml

[cover]: https://coveralls.io/repos/github/posthtml/gulp-posthtml/badge.svg
[cover-url]: https://coveralls.io/github/posthtml/gulp-posthtml

[style]: https://img.shields.io/badge/code%20style-standard-yellow.svg
[style-url]: http://standardjs.com/

[chat]: https://badges.gitter.im/posthtml/posthtml.svg
[chat-url]: https://gitter.im/posthtml/posthtml