mdast
Version:
Markdown processor powered by plugins
69 lines (55 loc) • 1.3 kB
JavaScript
/**
* @author Titus Wormer
* @copyright 2015 Titus Wormer
* @license MIT
* @module mdast:cli:file-pipeline:stringify
* @version 2.2.2
* @fileoverview Compile an AST into a file.
*/
;
/* eslint-env node */
/*
* Dependencies.
*/
var debug = require('debug')('mdast:cli:file-pipeline:stringify');
/**
* Stringify an AST.
*
* @example
* var fileSet = new FileSet(cli);
* var file = new File({
* 'contents': '# Hello'
* });
* fileSet.add(file);
*
* var context = {'processor': mdast(), 'file': file, 'fileSet': fileSet};
*
* parse(context);
* stringify(context);
*
* @param {Object} context
*/
function stringify(context) {
var cli = context.fileSet.cli;
var file = context.file;
var value;
if (!context.processor || context.ast) {
debug('Not compiling failed document');
return;
}
debug('Compiling document');
if (cli.ast) {
file.move({
'extension': 'json'
});
value = JSON.stringify(file.namespace('mdast').tree, null, 2);
} else {
value = context.processor.stringify(file, context.settings);
}
file.contents = value;
debug('Compiled document to %s', file.extension || 'markdown');
}
/*
* Expose.
*/
module.exports = stringify;