mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 22:09:52 +08:00
65 lines
1.7 KiB
HTML
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>
|