1
0
mirror of https://github.com/avinal/avinal.github.io.git synced 2026-07-04 07:40:09 +05:30
Files
2022-09-16 02:35:40 +05:30

91 lines
3.4 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#2d89ef">
<meta name="theme-color" content="#ffffff">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/mdn-style.min.css">
<link rel="stylesheet" href="/foo-style.min.css">
<title>Document</title>
<script src="/redirect.js"></script>
<script src="https://kit.fontawesome.com/7a57741988.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="app"></div>
<script src="/app.js"></script>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script src="/prism.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/plugins/autoloader/prism-autoloader.min.js"></script>
<script>
var app = Elm.Main.init({ node: document.getElementById("app") });
var renderSuccess = false;
app.ports.sendString.subscribe(function (markdowndata) {
var numberOfHeadings = 0;
// let toc = '';
const renderer = new marked.Renderer();
const sections = [];
renderer.heading = (text, level) => {
if (level === 1) {
return `<h${level}>${text}</h${level}>`
}
const escapedText = text.trim().toLowerCase().replace(/[^\w]+/g, '-');
const endSection = `</div></section>`;
const sectionContent = `
<section aria-labelledby="${escapedText}">
<h${level} id="${escapedText}">
<a title="Permalink to ${text}" href="#${escapedText}">
${text}
</a>
</h${level}>
<div class="section-content">`;
// toc += `<li class="document-toc-item"><a class="document-toc-link" href="#${escapedText}">${text}</a></li>`;
if (numberOfHeadings === 0) {
numberOfHeadings++;
return sectionContent;
} else {
return endSection + sectionContent;
}
};
renderer.blockquote = (text) => {
return `<div id="sect3" class="notecard note">${text}</div>`;
};
marked.setOptions({
renderer: renderer,
highlight: function (code, lang) {
const grammar = Prism.languages[lang];
if (!grammar) {
console.warn(
`Unable to find a Prism grammar for '${lang}'`
);
return; // bail!
}
return Prism.highlight(code, grammar, lang);
}
})
document.getElementById("insert-here").innerHTML = marked.parse(markdowndata);
// document.getElementById("toc-entries").innerHTML = toc;
});
// app.ports.isRenderComplete.send(renderSuccess);
</script>
</body>
</html>