Neverending Programming Mistakes
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    triflepublic

    NOTE: This project is under active development. APIs subject to change.

    trifle

    NPM version Downloads Build Status Coverage Status Chat Tip

    A base formatter for Toga documentation. Provides a hook for walking abstract syntax trees and formatting nodes.

    Install

    $ npm install --save-dev trifle
    

    API

    new Trifle([options])

    • options {Object}
      • name {String} - Name of plugin. (Default: 'trifle')
      • property {RegExp} - Name of property that contains the AST in Vinyl files. (Default: 'ast')
      • extension {RegExp} - Matches the file extension or extensions which are handled by this parser.
      • formatters {Array.<Function(Object,String):Boolean>} - A list of node formatters.

    Creates a reusable formatter based on the given options.

    #add(formatter) : this

    • formatter {Function(Object,*):Boolean} - Formatter to add.

    Adds a formatter to be used.

    .add(function (node, value) {
        if ((/^(title|method|property)$/).test(node.key)) {
            node.update(node.key + '' + String(value).toLowerCase());
        }
    })

    #pipe(stream) : Stream.Readable

    • stream {Writable} - Writable stream.

    Trifle is a Transform Stream, working in object mode. ASTs stored in the .ast property of Vinyl objects will be walked and formatted.

    Example

    var toga = require('toga'),
        Trifle = require('trifle');
     
    toga.src('./lib/**/*.js')
        // ... parser(s) 
        .pipe(new Trifle()) // walks `.ast` and formats nodes 
        // ... compiler(s) 
        .pipe(toga.dest('./docs'));

    Formatters

    Formatters are functions that accept a traverse node context and a value. They will be executed in order for each node in the AST. You can keep subsequent formatters from executing by returning false.

    formatters: [
        function (node, value) {
            if (node.key === 'description' && value != null) {
                node.update(String(value).toUpperCase());
                return false; // don't apply other formatters to this node 
            }
        },
        function (node, value) {
            if ((/^(title|method|property)$/).test(node.key)) {
                node.update(node.key + '' + String(value).toLowerCase());
            }
        }
    ]

    Test

    $ npm test
    

    Contribute

    Tasks

    Standards for this project, including tests, code coverage, and semantics are enforced with a build tool. Pull requests must include passing tests with 100% code coverage and no linting errors.


    © 2015 Shannon Moeller me@shannonmoeller.com

    Licensed under MIT

    install

    npm i trifle

    Downloadslast 7 days

    2

    version

    1.0.0

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar