Markup Builder
Markdown and HTML markup building tools. Built on XSS, Remarkable, DOMParser and Markup tools.
Installation
Node.js
npm install markup-builder --save
Use as:
const markup = require('markup-builder');
Browser
Usage
Text tools
markup.build
comes with 5 functions:
const t = "**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 allowedvar options = 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
.
var text = markupbuildtextt options;console; // " Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget 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\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 functionvar html = await markupbuild;console; //With promise APImarkupbuild; // "<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,<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</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 functionvar summary = await markupbuildsummaryt/* , options */;console; //With promise APImarkupbuildsummaryt; // "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.
var config = {};configvideo = true; //default: trueconfigaccount_scheme = '/@'; //default is: '/user'confighashtag_scheme = '/trends'; //default: '/trending' //'options' object is xss configurations
Example:
//inside async functionvar content = await markupbuildcontentt /*,config, options*/ ; //with about options objectconsole; //With promise APImarkupbuildcontentt /*,config, options*/; // "<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,<script>alert(\'Quisque rutrum.\')</script> 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 functionvar clean = await markupbuild;console; //With promise APImarkupbuild; // "**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"
Dependencies
Accessing dependencies:
const remarkable = markupdepRemarkable;const xss = markupdepxss;const domparser = markupdepDomParser;const mtools = markupdepmtools
Contributions
Are welcome.