mirror of
https://github.com/nodemcu/nodemcu-firmware.git
synced 2025-01-30 21:12:55 +08:00
Add JavaScript function to generate TOC on each module page
This commit is contained in:
parent
0900958e92
commit
6cc5af2fae
@ -6,10 +6,41 @@ var nodemcu = nodemcu || {};
|
|||||||
var defaultLanguageCode = 'en';
|
var defaultLanguageCode = 'en';
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
addToc();
|
||||||
hideNavigationForAllButSelectedLanguage();
|
hideNavigationForAllButSelectedLanguage();
|
||||||
addLanguageSelectorToRtdFlyOutMenu();
|
addLanguageSelectorToRtdFlyOutMenu();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a TOC-style table to each page in the 'Modules' section.
|
||||||
|
*/
|
||||||
|
function addToc() {
|
||||||
|
var func, intro, tocHtmlTable;
|
||||||
|
if (isModulePage()) {
|
||||||
|
tocHtmlTable = '<table class="docutils">';
|
||||||
|
$('h2').each(function (index) {
|
||||||
|
// 'slice' cuts off the single permalink character at the end of the text (e.g. '¶')
|
||||||
|
func = $(this).text().slice(0, -1);
|
||||||
|
// get the first sentence of the paragraph directly below h2
|
||||||
|
intro = $(this).next().text();
|
||||||
|
intro = intro.substring(0, intro.indexOf('.') + 1);
|
||||||
|
tocHtmlTable += createTocTableRow(func, intro);
|
||||||
|
});
|
||||||
|
tocHtmlTable += '</table>';
|
||||||
|
$(tocHtmlTable).insertBefore($('h2').first())
|
||||||
|
}
|
||||||
|
function isModulePage() {
|
||||||
|
// if the breadcrumb contains 'Modules »' it must be an API page
|
||||||
|
return $("ul.wy-breadcrumbs li:contains('Modules »')").size() > 0;
|
||||||
|
}
|
||||||
|
function createTocTableRow(func, intro) {
|
||||||
|
// fragile attempt to auto-create the in-page anchor
|
||||||
|
var href = func.replace(/\./g, '').replace('()', '').replace(' --', '-');
|
||||||
|
var link = '<a href="#' + href + '">' + func + '</a>';
|
||||||
|
return '<tr><td>' + link + '</td><td>' + intro + '</td></tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function hideNavigationForAllButSelectedLanguage() {
|
function hideNavigationForAllButSelectedLanguage() {
|
||||||
var selectedLanguageCode = determineSelectedLanguageCode();
|
var selectedLanguageCode = determineSelectedLanguageCode();
|
||||||
var selectedLanguageName = languageCodeToNameMap[selectedLanguageCode];
|
var selectedLanguageName = languageCodeToNameMap[selectedLanguageCode];
|
||||||
@ -71,6 +102,7 @@ var nodemcu = nodemcu || {};
|
|||||||
observer.observe(flyOutWrapper[0], {childList: true});
|
observer.observe(flyOutWrapper[0], {childList: true});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function createLanguageLinkFor(languageCode, isCurrentlySelected) {
|
function createLanguageLinkFor(languageCode, isCurrentlySelected) {
|
||||||
var strong;
|
var strong;
|
||||||
// split[0] is an '' because the path starts with the separator
|
// split[0] is an '' because the path starts with the separator
|
||||||
|
Loading…
x
Reference in New Issue
Block a user