Neutron Polarization Manipulator

    noddity-template-parser

    1.1.1 • Public • Published

    Build Status

    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 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

    Keywords

    Install

    npm i noddity-template-parser

    DownloadsWeekly Downloads

    3

    Version

    1.1.1

    License

    WTFPL

    Last publish

    Collaborators

    • tehshrike