0.3.0 • Published 13 years ago

YamYam v0.3.0

Weekly downloads
25
License
-
Repository
-
Last release
13 years ago

YamYam

YamYam is a simple kind of markdown compiler.

Syntax

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

API

var YamYam = require("YamYam");

// YamYam.parse(source, function(err, result) {
// YamYam.parse(source, options, function(err, result) {
YamYam.parse(source, options, formater, function(err, result) {
	// ...
});

options

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(attrs, annotation) {
			// 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"
	}
}
0.3.0

13 years ago

0.2.5

13 years ago

0.2.4

13 years ago

0.2.3

13 years ago

0.2.2

13 years ago

0.2.1

13 years ago

0.1.1

13 years ago