Support linking to individual guide pages.

This commit is contained in:
Péter Szilágyi 2017-01-17 14:25:54 +02:00
parent 5bfc5356a9
commit 51bd97a9a1
No known key found for this signature in database
GPG Key ID: E9AE538CEDF8293D
1 changed files with 13 additions and 7 deletions

View File

@ -63,7 +63,7 @@
</div>
<script type="text/javascript">
// Download the go-ethereum wiki sidebar and convert it into a guide sidebar
// Download the developer guide ToC and convert it into a guide sidebar
$.ajax({
url: 'https://raw.githubusercontent.com/wiki/ethereum/go-ethereum/Developer-Guide.md',
error: function() {
@ -97,12 +97,13 @@
// Otherwise if the line is a link, add a new entry to the sub-menu
if (line[0] == "[") {
var name = /\[(.*)\]/g.exec(line)[1];
var id = (head + "-" + name).split(" ").join("-");
var link = /\((.*)\)/g.exec(line)[1];
link = "https://raw.githubusercontent.com/wiki/" + link.slice("https://github.com/".length).replace("wiki/", "") + ".md";
var item = $("<a href='#' class='list-group-item'>" + name + "</a>").appendTo(menu);
$(item).click(function(head, name, link) {
var item = $("<a id='menu-" + id + "' href='#" + id + "' class='list-group-item'>" + name + "</a>").appendTo(menu);
$(item).click(function(id, head, name, link) {
return function() {
$.ajax({
url: link,
@ -111,22 +112,27 @@
},
dataType: 'text',
success: function(data) {
// Load the wiki page content into the current page
$('#content').html("<h1>" + head + ": " + name + "</h1>" + marked(data));
emojify.setConfig({img_dir: '../static/images/emoji'});
emojify.run(document.getElementById('content'));
// Run the syntax highlighter on all code blocks
$('pre code').each(function(i, block) {
console.log("hl", i, block);
hljs.highlightBlock(block);
});
}
});
};
}(head, name, link));
}(id, head, name, link));
}
}
// Menu constructed, load the first entry
console.log(menu.children()[1].click());
// Menu constructed, load the specified entry, or first if non existent
if (window.location.hash.length > 1) {
$('#menu-' + window.location.hash.split('#')[1])[0].click();
} else {
$(toc.children()[0]).children()[1].click();
}
}
});
</script>