|
|
5 giorni fa | |
|---|---|---|
| .. | ||
| lib | 5 giorni fa | |
| index.js | 5 giorni fa | |
| package.json | 5 giorni fa | |
| readme.md | 5 giorni fa | |
Compiler for unified. Stringifies an MDAST syntax tree to markdown. Used in the remark processor. Can be extended to change how markdown is compiled.
npm:
npm install remark-stringify
var unified = require('unified');
var createStream = require('unified-stream');
var parse = require('remark-parse');
var toc = require('remark-toc');
var stringify = require('remark-stringify');
var processor = unified()
.use(parse)
.use(toc)
.use(stringify, {
bullet: '*',
fence: '~',
fences: true,
incrementListMarker: false
});
process.stdin
.pipe(createStream(processor))
.pipe(process.stdout);
processor.use(stringify[, options])Configure the processor to stringify MDAST syntax trees
to markdown.
optionsOptions are passed directly, or passed later through processor.data().
options.gfmStringify with the required escapes for GFM compatible markdown (boolean,
default: true).
|, for tables):, for literal URLs)~, for strike-through)options.commonmarkStringify for CommonMark compatible markdown (boolean, default: false).
options.pedanticStringify for pedantic compatible markdown (boolean, default: false).
options.entitiesHow to stringify entities (string or boolean, default: false):
true — Entities are generated for special HTML characters
(& > &) and non-ASCII characters (© > ©).
If named entities are not (widely) supported, numbered character
references are used (’ > ’)'numbers' — Numbered entities are generated (& > &)
for special HTML characters and non-ASCII characters'escape' — Special HTML characters are encoded (& >
&, ’ > ’), non-ASCII characters not (ö persists)options.setextCompile headings, when possible, in Setext-style (boolean, default: false).
Uses = for level one headings and - for level two headings. Other heading
levels are compiled as ATX (respecting closeAtx).
options.closeAtxCompile ATX headings with the same amount of closing hashes as opening hashes
(boolean, default: false).
options.looseTableCreate tables without fences: initial and final pipes (boolean, default:
false).
options.spacedTableCreate tables without spacing between pipes and content (boolean, default:
true).
options.paddedTableCreate tables with padding in each cell so that they are the same size
(boolean, default: true).
options.stringLengthFunction passed to markdown-table to detect the length of a
table cell (Function, default: s => s.length).
options.fenceFence marker to use for code blocks ('~' or '`', default: '`').
options.fencesStringify code blocks without language with fences (boolean, default:
false).
options.bulletBullet marker to use for unordered list items ('-', '*', or '+',
default: '-').
options.listItemIndentHow to indent the content from list items ('tab', 'mixed' or '1',
default: 'tab').
'tab': use tab stops (4 spaces)'1': use one space'mixed': use 1 for tight and tab for loose list itemsoptions.incrementListMarkerWhether to increment ordered list item bullets (boolean, default: true).
options.ruleMarker to use for thematic breaks / horizontal rules ('-', '*', or '_',
default: '*').
options.ruleRepetitionNumber of markers to use for thematic breaks / horizontal rules (number,
default: 3). Should be 3 or more.
options.ruleSpacesWhether to pad thematic break (horizontal rule) markers with spaces (boolean,
default true).
options.strongMarker to use for importance ('_' or '*', default '*').
options.emphasisMarker to use for emphasis ('_' or '*', default '_').
stringify.CompilerAccess to the raw compiler, if you need it.
If this plugin is used, it adds a Compiler constructor
to the processor. Other plugins can change and add visitors on
the compiler’s prototype to change how markdown is stringified.
The below plugin modifies a visitor to add an extra blank line before level two headings.
module.exports = gap;
function gap() {
var Compiler = this.Compiler;
var visitors = Compiler.prototype.visitors;
var original = visitors.heading;
visitors.heading = function heading(node) {
return (node.depth === 2 ? '\n' : '') + original.apply(this, arguments);
}
}
Compiler#visitorsAn object mapping node types to visitors.
function visitor(node[, parent])Stringify node.
string, the compiled given node.