1
0
mirror of https://github.com/avinal/avinal.github.io.git synced 2026-07-04 07:40:09 +05:30
Files
avinal.github.io/public/index.html
T
2022-09-14 17:03:22 +05:30

81 lines
3.0 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/website/mdn-style.css">
<link rel="stylesheet" href="/website/foo-style.min.css">
<title>Document</title>
<script src="/website/redirect.js"></script>
</head>
<body>
<div id="app"></div>
<script src="/website/app.js"></script>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script src="/website/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, function () {
renderSuccess = true;
});
// document.getElementById("toc-entries").innerHTML = toc;
});
// app.ports.isRenderComplete.send(renderSuccess);
</script>
</body>
</html>