-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmarkleft.min.js
1 lines (1 loc) · 2.03 KB
/
markleft.min.js
1
!function(){"use strict";var r,n=this;r="undefined"!=typeof exports?exports:n.markleft={},r.plugins=[],r.VERSION="0.3.0";var e=function(r,n){for(var e=[],t=0;t<n.length;++t){var a=n[t];"<"!==a[0]?r.transform&&(a=r.transform(a)):r.transformHTML&&(a=r.transformHTML(a)),"string"==typeof a?e.push(a):e=e.concat(a)}return e};r.toHTML=function(n){for(var a=[t.transform(n)],i=r.plugins,l=0;l<i.length;++l)a=e(i[l],a);return a=e(u,a),a.join("")},r.registerPlugin=function(n){if(!n.name||!n.transform)return console.log("markleft.registerPlugin: Invalid plugin"),void 0;for(var e=0;e<r.plugins.length;++e)if(r.plugins[e].name===n.name)return console.log("markleft.registerPlugin: Plugin "+n.name+" already registered"),void 0;r.plugins.push(n)},r.unregisterPlugin=function(n){"undefined"!=typeof n.name&&(n=n.name);for(var e=0;e<r.plugins.length;++e)if(r.plugins[e].name===n)return r.plugins.splice(e,1),void 0;console.log("markleft.unregisterPlugin: Plugin "+n+" not found")};var t={name:"gtlt",transform:function(r){return r.replace(/</g,"<").replace(/>/g,">")}},a={name:"a",transform:function(r){var n=/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi,e="!#@#!",t=r.replace(n,e+'<a href="$1">$1</a>'+e);return t.split(e)}};r.registerPlugin(a);var i={name:"amp",transform:function(r){return r.replace(/&/g,"&")}};r.registerPlugin(i);var l={name:"br",transform:function(r){return r.replace(/\n/g,"<br />")}};r.registerPlugin(l);var o={name:"hr",transform:function(r){return r.replace(/<br \/>---<br \/>/g,"<hr />")}};r.registerPlugin(o);var u={name:"nocomments",transform:function(r){return r},transformHTML:function(r){var n=/<!--[\s\S]*?-->/g;return r.replace(n,"")}},s="#%@%#";return r.finalReplace=function(r,n,e){var t=r.replace(n,s+"<!-- -->"+e+s);return t.split(s)},r.italic={name:"italic",transform:function(r){var n=/_([^_]+)_/g,e=s+"<i>"+s+"$1"+s+"</i>"+s,t=r.replace(n,e);return t.split(s)}},r.bold={name:"bold",transform:function(r){var n=/\*([^*]+)\*/g,e=s+"<b>"+s+"$1"+s+"</b>"+s,t=r.replace(n,e);return t.split(s)}},r}.call(this);