This plugin fixes typographic-plugin
when used together with remark-parse
.
When <<a>>
is parsed by remark-parse
the resulting tree is:
root[1] (1:1-1:6, 0-5)
└─ paragraph[3] (1:1-1:6, 0-5)
├─ text: "<" (1:1-1:2, 0-1)
├─ html: "<a>" (1:2-1:5, 1-4)
└─ text: ">" (1:5-1:6, 0-1)
As you see here <<
got split into a text node <
and an HTML node.
Since remark-textr only gets applied to 'text' nodes, <<
is not replaced by «
.
This plugin replaces the previous tree with:
root[1] (1:1-1:6, 0-5)
└─ paragraph[1] (1:1-1:6, 0-5)
└─ text: "<<a>>" (1:1-1:6, 0-5)
npm:
npm install --save remark-fix-guillemets
Dependencies:
const unified = require('unified')
const remarkParse = require('remark-parse')
const stringify = require('rehype-stringify')
const remark2rehype = require('remark-rehype')
const remarkFixGuillemets = require('remark-fix-guillemets')
Usage:
unified()
.use(remarkParse)
.use(remarkFixGuillemets)
.use(remark2rehype)
.use(stringify)