1.1.1 • Published 9 years ago
noddity-template-parser v1.1.1
Turns Noddity post objects into basic abstract syntax trees.
Example
var parser = require('noddity-template-parser')
var Linkify = require('linkify')
var linkify = Linkify('#/prefix')
var ast = parser(post, linkify)
var full = ast.reduce(function (full, piece) {
if (piece.type === 'string') full += piece.value
if (piece.type === 'template') full += 'TEMPLATE GOES HERE'
return full
}, '')API
var parser = require('noddity-template-parser')var ast = parser(post, linkify, [options])
post: a Noddity post object (from a Noddity Butler)linkify: a Noddity Linkifieroptions: an optional object of options -convertToHtml: convert posts from markdown to HTML. Defaults to true. (Ifmarkdown: falseis on the post's metadata, it will not be converted, even when this is set to true.)
var ast = parser(post, linkify, { convertToHtml: false })ast
An array of objects returned from parser(). Each object has a type property which can be string, or template.
stringtype properties: -valuestring with html or markdowntemplatetype properties: -filenamestring, e.g.'my-post.md'-argumentsobject, e.g.{ 1: 'hello', key: 'value' }
The AST for this post...
---
prop: val
---
::child|arg|key=value::
I see you like {{prop}} templates...would look like:
[{
type: 'string',
value: '<p>'
}, {
type: 'template',
filename: 'child',
arguments: {
1: 'arg',
key: 'value'
}
}, {
type: 'string',
value: '</p>\n<p>I see you like {{prop}} templates</p>\n'
}]