Skip to content

Repository files navigation

Pull requestsBuild statusDep trackerCodebase license

Markup Builder

Markdown and HTML markup building tools. Built on XSS, Remarkable, DOMParser and Markup tools.

Installation

Node.js

npminstallmarkup-builder--save

Use as:

const markup = require('markup-builder');

Browser

<scriptsrc="https://unpkg.com/markup-builder/dist/markup.min.js"></script>

Usage

Text tools

markup.build comes with 5 functions:

constt="**Lorem ipsum dolor sit amet**, consectetuer adipiscing elit. Aenean <i>commodo ligula eget</i> dolor. Aenean massa. Cum @sociis natoque #penatibus et magnis dis parturient montes,<script>alert('Quisque rutrum.')</script> nascetur ridiculus mus. Donec quam felis, https://www.youtube.com/watch?v=sO_YEdTcVXc https://travis-ci.org/peerquery/markup-builder";
//options object the configurations for the 'xss' module//Find out more: https://www.npmjs.com/package/xss#custom-filter-rulesconst// only tag a and its attributes href, title, target are allowedvaroptions={whiteList: {a: ["href","title","target"]}};// With the configuration specified above, the following HTML:// <a href="#" onclick="hello()"><i>Hello</i></a>// would become:// <a href="#">Hello</a>

markup.build.text(text, options);

Returns the text version of a markdown or HTML string input;

options is optional configurations object for xss.

vartext=markup.build.text(t,options);console.log(text);// " Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum @sociis natoque #penatibus et magnis dis parturient montes,&lt;script&gt;alert(\'Quisque rutrum.\')&lt;/script&gt; nascetur ridiculus mus. Donec quam felis, https://www.youtube.com/watch?v=sO_YEdTcVXc https://travis-ci.org/peerquery/markup-builder\n "

markup.build.html(text, options);

Returns the html version of a markdown or HTML string input;

options is optional configurations object for xss.

//inside async functionvarhtml=awaitmarkup.build.html(t,options);console.log(html);//With promise APImarkup.build.html(t).then(function(html,options){console.log(html);});// "<p><strong>Lorem ipsum dolor sit amet</strong>, consectetuer adipiscing elit. Aenean <i>commodo ligula eget</i> dolor. Aenean massa. Cum @sociis natoque #penatibus et magnis dis parturient montes,&lt;script&gt;alert(\'Quisque rutrum.\')&lt;/script&gt; nascetur ridiculus mus. Donec quam felis, https://www.youtube.com/watch?v=sO_YEdTcVXc https://travis-ci.org/peerquery/markup-builder</p>\n"

markup.build.summary(text, count, options);

Returns the text version of a markdown or HTML string input, trimmed to count or a default of 160 characters;

//inside async functionvarsummary=awaitmarkup.build.summary(t/* , options */);console.log(summary);//With promise APImarkup.build.summary(t).then(function(summary/* , options */){console.log(summary);});// "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum @sociis natoque #penatibus et magnis dis parturien..."

markup.build.content(text, config, options);

Returns the full html version of a markdown or HTML string input; parsing hashtag, mentions, naked image links and naked youtube link.

varconfig={};config.video=true;//default: trueconfig.account_scheme='/@';//default is: '/user'config.hashtag_scheme='/trends';//default: '/trending'//'options' object is xss configurations

Example:

//inside async functionvarcontent=awaitmarkup.build.content(t/*,config, options*/);//with about options objectconsole.log(content);//With promise APImarkup.build.content(t/*,config, options*/).then(function(content){//options is optional, using defaultsconsole.log(content);});// "<p><strong>Lorem ipsum dolor sit amet</strong>, consectetuer adipiscing elit. Aenean <i>commodo ligula eget</i> dolor. Aenean massa. Cum <a target="_blank" href="/user/sociis">@sociis</a> natoque <a target="_blank" href="/trending/penatibus"> #penatibus </a> et magnis dis parturient montes,&lt;script&gt;alert(\'Quisque rutrum.\')&lt;/script&gt; nascetur ridiculus mus. Donec quam felis, <a href="https://www.youtube.com/watch?v=sO_YEdTcVXc">https://www.youtube.com/watch?v=sO_YEdTcVXc</a> <a href="https://travis-ci.org/peerquery/markup-builder">https://travis-ci.org/peerquery/markup-builder</a></p>\n';

markup.build.sanitize(text, options);

Returns the sanitized version of the input string;

options is optional configurations object for xss and can be either true || false. Default is true

//inside async functionvarclean=awaitmarkup.build.sanitize(t/* , options */);console.log(clean);//With promise APImarkup.build.sanitize(t/* , options */).then(function(clean){console.log(clean);});// "**Lorem ipsum dolor sit amet**, consectetuer adipiscing elit. Aenean <i>commodo ligula eget</i> dolor. Aenean massa. Cum @sociis natoque #penatibus et magnis dis parturient montes,&lt;script&gt;alert(\'Quisque rutrum.\')&lt;/script&gt; nascetur ridiculus mus. Donec quam felis, https://www.youtube.com/watch?v=sO_YEdTcVXc https://travis-ci.org/peerquery/markup-builder"

Dependencies

Accessing dependencies:

constremarkable=markup.dep.Remarkable;constxss=markup.dep.xss;constdomparser=markup.dep.DomParser;constmtools=markup.dep.mtools

Contributions

Are welcome.

About

Markup and HTML builder tools

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages