Markdown and HTML markup building tools. Built on XSS, Remarkable, DOMParser and Markup tools.
npminstallmarkup-builder--saveUse as:
const markup = require('markup-builder');
<scriptsrc="https://unpkg.com/markup-builder/dist/markup.min.js"></script>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>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,<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 "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,<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"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..."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 configurationsExample:
//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,<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';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,<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"Accessing dependencies:
constremarkable=markup.dep.Remarkable;constxss=markup.dep.xss;constdomparser=markup.dep.DomParser;constmtools=markup.dep.mtoolsAre welcome.