vnote/src/resources/pre_template.html
Le Tan 99353c37bd fix highlihgtjs highlight using Hoedown
Signed-off-by: Le Tan <tamlokveer@gmail.com>
2016-11-10 22:01:51 +08:00

65 lines
1.7 KiB
HTML

<!doctype html>
<html lang="en">
<meta charset="utf-8">
<head>
<style type="text/css">
<!-- BACKGROUND_PLACE_HOLDER -->
</style>
<link rel="stylesheet" type="text/css" href="CSS_PLACE_HOLDER">
<link rel="stylesheet" type="text/css" href="qrc:/utils/highlightjs/styles/default.css">
<script src="qrc:/resources/qwebchannel.js"></script>
<script src="qrc:/utils/highlightjs/highlight.pack.js"></script>
</head>
<body>
<div id="placeholder"></div>
<script>
'use strict';
var placeholder = document.getElementById('placeholder');
var content;
var scrollToAnchor = function(anchor) {
document.getElementById(anchor).scrollIntoView();
};
var updateHtml = function(html) {
placeholder.innerHTML = html;
var codes = document.getElementsByTagName('code');
for (var i = 0; i < codes.length; ++i) {
hljs.highlightBlock(codes[i]);
}
}
new QWebChannel(qt.webChannelTransport,
function(channel) {
content = channel.objects.content;
updateHtml(content.html);
content.htmlChanged.connect(updateHtml);
content.requestScrollToAnchor.connect(scrollToAnchor);
}
);
window.onscroll = function() {
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset;
var eles = document.querySelectorAll("h1, h2, h3, h4, h5, h6");
if (eles.length == 0) {
return;
}
var curIdx = 0;
var biaScrollTop = scrollTop + 50;
for (var i = 0; i < eles.length; ++i) {
if (biaScrollTop >= eles[i].offsetTop) {
curIdx = i;
} else {
break;
}
}
var curHeader = eles[curIdx].getAttribute("id");
if (curHeader != null) {
content.setHeader(curHeader);
}
}
</script>