forked from docsifyjs/docsify
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfront-matter.min.js
1 lines (1 loc) · 4.9 KB
/
front-matter.min.js
1
!function(){"use strict";function e(e){return{parent:null,length:0,level:e,lines:[],children:[],addChild:function(e){this.children.push(e),e.parent=this,++this.length}}}function n(n){var t,r=g.regLevel,i=g.invalidLine,l=n.split("\n"),u=0,a=0,s=[],f=new e(-1),h=new e(0);f.addChild(h);var c=[],p="";s.push(h),c.push(u);for(var v=0,d=l.length;v<d;++v)if(p=l[v],!p.match(i)){if((u=(t=r.exec(p))?t[1].length:0)>a){var m=h;h=new e(u),m.addChild(h),s.push(h),c.push(u)}else if(u<a){for(var w=!1,E=c.length-1;E>=0;--E)if(c[E]==u){h=new e(u),s.push(h),c.push(u),null!=s[E].parent&&s[E].parent.addChild(h),w=!0;break}if(!w)return void o.push("Error: Invalid indentation at line "+v+": "+p)}h.lines.push(p.replace(g.trim,"")),a=u}return f}function t(e){e=e.replace(g.trim,"");var n=null;if("true"==e)return!0;if("false"==e)return!1;if(".NaN"==e)return Number.NaN;if("null"==e)return null;if(".inf"==e)return Number.POSITIVE_INFINITY;if("-.inf"==e)return Number.NEGATIVE_INFINITY;if(n=e.match(g.dashesString))return n[1];if(n=e.match(g.quotesString))return n[1];if(n=e.match(g.float))return parseFloat(n[0]);if(n=e.match(g.integer))return parseInt(n[0]);if(isNaN(n=Date.parse(e))){if(n=e.match(g.single_key_value)){var r={};return r[n[1]]=t(n[2]),r}if(n=e.match(g.array)){for(var i=0,l=" ",r=[],u="",a=!1,s=0,f=n[1].length;s<f;++s){if("'"==(l=n[1][s])||'"'==l){if(!1===a){a=l,u+=l;continue}if("'"==l&&"'"==a||'"'==l&&'"'==a){a=!1,u+=l;continue}}else if(!1!==a||"["!=l&&"{"!=l)if(!1!==a||"]"!=l&&"}"!=l){if(!1===a&&0==i&&","==l){r.push(t(u)),u="";continue}}else--i;else++i;u+=l}return u.length>0&&r.push(t(u)),r}if(n=e.match(g.map)){for(var i=0,l=" ",r=[],u="",a=!1,s=0,f=n[1].length;s<f;++s){if("'"==(l=n[1][s])||'"'==l){if(!1===a){a=l,u+=l;continue}if("'"==l&&"'"==a||'"'==l&&'"'==a){a=!1,u+=l;continue}}else if(!1!==a||"["!=l&&"{"!=l)if(!1!==a||"]"!=l&&"}"!=l){if(!1===a&&0==i&&","==l){r.push(u),u="";continue}}else--i;else++i;u+=l}u.length>0&&r.push(u);for(var h={},s=0,f=r.length;s<f;++s)(n=r[s].match(g.key_value))&&(h[n[1]]=t(n[2]));return h}return e}return new Date(n)}function r(e){for(var n=e.lines,t=e.children,i=n.join(" "),l=[i],u=0,a=t.length;u<a;++u)l.push(r(t[u]));return l.join("\n")}function i(e){for(var n=e.lines,t=e.children,r=n.join("\n"),l=0,u=t.length;l<u;++l)r+=i(t[l]);return r}function l(e){for(var n=null,u={},a=null,s=null,f=null,h=-1,p=[],v=!0,d=0,m=e.length;d<m;++d)if(-1==h||h==e[d].level){p.push(d),h=e[d].level,a=e[d].lines,s=e[d].children,f=null;for(var w=0,E=a.length;w<E;++w){var x=a[w];if(n=x.match(g.key)){var y=n[1];if("-"==y[0]&&(y=y.replace(g.item,""),v&&(v=!1,void 0===u.length&&(u=[])),null!=f&&u.push(f),f={},v=!0),void 0!==n[2]){var b=n[2].replace(g.trim,"");if("&"==b[0]){var R=l(s);null!=f?f[y]=R:u[y]=R,c[b.substr(1)]=R}else if("|"==b[0])null!=f?f[y]=i(s.shift()):u[y]=i(s.shift());else if("*"==b[0]){var N=b.substr(1),_={};if(void 0===c[N])o.push("Reference '"+N+"' not found!");else{for(var $ in c[N])_[$]=c[N][$];null!=f?f[y]=_:u[y]=_}}else">"==b[0]?null!=f?f[y]=r(s.shift()):u[y]=r(s.shift()):null!=f?f[y]=t(b):u[y]=t(b)}else null!=f?f[y]=l(s):u[y]=l(s)}else{if(x.match(/^-\s*$/)){v&&(v=!1,void 0===u.length&&(u=[])),null!=f&&u.push(f),f={},v=!0;continue}if(n=x.match(/^-\s*(.*)/)){null!=f?f.push(t(n[1])):(v&&(v=!1,void 0===u.length&&(u=[])),u.push(t(n[1])));continue}}}null!=f&&(v&&(v=!1,void 0===u.length&&(u=[])),u.push(f))}for(var d=p.length-1;d>=0;--d)e.splice.call(e,p[d],1);return u}function u(e){return l(e.children)}function a(e){var n,t=e.split("\n"),r=g.comment;for(var i in t)(n=t[i].match(r))&&void 0!==n[3]&&(t[i]=n[0].substr(0,n[0].length-n[3].length));return t.join("\n")}function s(e){o=[],c=[],p=(new Date).getTime();var t=a(e),r=n(t),i=u(r);return p=(new Date).getTime()-p,i}function f(e){e=e||"";var n=e.split(/(\r?\n)/);return n[0]&&/= yaml =|---/.test(n[0])?h(e):{attributes:{},body:e}}function h(e){var n=v.exec(e);if(!n)return{attributes:{},body:e};var t=n[n.length-1].replace(/^\s+|\s+$/g,"");return{attributes:s(t)||{},body:e.replace(n[0],""),frontmatter:t}}var o=[],c=[],p=0,g={regLevel:new RegExp("^([\\s\\-]+)"),invalidLine:new RegExp("^\\-\\-\\-|^\\.\\.\\.|^\\s*#.*|^\\s*$"),dashesString:new RegExp('^\\s*\\"([^\\"]*)\\"\\s*$'),quotesString:new RegExp("^\\s*\\'([^\\']*)\\'\\s*$"),float:new RegExp("^[+-]?[0-9]+\\.[0-9]+(e[+-]?[0-9]+(\\.[0-9]+)?)?$"),integer:new RegExp("^[+-]?[0-9]+$"),array:new RegExp("\\[\\s*(.*)\\s*\\]"),map:new RegExp("\\{\\s*(.*)\\s*\\}"),key_value:new RegExp("([a-z0-9_-][ a-z0-9_-]*):( .+)","i"),single_key_value:new RegExp("^([a-z0-9_-][ a-z0-9_-]*):( .+?)$","i"),key:new RegExp("([a-z0-9_-][ a-z0-9_-]+):( .+)?","i"),item:new RegExp("^-\\s+"),trim:new RegExp("^\\s+|\\s+$"),comment:new RegExp("([^\\'\\\"#]+([\\'\\\"][^\\'\\\"]*[\\'\\\"])*)*(#.*)?")},v=new RegExp("^(\\ufeff?(= yaml =|---)$([\\s\\S]*?)(?:\\2|\\.\\.\\.)$(?:\\n)?)","m"),d=function(e,n){e.beforeEach(function(e){var t=f(e),r=t.attributes,i=t.body;return Docsify.util.merge(n.config,r.config),i})};$docsify.plugins=[].concat(d,$docsify.plugins)}();