UNPKG

marked-livecodes

Version:

A marked plugin for to convert code blocks to LiveCodes playgrounds.

1 lines 9.4 kB
var markedLiveCodes=function(){"use strict";var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(let c of r(i))!a.call(e,c)&&c!==o&&t(e,c,{get:()=>i[c],enumerable:!(s=n(i,c))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=o((e,t)=>{var n=function(){var e=String.fromCharCode,t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,n=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$`,r={};function i(e,t){if(!r[e]){r[e]={};for(var n=0;n<e.length;n++)r[e][e.charAt(n)]=n}return r[e][t]}var a={compressToBase64:function(e){if(e==null)return``;var n=a._compress(e,6,function(e){return t.charAt(e)});switch(n.length%4){default:case 0:return n;case 1:return n+`===`;case 2:return n+`==`;case 3:return n+`=`}},decompressFromBase64:function(e){return e==null?``:e==``?null:a._decompress(e.length,32,function(n){return i(t,e.charAt(n))})},compressToUTF16:function(t){return t==null?``:a._compress(t,15,function(t){return e(t+32)})+` `},decompressFromUTF16:function(e){return e==null?``:e==``?null:a._decompress(e.length,16384,function(t){return e.charCodeAt(t)-32})},compressToUint8Array:function(e){for(var t=a.compress(e),n=new Uint8Array(t.length*2),r=0,i=t.length;r<i;r++){var o=t.charCodeAt(r);n[r*2]=o>>>8,n[r*2+1]=o%256}return n},decompressFromUint8Array:function(t){if(t==null)return a.decompress(t);for(var n=Array(t.length/2),r=0,i=n.length;r<i;r++)n[r]=t[r*2]*256+t[r*2+1];var o=[];return n.forEach(function(t){o.push(e(t))}),a.decompress(o.join(``))},compressToEncodedURIComponent:function(e){return e==null?``:a._compress(e,6,function(e){return n.charAt(e)})},decompressFromEncodedURIComponent:function(e){return e==null?``:e==``?null:(e=e.replace(/ /g,`+`),a._decompress(e.length,32,function(t){return i(n,e.charAt(t))}))},compress:function(t){return a._compress(t,16,function(t){return e(t)})},_compress:function(e,t,n){if(e==null)return``;var r,i,a={},o={},s=``,c=``,l=``,u=2,d=3,f=2,p=[],m=0,h=0,g;for(g=0;g<e.length;g+=1)if(s=e.charAt(g),Object.prototype.hasOwnProperty.call(a,s)||(a[s]=d++,o[s]=!0),c=l+s,Object.prototype.hasOwnProperty.call(a,c))l=c;else{if(Object.prototype.hasOwnProperty.call(o,l)){if(l.charCodeAt(0)<256){for(r=0;r<f;r++)m<<=1,h==t-1?(h=0,p.push(n(m)),m=0):h++;for(i=l.charCodeAt(0),r=0;r<8;r++)m=m<<1|i&1,h==t-1?(h=0,p.push(n(m)),m=0):h++,i>>=1}else{for(i=1,r=0;r<f;r++)m=m<<1|i,h==t-1?(h=0,p.push(n(m)),m=0):h++,i=0;for(i=l.charCodeAt(0),r=0;r<16;r++)m=m<<1|i&1,h==t-1?(h=0,p.push(n(m)),m=0):h++,i>>=1}u--,u==0&&(u=2**f,f++),delete o[l]}else for(i=a[l],r=0;r<f;r++)m=m<<1|i&1,h==t-1?(h=0,p.push(n(m)),m=0):h++,i>>=1;u--,u==0&&(u=2**f,f++),a[c]=d++,l=String(s)}if(l!==``){if(Object.prototype.hasOwnProperty.call(o,l)){if(l.charCodeAt(0)<256){for(r=0;r<f;r++)m<<=1,h==t-1?(h=0,p.push(n(m)),m=0):h++;for(i=l.charCodeAt(0),r=0;r<8;r++)m=m<<1|i&1,h==t-1?(h=0,p.push(n(m)),m=0):h++,i>>=1}else{for(i=1,r=0;r<f;r++)m=m<<1|i,h==t-1?(h=0,p.push(n(m)),m=0):h++,i=0;for(i=l.charCodeAt(0),r=0;r<16;r++)m=m<<1|i&1,h==t-1?(h=0,p.push(n(m)),m=0):h++,i>>=1}u--,u==0&&(u=2**f,f++),delete o[l]}else for(i=a[l],r=0;r<f;r++)m=m<<1|i&1,h==t-1?(h=0,p.push(n(m)),m=0):h++,i>>=1;u--,u==0&&(u=2**f,f++)}for(i=2,r=0;r<f;r++)m=m<<1|i&1,h==t-1?(h=0,p.push(n(m)),m=0):h++,i>>=1;for(;;)if(m<<=1,h==t-1){p.push(n(m));break}else h++;return p.join(``)},decompress:function(e){return e==null?``:e==``?null:a._decompress(e.length,32768,function(t){return e.charCodeAt(t)})},_decompress:function(t,n,r){var i=[],a,o=4,s=4,c=3,l=``,u=[],d,f,p,m,h,g,_,v={val:r(0),position:n,index:1};for(d=0;d<3;d+=1)i[d]=d;for(p=0,h=2**2,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=n,v.val=r(v.index++)),p|=(m>0?1:0)*g,g<<=1;switch(a=p){case 0:for(p=0,h=2**8,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=n,v.val=r(v.index++)),p|=(m>0?1:0)*g,g<<=1;_=e(p);break;case 1:for(p=0,h=2**16,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=n,v.val=r(v.index++)),p|=(m>0?1:0)*g,g<<=1;_=e(p);break;case 2:return``}for(i[3]=_,f=_,u.push(_);;){if(v.index>t)return``;for(p=0,h=2**c,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=n,v.val=r(v.index++)),p|=(m>0?1:0)*g,g<<=1;switch(_=p){case 0:for(p=0,h=2**8,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=n,v.val=r(v.index++)),p|=(m>0?1:0)*g,g<<=1;i[s++]=e(p),_=s-1,o--;break;case 1:for(p=0,h=2**16,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=n,v.val=r(v.index++)),p|=(m>0?1:0)*g,g<<=1;i[s++]=e(p),_=s-1,o--;break;case 2:return u.join(``)}if(o==0&&(o=2**c,c++),i[_])l=i[_];else if(_===s)l=f+f.charAt(0);else return null;u.push(l),i[s++]=f+l.charAt(0),o--,f=l,o==0&&(o=2**c,c++)}}};return a}();t!==void 0&&t!=null&&(t.exports=n)}),u=c(l());function d(e={}){let{appUrl:t=`https://livecodes.io`,params:n={},config:r={},headless:i,import:a,lite:o,view:s,...c}=e,l;try{l=new URL(t)}catch{throw Error(`${t} is not a valid URL.`)}let d=new URLSearchParams;Object.entries(c).forEach(([e,t])=>{t!==void 0&&l.searchParams.set(e,String(t))});let f=e.view===`headless`||i;if(o&&(console.warn(`Deprecation notice: "lite" option is deprecated. Use "config: { mode: 'lite' }" instead.`),typeof r==`object`&&r.mode==null?r.mode=`lite`:l.searchParams.set(`lite`,`true`)),s&&(console.warn(`Deprecation notice: The "view" option has been moved to "config.view". For headless mode use "headless: true".`),typeof r==`object`&&r.view==null&&s!==`headless`?r.view=s:l.searchParams.set(`view`,s)),typeof r==`string`)try{new URL(r),l.searchParams.set(`config`,encodeURIComponent(r))}catch{throw Error(`"config" is not a valid URL or configuration object.`)}else r&&typeof r==`object`&&Object.keys(r).length>0&&(r.title&&r.title!==`Untitled Project`&&l.searchParams.set(`title`,r.title),r.description&&r.description.length>0&&l.searchParams.set(`description`,r.description),d.set(`config`,`code/`+(0,u.compressToEncodedURIComponent)(JSON.stringify(r))));if(n&&typeof n==`object`&&Object.keys(n).length>0)try{d.set(`params`,(0,u.compressToEncodedURIComponent)(JSON.stringify(n)))}catch{Object.keys(n).forEach(e=>{l.searchParams.set(e,encodeURIComponent(String(n[e])))})}return a&&l.searchParams.set(`x`,encodeURIComponent(a)),f&&l.searchParams.set(`headless`,`true`),l.hash=d.toString(),l.href}function f(e){let t={};return e.split(` `).forEach(e=>{let n=e.indexOf(`=`);if(n>0){let r=e.slice(0,n),i=e.slice(n+1);t[r]=i}else t[e]=``}),t}function p({options:e,meta:t,language:n,content:r}){let i=t.render??e.render??`playground`,a=t.height??e.height,o=[...new Set([e.className,t.className,t.class])].filter(e=>e!=null).map(e=>e.replace(/['"{}<>\n]/g,``)).join(` `).trim(),s=e.config,c=s&&typeof s==`object`,l=c?s.mode:void 0,u=t.mode??e.params?.mode??l??(i===`playground`?`simple`:void 0),d=n.includes(`{`)?n.split(`{`)[0]:n,f={...e.params,...t,...u?{mode:u}:{},[d]:r},p=[`livecodes`,`render`,`height`,`className`,`class`,`lang`];p.forEach(e=>{delete f[e]});let m={appUrl:e.appUrl,config:s,params:f,import:t.import??e.import,loading:t.loading??e.loading,template:t.template??e.template},h=Object.keys(m);return h.forEach(e=>{m[e]??delete m[e]}),{embedOptions:m,render:i,height:a,className:o}}let m=(e,t={},n=[])=>{(Array.isArray(t)||typeof t==`string`)&&(n=t,t={});let r=e===`link`?`a`:e===`image`?`img`:e===`text`?`span`:e===`element`&&t.data?.hName===`iframe`?`iframe`:`div`,i={};t.url&&(e===`link`?i.href=t.url:e===`image`&&(i.src=t.url));for(let[e,n]of Object.entries(t.data?.hProperties||{}))i[e]=n;return e===`text`&&Object.keys(i).length===0&&typeof n==`string`?n:`<${r} ${Object.entries(i).map(([e,t])=>`${e}="${t??``}"`).join(` `)}>${typeof n==`string`?n:n.join(``)}</${r}>`};function h({url:e,render:t,className:n=``,u:r=m}){let i=t===`link`?r(`text`,`Edit in LiveCodes`):r(`image`,{url:`https://livecodes.io/livecodes/assets/images/edit-in-livecodes-button${n.toLowerCase().includes(`dark`)?`-dark`:``}.svg`,data:{hProperties:{alt:`Edit in LiveCodes`,style:`height: 28px;`}}});return r(`link`,{url:e,data:{hProperties:{target:`_blank`,rel:`noopener noreferrer`,class:n}}},[i])}function g({url:e,height:t,className:n,loading:r=`lazy`,data:i,u:a=m}){return a(`element`,{data:{...i,hName:`iframe`,hProperties:{...i?.hProperties,scrolling:`no`,loading:r===`eager`?`eager`:`lazy`,style:`height: ${t??`300px`}; width: 100%; border:1px solid black; border-radius:6px;`,class:n,src:e,sandbox:`allow-same-origin allow-downloads allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-presentation allow-scripts`}}})}let _=(e={})=>({renderer:{code({lang:t=``,text:n}){let[r,...i]=t.split(/(\s+)/g),a=f(i.join(``)||``),o=e=>{let t=e?` data-livecodes-url="${e}"`:``;return`<pre><code class="language-${r}"${t}>${n.replace(/</g,`&lt;`)}</code></pre>`};if(a.livecodes==null&&!e.auto||a.livecodes===`false`)return!1;let s=a.lang??r,{embedOptions:c,render:l,height:u,className:m}=p({options:e,meta:a,language:s,content:n}),_=d(c);return l===`link`||l===`button`?o()+h({url:_,render:l,className:m}):l===`meta`?o(_):g({url:_,height:u,className:m,loading:e.loading})}}});var v=_;return v}();