Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Build Status

Turns Noddity post objects into basic abstract syntax trees.

Example

var parser = require('noddity-template-parser')
var Linkify = require('noddity-linkifier')

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 Linkifier
  • options: an optional object of options
    • convertToHtml: convert posts from markdown to HTML. Defaults to true. (If markdown: false is 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.

  • string type properties:
    • value string with html or markdown
  • template type properties:
    • filename string, e.g. 'my-post.md'
    • arguments object, 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'
}]

License

WTFPL

About

Turns Noddity posts into things browsers can display

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •