scrapbox-parser@7.1.0
code:script.js
/* esm.sh - esbuild bundle(@progfay/scrapbox-parser@7.1.0) es2020 production */
var X=Object.defineProperty;var Y=(e,t)=>{for(var o in t)X(e,o,{get:to,enumerable:!0})};var P={};Y(P,{convertToBlock:()=>u,getTitle:()=>Z,packRows:()=>f,parse:()=>A,parseToRows:()=>g});var y=e=>({type:"title",text:e.rows0.text});var T=e=>{let{rows:t,...o}=e,{indent:r=0,text:n=""}=t??{},c=n.replace(/^\s*code:/,"");return{indent:r,type:"codeBlock",fileName:c,content:o.map(a=>a.text.substring(r+1)).join(` )}};var s=(e,{parseOnNested:t,parseOnQuoted:o,patterns:r})=>(n,c,a)=>{var i,d,l,N,h,x;if(!t&&c.nested)return(i=a==null?void 0:a())!==null&&i!==void 0?i:[];if(!o&&c.quoted)return(d=a==null?void 0:a())!==null&&d!==void 0?d:[];for(let J of r){let m=J.exec(n);if(m===null)continue;let K=n.substring(0,m.index),V=n.substring(m.index+((N=(l=m[0])===null||l===void 0?void 0:l.length)!==null&&N!==void 0?N:0)),v=e((h=m[0])!==null&&h!==void 0?h:"",c);return[...p(K,c),...Array.isArray(v)?v:[v],...p(V,c)]}return(x=a==null?void 0:a())!==null&&x!==void 0?x:[]};var w=/^>.*$/,ee=(e,t)=>({type:"quote",raw:e,nodes:p(e.substring(1),{...t,quoted:!0})}),k=s(ee,{parseOnNested:!1,parseOnQuoted:!1,patterns:[w]});var te=/^\? .+$/,oe=e=>({type:"helpfeel",raw:e,text:e.substring(2)}),I=s(oe,{parseOnNested:!1,parseOnQuoted:!1,patterns:[te]});var re=/\[\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)\]\]/i,se=/\[\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}\]\]/,ne=e=>{let t=e.substring(2,e.length-2),o=/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}$/.test(t);return{type:"strongImage",raw:e,src:o?${t}/thumb/1000:t}},R=s(ne,{parseOnNested:!1,parseOnQuoted:!0,patterns:[re,se]});var ae=/\[[^[\]]*\.icon(?:\*[1-9]\d*)?\]/;function b(e){return t=>{let o=e==="icon"?t.substring(1,t.length-1):t.substring(2,t.length-2),r=o.lastIndexOf(".icon"),n=o.substring(0,r),c=n.startsWith("/")?"root":"relative",a=o.substring(r+5,o.length),i=a.startsWith("*")?parseInt(a.substring(1),10):1;return new Array(i).fill({}).map(()=>({path:n,pathType:c,type:e,raw:t}))}}var ce=b("icon"),O=s(ce,{parseOnNested:!1,parseOnQuoted:!0,patterns:[ae]});var pe=/\[\[[^[\]]*\.icon(?:\*\d+)?\]\]/,ie=b("strongIcon"),E=s(ie,{parseOnNested:!1,parseOnQuoted:!0,patterns:[pe]});var de=/\[\[(?:[^[]|\[[^[]).*?\]*\]\]/,le=(e,t)=>({type:"strong",raw:e,nodes:p(e.substring(2,e.length-2),{...t,nested:!0})}),S=s(le,{parseOnNested:!1,parseOnQuoted:!0,patterns:[de]});var me=/\[\$ .+? \]/,ue=/\[\$ [^\]]+\]/,ge=e=>({type:"formula",raw:e,formula:e.substring(3,e.length-(e.endsWith(" ]")?2:1))}),$=s(ge,{parseOnNested:!1,parseOnQuoted:!0,patterns:[me,ue]});var fe=/\[[!"#%&'()*+,\-./{|}<>_~]+ (?:\[[^[\]]+\]|[^\]])+\]/,Ne=(e,t)=>{let o=e.indexOf(" "),r=e.substring(1,o),n=e.substring(o+1,e.length-1),c=new Set(r);if(c.has("*")){let a=r.split("*").length-1;c.delete("*"),c.add(*-${Math.min(a,10)})}return{type:"decoration",raw:e,rawDecos:r,decos:Array.from(c),nodes:p(n,{...t,nested:!0})}},z=s(Ne,{parseOnNested:!1,parseOnQuoted:!0,patterns:[fe]});var he=/.*?/,xe=e=>({type:"code",raw:e,text:e.substring(1,e.length-1)}),_=s(xe,{parseOnNested:!1,parseOnQuoted:!0,patterns:[he]});var ve=/^[$%] .+$/,be=e=>{var t;let o=(t=e[0])!==null&&t!==void 0?t:"",r=e.substring(2);return{type:"commandLine",raw:e,symbol:o,text:r}},Q=s(be,{parseOnNested:!1,parseOnQuoted:!1,patterns:[ve]});var Pe=/\[\s+\]/,ye=e=>({type:"blank",raw:e,text:e.substring(1,e.length-1)}),L=s(ye,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Pe]});var Te=/\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?(?:\s+https?:\/\/[^\s\]]+)?\]/i,ke=/\[https?:\/\/[^\s\]]+\s+https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?\]/i,Ie=/\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?(?:\s+https?:\/\/[^\s\]]+)?\]/,Re=/\[https?:\/\/[^\s\]]+\s+https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?\]/,Ee=e=>/^https?:\/\/[^\s\]]+\.(png|jpe?g|gif|svg)(\?[^\]\s]+)?$/i.test(e)||Oe(e),Oe=e=>/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}(\/raw)?$/.test(e),Se=e=>{let t=e.search(/\s/),o=t!==-1?e.substring(1,t):e.substring(1,e.length-1),r=t!==-1?e.substring(t,e.length-1).trimLeft():"",[n,c]=Ee(r)?[r,o]:[o,r];return{type:"image",raw:e,src:/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}$/.test(n)?${n}/thumb/1000:n,link:c}},C=s(Se,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Te,ke,Ie,Re]});var $e=/\[https?:\/\/[^\s\]]+\s+[^\]]*[^\s]\]/,ze=/\[[^[\]]*[^\s]\s+https?:\/\/[^\s\]]+\]/,_e=/\[https?:\/\/[^\s\]]+\]/,Qe=/https?:\/\/[^\s]+/,Le=e=>{let t=e.startsWith("[")&&e.endsWith("]")?e.substring(1,e.length-1):e,o=/^https?:\/\/[^\s\]]/.test(t),r=(o?/^https?:\/\/[^\s\]]+/:/https?:\/\/[^\s\]]+$/).exec(t);if((r==null?void 0:r[0])===void 0)return[];let n=o?t.substring(r[0].length):t.substring(0,r.index-1);return{type:"link",raw:e,pathType:"absolute",href:r[0],content:n.trim()}},F=s(Le,{parseOnNested:!0,parseOnQuoted:!0,patterns:[$e,ze,_e,Qe]});var B=/\[([^\]]*[^\s])\s+([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)\]/,W=/\[([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)(?:\s+([^\]]*[^\s]))?\]/,Ce=e=>{let[t="",o="",r=""]=e.split(","),n=parseFloat(t.replace(/^N/,"").replace(/^S/,"-")),c=parseFloat(o.replace(/^E/,"").replace(/^W/,"-")),a=/^Z\d+$/.test(r)?parseInt(r.replace(/^Z/,""),10):14;return{latitude:n,longitude:c,zoom:a}},Fe=e=>{var t;let o=(t=e.match(B))!==null&&t!==void 0?t:e.match(W);if(o===null)return[];let r=e.startsWith("[N")||e.startsWith("[S"),[,n="",c=""]=r?o:[o[0],o[2],o[1]],{latitude:a,longitude:i,zoom:d}=Ce(n),l=c!==""?https://www.google.com/maps/place/${encodeURIComponent(c)}/@${a},${i},${d}z:https://www.google.com/maps/@${a},${i},${d}z;return{type:"googleMap",raw:e,latitude:a,longitude:i,zoom:d,place:c,url:l}},G=s(Fe,{parseOnNested:!1,parseOnQuoted:!0,patterns:[B,W]});var Be=/\[\/?[^[\]]+\]/,We=e=>{let t=e.substring(1,e.length-1);return{type:"link",raw:e,pathType:t.startsWith("/")?"root":"relative",href:t,content:""}},H=s(We,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Be]});var Ge=/(?:^|\s)#\S+/,He=e=>{if(e.startsWith("#"))return{type:"hashTag",raw:e,href:e.substring(1)};let t=e.substring(0,1),o=e.substring(1);return[{type:"plain",raw:t,text:t},{type:"hashTag",raw:o,href:o.substring(1)}]},M=s(He,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Ge]});var Me=e=>({type:"plain",raw:e,text:e}),U=s(Me,{parseOnNested:!0,parseOnQuoted:!0,patterns:[/^()(.*)()$/]});var Ue=(e,t,o)=>{var r;return e===""?[]:(r=o==null?void 0:o())!==null&&r!==void 0?r:[]},qe=(...e)=>(t="",o={nested:!1,quoted:!1})=>e.reduceRight((r,n)=>()=>n(t,o,r),()=>U(t,o))(),p=qe(Ue,k,I,_,Q,$,L,z,R,E,S,C,F,O,G,H,M);var q=e=>{let{rows:[t,...o]}=e,{indent:r=0,text:n=""}=t??{},c=n.replace(/^\s*table:/,"");return{indent:r,type:"table",fileName:c,cells:o.map(a=>a.text.substring(r+1)).map(a=>a.split(" ").map(i=>p(i,{nested:!0,quoted:!1})))}};var j=e=>{let{indent:t,text:o}=e.rows[0];return{indent:t,type:"line",nodes:p(o.substring(t))}};var u=e=>{switch(e.type){case"title":return y(e);case"codeBlock":return T(e);case"table":return q(e);case"line":return j(e)}};var g=e=>e.split( `).map(t=>{var o,r,n;return{indent:(n=(r=(o=/^\s+/.exec(t))===null||o===void 0?void 0:o0)===null||r===void 0?void 0:r.length)!==null&&n!==void 0?n:0,text:t}});var je=(e,t)=>{var o,r;return(e.type==="codeBlock"||e.type==="table")&&t.indent>((r=(o=e.rows0)===null||o===void 0?void 0:o.indent)!==null&&r!==void 0?r:0)},D=(e,t)=>{let o=ee.length-1;return o!==void 0&&je(o,t)?(o.rows.push(t),e):(e.push({type:/^\s*code:/.test(t.text)?"codeBlock":/^\s*table:/.test(t.text)?"table":"line",rows:t}),e)},f=(e,t)=>{var o;if((o=t.hasTitle)!==null&&o!==void 0?o:!0){letr,...n=e;return r===void 0?[]:[{type:"title",rows:r},...n.reduce(D,[])]}return e.reduce(D,[])};var A=(e,t)=>{var o;let r=g(e);return f(r,{hasTitle:(o=t==null?void 0:t.hasTitle)!==null&&o!==void 0?o:!0}).map(u)},Z=e=>{var t,o;let r=/^\s*\S.*$/m.exec(e);return(o=(t=r==null?void 0:r0)===null||t===void 0?void 0:t.trim())!==null&&o!==void 0?o:"Untitled"};var{packRows:vo,parse:bo,getTitle:Po,convertToBlock:yo,parseToRows:To}=P;export{yo as convertToBlock,Po as getTitle,vo as packRows,bo as parse,To as parseToRows};