Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bustle/mobiledoc-text-renderer

A text renderer for Mobiledoc
https://github.com/bustle/mobiledoc-text-renderer

Last synced: 3 days ago
JSON representation

A text renderer for Mobiledoc

Awesome Lists containing this project

README

        

## Mobiledoc Text Renderer [![Build Status](https://travis-ci.org/bustlelabs/mobiledoc-text-renderer.svg?branch=master)](https://travis-ci.org/bustlelabs/mobiledoc-text-renderer)

This is a Text renderer for the [Mobiledoc format](https://github.com/bustlelabs/mobiledoc-kit/blob/master/MOBILEDOC.md) used
by [Mobiledoc-kit](https://github.com/bustlelabs/mobiledoc-kit).

To learn more about Mobiledoc cards and renderers, see the **[Mobiledoc Cards docs](https://github.com/bustlelabs/mobiledoc-kit/blob/master/CARDS.md)**.

The renderer is a small library intended for use in servers that are building
Text documents. It may be of limited use inside browsers as well.

### Usage

```
var mobiledoc = {
version: "0.2.0",
sections: [
[ // markers
['B']
],
[ // sections
[1, 'P', [ // array of markups
// markup
[
[0], // open markers (by index)
0, // close count
'hello world'
]
]
]
]
};
var renderer = new TextRenderer({cards: []});
var rendered = renderer.render(mobiledoc);
console.log(rendered.result); // "hello world"
```

The Renderer constructor accepts a single object with the following optional properties:
* `cards` [array] - The list of card objects that the renderer may encounter in the mobiledoc
* `cardOptions` [object] - Options to pass to cards when they are rendered
* `unknownCardHandler` [function] - Will be called when any unknown card is enountered

The return value from `renderer.render(mobiledoc)` is an object with two properties:
* `result` [string] - The rendered result
* `teardown` [function] - When called, this function will tear down the rendered mobiledoc and call any teardown handlers that were registered by cards when they were rendered

### Tests

* `npm install -g broccoli-cli testem`
* `npm test`

### Releasing

* `npm version patch` or `minor` or `major`
* `npm run build`
* `git push bustle --tags`
* `npm publish`