YamYam

Markdown Language

YamYam

YamYam is a simple kind of markdown compiler.

Basic things

# Headline
 
## Headline 2
 
Text, *Text with accent*, _more of this_
and even **more**... (and `code`)
 
* list item
* list item
 * list item
 
[ ] check list item
[X] check list item
 
( ) radio list item
(*) radio list item
 
http://www.google.com
[google](http://www.google.com)
 
a block of code with ```

YamYam supports annotations in the markdown, which can be used for app-specific things

[section-annotation name="value" name2=value2 name3='value3']
 
Annotations with following empty line mark sections of the document
 
[annotation name = value]
[annotation name = value2]
Annotations direct before a element annotated it.
Multiple annotations supported
var YamYam = require("YamYam");
 
// YamYam.parse(source, function(err, result) { 
// YamYam.parse(source, options, function(err, result) { 
YamYam.parse(source, options, formater, function(errresult) {
    // ... 
});
var options = {
    parser: {
        // Nothing yet 
    },
    formater: {
        // Options for the formater 
        // depend on the used formater 
    }
}
 
var formaterOptions = { // For HtmlFormater (default) 
    annotations: {
        // maps annotation name to a function proccessing this type 
        // example: 
        "@annotation"function(attrsannotation) {
            // annotation.name === "@annotation" 
            attrs["class"] = annotation.params["class"];
        }
    },
    block: undefined, // specify how sections are handled 
    /*
        block: false
            the sections are emitted
            [ { annotations: [ ... ],
                content: "..." }, ... ]
        block: 4 // number
            only section number X will be returned
        block: "..." // string
            only sections which has an annotation named "..."
        block: function(section, number) { ... } // function
            true, sections is included
    */
    inline: false,
    linesSeperator: "<br/>",
 
    // text 
    textTagname: "p", // inline: "span" 
    textOptionalPrepend: "<br/><br/>", // only inline 
 
    // list 
    listTagname: "ul", // inline: "span" 
    listInnerTagname: "li", // inline: "span" 
    listOptionalPrepend: "<br/><br/>", // only inline 
    listItemsSeperator: "", // only inline 
    subListPrepend: " (", // only inline 
    subListAppend: ")", // only inline 
 
    // checklist 
    checklistTagname: "div", // inline: "span" 
    checklistInnerTagname: "div", // inline: "span" 
    checklistOptionalPrepend: "<br/><br/>", // only inline 
    checklistItemsSeperator: "", // only inline 
    subChecklistPrepend: " (", // only inline 
    subChecklistAppend: ")", // only inline 
 
    // radiolist 
    radiolistTagname: "div", // inline: "span" 
    radiolistInnerTagname: "div", // inline: "span" 
    radiolistOptionalPrepend: "<br/><br/>", // only inline 
    radiolistItemsSeperator: "", // only inline 
    subRadiolistPrepend: " (", // only inline 
    subRadiolistAppend: ")", // only inline 
 
    // headline 
    headlineSubTagname: "small",
 
    // code 
    codeTagname: "div", // inline: span 
    codeInnerTagname: "pre", // inline: code 
    codeTextTagname: "p", // inline: span 
 
    // formating 
    accents: {
        "1": "em", // _xxx_ 
        "2": "em", // *xxx* 
        "3": "strong", // __xxx__ 
        "4": "strong", // **xxx** 
        "default": ["em", "strong"] // others 
    },
    code: {
        // same schema like accents 
        // 1 = `xxx`, 2 = ``xxx``, ... 
        "default": "code"
    }
}