breakdance-util
v0.1.5
Published
Utility functions for breakdance plugins.
Downloads
164
Maintainers
Readme
breakdance-util
Utility functions for breakdance plugins.
Install
Install with npm:
$ npm install --save breakdance-util
Usage
var utils = require('breakdance-util');
Visit the breakdance documentation for more information about using and customizing breakdance.
API
.block
Wrapper for creating the handlers for compiling a tag that has *.open
and *.close
nodes, in a single function call.
Params
open
{String}: The opening tag to renderclose
{String}: The closing tag to renderstate
{Object}handler
{Function}: Visitor function to modify the nodereturns
{undefined}
Example
breakdance.set('div', utils.block('', ''));
breakdance.set('address', block('\n<address>\n', '\n</address>\n'));
// optionally pass a handler function to access the "parent" node
breakdance.set('abbr', block('<abbr>', '</abbr>', function(node) {
var attr = utils.toAttribs(node.attribs, ['title']);
if (attr) {
node.open = '<abbr' + attr + '>';
}
}))
.toAttribs
Stringify the attribs
for a node.
Params
attribs
{Object}: Object of attributes to stringifynames
{Array}: Array ofnames
to only stringify attributes with those names.returns
{String}: Returns a string of attributes, e.g.src="foo.jpg"
Example
var str = utils.toAttribs(node.attribs);
.getLang
Attempt to get a "language" value from the given attribs
. Used with code/pre tags.
Params
attribs
{Object}: Thenode.attribs
objectreturns
{String}
Example
breakdance.set('code', function(node) {
var lang = utils.getLang(node.attribs);
// console.log(lang);
});
.formatLink
Formats the link part of a "src" or "href" attribute on the given node
.
Params
node
{Object}key
{String}: Either'src'
or'href'
compiler
{Object}: Pass the breakdance compiler instance, for state and options.returns
{String}
Example
// this is how <img> tags are rendered
breakdance.set('img', function(node) {
var attribs = node.attribs || {};
if (attribs.src) {
this.emit('![' + (attribs.alt || '').trim());
this.mapVisit(node);
var src = utils.formatLink(node, 'src', this);
this.emit(']' + src);
//=> ![foo](bar.jpg)
}
})
About
Related projects
- breakdance-checklist: Plugin that adds checklist rendering support to breakdance, similar to task lists in github-flavored-markdown. | homepage
- breakdance: Breakdance is a node.js library for converting HTML to markdown. Highly pluggable, flexible and easy… more | homepage
- generate-breakdance: Generate a new breakdance plugin project. | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Please read the contributing guide for advice on opening issues, pull requests, and coding standards.
Building docs
(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)
To generate the readme, run the following command:
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Running tests
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
$ npm install && npm test
Author
Jon Schlinkert
License
Copyright © 2017, Jon Schlinkert. MIT
This file was generated by verb-generate-readme, v0.4.2, on February 05, 2017.