document.addEventListener('DOMContentLoaded', function() {
function syntaxHighlight() {
if (hljs !== undefined) {
var codeBlocks = document.querySelectorAll('pre code');
for (var i = 0; i < codeBlocks.length; i++) {
var codeBlock = codeBlocks[i];
hljs.highlightElement(codeBlock);
codeBlock.parentNode.style.background = (
getComputedStyle(codeBlock)
.getPropertyValue('background'));
}
}
}
function renderMath() {
if (typeof renderMathInElement === 'function') {
renderMathInElement(
document.getElementById("markdown-preview"),
{
delimiters: [
{left: "$$", right: "$$", display: true},
{left: "\\[", right: "\\]", display: true},
{left: "$", right: "$", display: false},
{left: "\\(", right: "\\)", display: false}
]
}
);
}
}
syntaxHighlight();
renderMath();
var previewWindow = document.getElementById('markdown-preview');
var webSocketUrl = 'ws://' + window.location.host;
var socket = new ReconnectingWebSocket(webSocketUrl);
socket.maxReconnectInterval = 5000;
socket.onmessage = function(event) {
document.getElementById('markdown-preview').innerHTML = event.data;
syntaxHighlight();
renderMath();
}
socket.onclose = function(event) {
window.open('', '_self', '');
window.close();
}
});