UNPKG

smartdown

Version:

A library for translating, rendering and interacting with Smartdown documents. Smartdown is an extension of Markdown that provides richer media support and reactive programming capability.

1 lines 2.86 kB
var scriptMap,defaultHome="Home",baseURL="https://smartdown.site/";"string"==typeof smartdownBaseURL&&(baseURL=smartdownBaseURL),"string"==typeof smartdownDefaultHome&&(defaultHome=smartdownDefaultHome);var gistPathPrefix="",gistHashPrefix="gist/";function cardLoaded(e,t,a){document.body.scrollTop=0,document.documentElement.scrollTop=0,multiparts=smartdown.partitionMultipart(e);var s=document.getElementById("smartdown-output");smartdown.setHome(multiparts._default_,s,(function(){document.body.scrollTop=0,document.documentElement.scrollTop=0,smartdown.startAutoplay(s),inhibitHash="#"+t,window.location.hash=inhibitHash}))}function loadAsyncCard(e,t){var a=new XMLHttpRequest;a.addEventListener("load",(function(){cardLoaded(this.responseText,e,t)})),a.open("GET",t),a.send()}function relativeCardLoaderInline(e){var t=new RegExp(`^/?(${gistPathPrefix})?${gistHashPrefix}([^/]+)/([^/]+)(/(\\w*))?$`,"g").exec(e);if(t){gistOrg=t[2],gistID=t[3];var a=t[5]||"Home";e=a}var s=multiparts[e];if(s){var o=document.getElementById("smartdown-output");smartdown.setHome(s,o,(function(){smartdown.startAutoplay(o)}))}else{var r=window.location.origin+window.location.pathname+e+".md";if(0===e.indexOf("http"))gistOrg="",gistID="",loadAsyncCard(e,r=e);else if(0===e.indexOf("/"))gistOrg="",gistID="",loadAsyncCard(e,r=e);else if(""!==gistOrg&&""!==gistID){var i=`https://api.github.com/gists/${gistID}`,n=new XMLHttpRequest;n.addEventListener("load",(function(){var t=JSON.parse(this.responseText).files[e+".md"].raw_url;loadAsyncCard(e=`${gistHashPrefix}${gistOrg}/${gistID}/${e}`,t)})),n.open("GET",i),n.send()}else{gistOrg="",gistID="",e.endsWith(".md")||(e+=".md"),0===e.indexOf("./")&&(e=e.slice(2));var d=scriptMap[e]||"";cardLoaded(d=smartdown.decodeInlineScript(d),e,r)}}}function buildScriptMapThenLoadHome(){smartdown.loadCardsFromDocumentScripts(),scriptMap={},smartdown.smartdownScripts.forEach((function(e){var t=e.text;scriptMap[e.id]=t})),loadHome()}var svgIcons={hypercube:"/gallery/resources/Hypercube.svg",Hypercube:"/gallery/resources/Hypercube.svg",badge:"/gallery/resources/badge.svg",StalactiteStalagmite:"/gallery/resources/StalactiteStalagmite.svg",church:"/gallery/resources/church.svg",lighthouse:"/gallery/resources/lighthouse.svg",barn:"/gallery/resources/barn.svg","medieval-gate":"/gallery/resources/medieval-gate.svg"},multiparts={},inhibitHash="",gistOrg="",gistID="";function loadHome(){var e=window.parent.location.hash||window.location.hash;""===e&&(e=defaultHome),relativeCardLoaderInline(e=e.replace(/#/g,""))}var calcHandlers=smartdown.defaultCalcHandlers;const replace=window.location.origin+window.location.pathname,linkRules=[];function locationHashChanged(){location.hash}window.onhashchange=locationHashChanged,smartdown.initialize(svgIcons,baseURL,buildScriptMapThenLoadHome,relativeCardLoaderInline,calcHandlers,linkRules);