Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
6cc5af2f
Commit
6cc5af2f
authored
Jan 15, 2016
by
Marcel Stör
Browse files
Add JavaScript function to generate TOC on each module page
parent
0900958e
Changes
1
Hide whitespace changes
Inline
Side-by-side
docs/js/extra.js
View file @
6cc5af2f
...
@@ -6,10 +6,41 @@ var nodemcu = nodemcu || {};
...
@@ -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 || {};
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment