PK ! X X simplecel/__init__.pyfrom flask import Flask
app = Flask(__name__)
from .views import *
from .api import *
PK ! Č
m} } simplecel/__main__.pyimport os
import webbrowser
import click
from . import app
@click.command()
@click.argument('filename')
@click.option('--meta', default='', help='Please input the path to META json, as defined in pyexcel-export.')
@click.option('--host', default='localhost')
@click.option('--port', default=7500)
@click.option('--debug', is_flag=True)
def load_excel(filename, meta, host, port, debug):
os.environ['FILENAME'] = filename
os.environ['META'] = meta
app.run(
host=host,
port=port,
debug=debug
)
webbrowser.open('http://{}:{}'.format(host, port))
if __name__ == '__main__':
load_excel()
PK ! simplecel/api.pyPK ! ĄÖ5Řž ž simplecel/static/favicon.ico ¨ ( @ #. #. ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙üüü˙ččč˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ččč˙üüü˙˙˙˙˙ççç˙ttt˙(((˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙(((˙ttt˙ççç˙```˙˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙˙```˙˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙˙ ˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ĹĹĹ˙âââ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙âââ˙ĹĹĹ˙˙ ˙ ˙˙ĹĹĹ˙âââ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙âââ˙ĹĹĹ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ĹĹĹ˙âââ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙âââ˙ĹĹĹ˙˙ ˙ ˙˙ĹĹĹ˙âââ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙âââ˙ĹĹĹ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ĹĹĹ˙âââ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙âââ˙ĹĹĹ˙˙ ˙ ˙˙ĹĹĹ˙âââ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙âââ˙ĹĹĹ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙˙ŕŕŕ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ŕŕŕ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙ĹĹĹ˙âââ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙âââ˙ĹĹĹ˙˙ ˙ ˙˙ĹĹĹ˙âââ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙âââ˙ĹĹĹ˙˙ ˙ ˙ ˙ ˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙˙˙˙˙˙˙˙˙˙˙˙˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙˙```˙˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙˙```˙ççç˙ttt˙(((˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙(((˙ttt˙ççç˙˙˙˙˙üüü˙ččč˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ŕŕŕ˙ččč˙üüü˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ PK ! îËUY Y simplecel/static/index.css#tab-area {
overflow-x: scroll;
border: 1px solid #ccc;
background-color: #f1f1f1;
margin: 0;
}
/* Style the buttons that are used to open the tab content */
.tab-links {
background-color: inherit;
float: left;
border: none;
outline: none;
cursor: pointer;
padding: 14px 16px;
transition: 0.3s;
font-size: 17px;
}
/* Change background color of buttons on hover */
.tab-links:hover {
background-color: #ddd;
}
/* Create an active/current tablink class */
.tab-links.active {
background-color: #ccc;
}
#handsontable-container {
overflow: hidden;
}
::-webkit-scrollbar {
width: 0px; /* remove scrollbar space */
background: transparent; /* optional: just make scrollbar invisible */
}
td p {
margin-top: 0;
margin-bottom: 0;
}
td ul {
margin-top: -1em;
margin-bottom: -1em;
}
td li {
margin: -0.5em;
}
PK ! +ɨ ¨ simplecel/static/index.jsconst markdownConverter = new showdown.Converter;
(function(Handsontable){
function customRenderer(hotInstance, td, row, column, prop, value, cellProperties) {
const img_regex = /(?:(?=^)|(?=\s).|^)([^\s<>"\']+\.(?:png|jpg|jpeg|gif))/g;
let text = Handsontable.helper.stringify(value);
text = text.replace(/\n+/g, "\n\n");
text = text.replace(img_regex, "");
td.innerHTML = markdownConverter.makeHtml(text);
return td;
}
// Register an alias
Handsontable.renderers.registerRenderer('markdownRenderer', customRenderer);
})(Handsontable);
const sheetNames = Object.keys(data);
let hot;
let innerHTML = [];
sheetNames.forEach((item, index)=>{
innerHTML.push('');
});
const tabArea = document.getElementById('tab-area');
tabArea.innerHTML = innerHTML.join('');
Array.from(document.getElementsByClassName('tab-links')).forEach((item, index)=>{
item.addEventListener('click', ()=>{
if(hot !== undefined) hot.destroy();
loadExcelSheet(index);
});
if(index === 0) item.click();
});
function loadExcelSheet(sheetNumber) {
const container = document.getElementById('handsontable-container');
const dimensions = {
height: (window.innerHeight - document.getElementById('tab-area').offsetHeight) + 'px',
width: window.innerWidth + 'px'
};
Object.assign(container.style, dimensions);
let columnFormatter = [];
data[sheetNames[sheetNumber]][0].forEach((item, index)=>{
columnFormatter.push({data: index, renderer: "markdownRenderer"});
});
hot = new Handsontable(document.getElementById('handsontable-area'), {
data: data[sheetNames[sheetNumber]].slice(1),
rowHeaders: false,
colHeaders: data[sheetNames[sheetNumber]][0],
columns: columnFormatter,
manualColumnResize: true,
filters: true,
dropdownMenu: true,
contextMenu: true,
modifyColWidth: (width, col)=>{
if(width > 200) return 200;
},
manualRowResize: true
});
colWidths = [];
[...Array(hot.countCols()).keys()].map(i => {
colWidths.push(hot.getColWidth(i));
});
hot.updateSettings({
modifyColWidth: ()=>{},
colWidths: colWidths
});
}
PK ! ¨ë( ' simplecel/static/vendor/showdown.min.js/*! showdown v 2.0.0-alpha1 - 19-04-2018 */
(function(){function C(g){"use strict";var A={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,description:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,description:"Parses simple line breaks as
(GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,description:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",description:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,description:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,description:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,description:"Support for HTML Tag escaping. ex:
[^\r]+?<\/pre>)/gm,function(g,A){var e=A;return e=(e=e.replace(/^ /gm,"¨0")).replace(/¨0/g,"")}),p.subParser("makehtml.hashBlock")("\n"+g+"\n
",A,e)}),g=e.converter._dispatch("makehtml.blockQuotes.after",g,A,e)}),p.subParser("makehtml.codeBlocks",function(g,t,a){"use strict";g=a.converter._dispatch("makehtml.codeBlocks.before",g,t,a);return g=(g=(g+="¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g,function(g,A,e){var C=A,I=e,r="\n";return C=p.subParser("makehtml.outdent")(C,t,a),C=p.subParser("makehtml.encodeCode")(C,t,a),C=(C=(C=p.subParser("makehtml.detab")(C,t,a)).replace(/^\n+/g,"")).replace(/\n+$/g,""),t.omitExtraWLInCodeBlocks&&(r=""),C=""+C+r+"
",p.subParser("makehtml.hashBlock")(C,t,a)+I})).replace(/¨0/,""),g=a.converter._dispatch("makehtml.codeBlocks.after",g,t,a)}),p.subParser("makehtml.codeSpans",function(g,r,t){"use strict";return void 0===(g=t.converter._dispatch("makehtml.codeSpans.before",g,r,t))&&(g=""),g=g.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(g,A,e,C){var I=C;return I=(I=I.replace(/^([ \t]*)/g,"")).replace(/[ \t]*$/g,""),I=A+""+(I=p.subParser("makehtml.encodeCode")(I,r,t))+"",I=p.subParser("makehtml.hashHTMLSpans")(I,r,t)}),g=t.converter._dispatch("makehtml.codeSpans.after",g,r,t)}),p.subParser("makehtml.completeHTMLDocument",function(g,A,e){"use strict";if(!A.completeHTMLDocument)return g;g=e.converter._dispatch("makehtml.completeHTMLDocument.before",g,A,e);var C="html",I="\n",r="",t='\n',a="",n="";for(var o in void 0!==e.metadata.parsed.doctype&&(I="\n","html"!==(C=e.metadata.parsed.doctype.toString().toLowerCase())&&"html5"!==C||(t='')),e.metadata.parsed)if(e.metadata.parsed.hasOwnProperty(o))switch(o.toLowerCase()){case"doctype":break;case"title":r=""+e.metadata.parsed.title+" \n";break;case"charset":t="html"===C||"html5"===C?'\n':'\n';break;case"language":case"lang":a=' lang="'+e.metadata.parsed[o]+'"',n+='\n';break;default:n+='\n'}return g=I+"\n\n"+r+t+n+"\n\n"+g.trim()+"\n\n",g=e.converter._dispatch("makehtml.completeHTMLDocument.after",g,A,e)}),p.subParser("makehtml.detab",function(g,A,e){"use strict";return g=(g=(g=(g=(g=(g=e.converter._dispatch("makehtml.detab.before",g,A,e)).replace(/\t(?=\t)/g," ")).replace(/\t/g,"¨A¨B")).replace(/¨B(.+?)¨A/g,function(g,A){for(var e=A,C=4-e.length%4,I=0;I/g,">"),g=e.converter._dispatch("makehtml.encodeAmpsAndAngles.after",g,A,e)}),p.subParser("makehtml.encodeBackslashEscapes",function(g,A,e){"use strict";return g=(g=(g=e.converter._dispatch("makehtml.encodeBackslashEscapes.before",g,A,e)).replace(/\\(\\)/g,p.helper.escapeCharactersCallback)).replace(/\\([`*_{}\[\]()>#+.!~=|-])/g,p.helper.escapeCharactersCallback),g=e.converter._dispatch("makehtml.encodeBackslashEscapes.after",g,A,e)}),p.subParser("makehtml.encodeCode",function(g,A,e){"use strict";return g=(g=e.converter._dispatch("makehtml.encodeCode.before",g,A,e)).replace(/&/g,"&").replace(//g,">").replace(/([*_{}\[\]\\=~-])/g,p.helper.escapeCharactersCallback),g=e.converter._dispatch("makehtml.encodeCode.after",g,A,e)}),p.subParser("makehtml.escapeSpecialCharsWithinTagAttributes",function(g,A,e){"use strict";return g=(g=(g=e.converter._dispatch("makehtml.escapeSpecialCharsWithinTagAttributes.before",g,A,e)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,function(g){return g.replace(/(.)<\/?code>(?=.)/g,"$1`").replace(/([\\`*_~=|])/g,p.helper.escapeCharactersCallback)})).replace(/-]|-[^>])(?:[^-]|-[^-])*)--)>/gi,function(g){return g.replace(/([\\`*_~=|])/g,p.helper.escapeCharactersCallback)}),g=e.converter._dispatch("makehtml.escapeSpecialCharsWithinTagAttributes.after",g,A,e)}),p.subParser("makehtml.githubCodeBlocks",function(g,r,t){"use strict";return r.ghCodeBlocks?(g=t.converter._dispatch("makehtml.githubCodeBlocks.before",g,r,t),g=(g=(g+="¨0").replace(/(?:^|\n)(```+|~~~+)([^\s`~]*)\n([\s\S]*?)\n\1/g,function(g,A,e,C){var I=r.omitExtraWLInCodeBlocks?"":"\n";return C=p.subParser("makehtml.encodeCode")(C,r,t),C=""+(C=(C=(C=p.subParser("makehtml.detab")(C,r,t)).replace(/^\n+/g,"")).replace(/\n+$/g,""))+I+"
",C=p.subParser("makehtml.hashBlock")(C,r,t),"\n\n¨G"+(t.ghCodeBlocks.push({text:g,codeblock:C})-1)+"G\n\n"})).replace(/¨0/,""),t.converter._dispatch("makehtml.githubCodeBlocks.after",g,r,t)):g}),p.subParser("makehtml.hashBlock",function(g,A,e){"use strict";return g=(g=e.converter._dispatch("makehtml.hashBlock.before",g,A,e)).replace(/(^\n+|\n+$)/g,""),g="\n\n¨K"+(e.gHtmlBlocks.push(g)-1)+"K\n\n",g=e.converter._dispatch("makehtml.hashBlock.after",g,A,e)}),p.subParser("makehtml.hashCodeTags",function(g,r,t){"use strict";g=t.converter._dispatch("makehtml.hashCodeTags.before",g,r,t);return g=p.helper.replaceRecursiveRegExp(g,function(g,A,e,C){var I=e+p.subParser("makehtml.encodeCode")(A,r,t)+C;return"¨C"+(t.gHtmlSpans.push(I)-1)+"C"},"]*>","","gim"),g=t.converter._dispatch("makehtml.hashCodeTags.after",g,r,t)}),p.subParser("makehtml.hashElement",function(g,A,C){"use strict";return function(g,A){var e=A;return e=(e=(e=e.replace(/\n\n/g,"\n")).replace(/^\n/,"")).replace(/\n+$/g,""),e="\n\n¨K"+(C.gHtmlBlocks.push(e)-1)+"K\n\n"}}),p.subParser("makehtml.hashHTMLBlocks",function(g,A,r){"use strict";g=r.converter._dispatch("makehtml.hashHTMLBlocks.before",g,A,r);var e=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"],C=function(g,A,e,C){var I=g;return-1!==e.search(/\bmarkdown\b/)&&(I=e+r.converter.makeHtml(A)+C),"\n\n¨K"+(r.gHtmlBlocks.push(I)-1)+"K\n\n"};A.backslashEscapesHTMLTags&&(g=g.replace(/\\<(\/?[^>]+?)>/g,function(g,A){return"<"+A+">"}));for(var I=0;I]*>)","im"),n="<"+e[I]+"\\b[^>]*>",o=""+e[I]+">";-1!==(t=p.helper.regexIndexOf(g,a));){var s=p.helper.splitAtIndex(g,t),i=p.helper.replaceRecursiveRegExp(s[1],C,n,o,"im");if(i===s[1])break;g=s[0].concat(i)}return g=g.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,p.subParser("makehtml.hashElement")(g,A,r)),g=(g=p.helper.replaceRecursiveRegExp(g,function(g){return"\n\n¨K"+(r.gHtmlBlocks.push(g)-1)+"K\n\n"},"^ {0,3}\x3c!--","--\x3e","gm")).replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,p.subParser("makehtml.hashElement")(g,A,r)),g=r.converter._dispatch("makehtml.hashHTMLBlocks.after",g,A,r)}),p.subParser("makehtml.hashHTMLSpans",function(g,A,e){"use strict";function C(g){return"¨C"+(e.gHtmlSpans.push(g)-1)+"C"}return g=(g=(g=(g=(g=e.converter._dispatch("makehtml.hashHTMLSpans.before",g,A,e)).replace(/<[^>]+?\/>/gi,function(g){return C(g)})).replace(/<([^>]+?)>[\s\S]*?<\/\1>/g,function(g){return C(g)})).replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g,function(g){return C(g)})).replace(/<[^>]+?>/gi,function(g){return C(g)}),g=e.converter._dispatch("makehtml.hashHTMLSpans.after",g,A,e)}),p.subParser("makehtml.unhashHTMLSpans",function(g,A,e){"use strict";g=e.converter._dispatch("makehtml.unhashHTMLSpans.before",g,A,e);for(var C=0;C]*>\\s*]*>","^ {0,3}\\s* ","gim"),g=t.converter._dispatch("makehtml.hashPreCodeTags.after",g,r,t)}),p.subParser("makehtml.headers",function(g,n,o){"use strict";g=o.converter._dispatch("makehtml.headers.before",g,n,o);var s=isNaN(parseInt(n.headerLevelStart))?1:parseInt(n.headerLevelStart),A=n.smoothLivePreview?/^(.+)[ \t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[ \t]*\n+/gm,e=n.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n-+[ \t]*\n+/gm;g=(g=g.replace(A,function(g,A){var e=p.subParser("makehtml.spanGamut")(A,n,o),C=n.noHeaderId?"":' id="'+i(A)+'"',I="]*>/.test(o)&&(s=!0)}I[t]=o}return g=(g=(g=I.join("\n")).replace(/^\n+/g,"")).replace(/\n+$/g,""),e.converter._dispatch("makehtml.paragraphs.after",g,A,e)}),p.subParser("makehtml.runExtension",function(g,A,e,C){"use strict";if(g.filter)A=g.filter(A,C.converter,e);else if(g.regex){var I=g.regex;I instanceof RegExp||(I=new RegExp(I,"g")),A=A.replace(I,g.replace)}return A}),p.subParser("makehtml.spanGamut",function(g,A,e){"use strict";return g=e.converter._dispatch("smakehtml.panGamut.before",g,A,e),g=p.subParser("makehtml.codeSpans")(g,A,e),g=p.subParser("makehtml.escapeSpecialCharsWithinTagAttributes")(g,A,e),g=p.subParser("makehtml.encodeBackslashEscapes")(g,A,e),g=p.subParser("makehtml.images")(g,A,e),g=p.subParser("makehtml.anchors")(g,A,e),g=p.subParser("makehtml.autoLinks")(g,A,e),g=p.subParser("makehtml.simplifiedAutoLinks")(g,A,e),g=p.subParser("makehtml.emoji")(g,A,e),g=p.subParser("makehtml.underline")(g,A,e),g=p.subParser("makehtml.italicsAndBold")(g,A,e),g=p.subParser("makehtml.strikethrough")(g,A,e),g=p.subParser("makehtml.ellipsis")(g,A,e),g=p.subParser("makehtml.hashHTMLSpans")(g,A,e),g=p.subParser("makehtml.encodeAmpsAndAngles")(g,A,e),A.simpleLineBreaks?/\n\n¨K/.test(g)||(g=g.replace(/\n+/g,"
\n")):g=g.replace(/ +\n/g,"
\n"),g=e.converter._dispatch("makehtml.spanGamut.after",g,A,e)}),p.subParser("makehtml.strikethrough",function(g,C,I){"use strict";return C.strikethrough&&(g=(g=I.converter._dispatch("makehtml.strikethrough.before",g,C,I)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g,function(g,A){return e=A,C.simplifiedAutoLink&&(e=p.subParser("makehtml.simplifiedAutoLinks")(e,C,I)),""+e+"";var e}),g=I.converter._dispatch("makehtml.strikethrough.after",g,C,I)),g}),p.subParser("makehtml.stripLinkDefinitions",function(g,a,n){"use strict";var A=function(g,A,e,C,I,r,t){return A=A.toLowerCase(),e.match(/^data:.+?\/.+?;base64,/)?n.gUrls[A]=e.replace(/\s/g,""):n.gUrls[A]=p.subParser("makehtml.encodeAmpsAndAngles")(e,a,n),r?r+t:(t&&(n.gTitles[A]=t.replace(/"|'/g,""")),a.parseImgDimensions&&C&&I&&(n.gDimensions[A]={width:C,height:I}),"")};return g=(g=(g=(g+="¨0").replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm,A)).replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,A)).replace(/¨0/,"")}),p.subParser("makehtml.tables",function(g,m,d){"use strict";if(!m.tables)return g;function A(g){var A,e=g.split("\n");for(A=0;A"+(I=p.subParser("makehtml.spanGamut")(I,m,d))+"\n"));for(A=0;A"+p.subParser("makehtml.spanGamut")(a,m,d)+"\n"));c.push(u)}return function(g,A){for(var e="\n\n\n",C=g.length,I=0;I\n \n\n",I=0;I\n";for(var r=0;r\n"}return e+=" \n
\n"}(i,c)}return g=(g=(g=(g=d.converter._dispatch("makehtml.tables.before",g,m,d)).replace(/\\(\|)/g,p.helper.escapeCharactersCallback)).replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,A)).replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm,A),g=d.converter._dispatch("makehtml.tables.after",g,m,d)}),p.subParser("makehtml.underline",function(g,A,e){"use strict";return A.underline?(g=e.converter._dispatch("makehtml.underline.before",g,A,e),g=(g=A.literalMidWordUnderscores?g.replace(/\b_?__(\S[\s\S]*)___?\b/g,function(g,A){return""+A+""}):g.replace(/_?__(\S[\s\S]*?)___?/g,function(g,A){return/\S$/.test(A)?""+A+"":g})).replace(/(_)/g,p.helper.escapeCharactersCallback),g=e.converter._dispatch("makehtml.underline.after",g,A,e)):g}),p.subParser("makehtml.unescapeSpecialChars",function(g,A,e){"use strict";return g=(g=e.converter._dispatch("makehtml.unescapeSpecialChars.before",g,A,e)).replace(/¨E(\d+)E/g,function(g,A){var e=parseInt(A);return String.fromCharCode(e)}),g=e.converter._dispatch("makehtml.unescapeSpecialChars.after",g,A,e)}),p.Converter=function(e){"use strict";var r={},t=[],a=[],n={},C=c,o={parsed:{},raw:"",format:""};function I(g,A){if(A=A||null,p.helper.isString(g)){if(A=g=p.helper.stdExtName(g),p.extensions[g])return console.warn("DEPRECATION WARNING: "+g+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),void function(g,A){"function"==typeof g&&(g=g(new p.Converter));p.helper.isArray(g)||(g=[g]);var e=h(g,A);if(!e.valid)throw Error(e.error);for(var C=0;C [ \t]+,">¨NBSP;<");var A=p.helper.document.createElement("div");A.innerHTML=g;var n=function(g){for(var A=g.querySelectorAll("pre"),e=[],C=0;C'}else e.push(A[C].innerHTML),A[C].innerHTML="",A[C].setAttribute("prenum",C.toString());return e}(A);!function g(A){for(var e=0;e/g,"\\$1>")).replace(/^#/gm,"\\#")).replace(/^(\s*)([-=]{3,})(\s*)$/,"$1\\$2$3")).replace(/^( {0,3}\d+)\./gm,"$1\\.")).replace(/^( {0,3})([+-])/gm,"$1\\$2")).replace(/]([\s]*)\(/g,"\\]$1\\(")).replace(/^ {0,3}\[([\S \t]*?)]:/gm,"\\[$1]:");if(8===g.nodeType)return"\x3c!--"+g.data+"--\x3e\n\n";if(1!==g.nodeType)return"";switch(g.tagName.toLowerCase()){case"h1":A||(a=i(g,1)+"\n\n");break;case"h2":A||(a=i(g,2)+"\n\n");break;case"h3":A||(a=i(g,3)+"\n\n");break;case"h4":A||(a=i(g,4)+"\n\n");break;case"h5":A||(a=i(g,5)+"\n\n");break;case"h6":A||(a=i(g,6)+"\n\n");break;case"p":A||(a=function(g){var A="";if(g.hasChildNodes())for(var e=g.childNodes,C=e.length,I=0;I ")}(g)+"\n\n");break;case"hr":A||(a="---\n\n");break;case"ol":A||(a=s(g,"ol")+"\n\n");break;case"ul":A||(a=s(g,"ul")+"\n\n");break;case"precode":A||(r=(I=g).getAttribute("language"),t=I.getAttribute("precodenum"),a="```"+r+"\n"+n[t]+"\n```\n\n");break;case"pre":A||(C=g.getAttribute("prenum"),a=""+n[C]+"
\n\n");break;case"table":A||(a=function(g){var A,e,C="",I=[[],[]],r=g.querySelectorAll("thead>tr>th"),t=g.querySelectorAll("tbody>tr");for(A=0;A",g.hasAttribute("title")&&(A+=' "'+g.getAttribute("title")+'"'),A+=")"}return A}(g);break;case"img":a=function(g){var A="";g.hasAttribute("src")&&(A+="+">",g.hasAttribute("width")&&g.hasAttribute("height")&&(A+=" ="+g.getAttribute("width")+"x"+g.getAttribute("height")),g.hasAttribute("title")&&(A+=' "'+g.getAttribute("title")+'"'),A+=")");return A}(g);break;default:a=g.outerHTML+"\n\n"}return a}function s(g,A){var e="";if(!g.hasChildNodes())return"";for(var C=g.childNodes,I=C.length,r=g.getAttribute("start")||1,t=0;t