Make the infrastructure TOC stuff robust against incorrect HTML.

This commit is contained in:
mtail 2018-06-11 14:59:05 -07:00
parent 210cc87d6c
commit 9e9bcb2d5d
4 changed files with 13 additions and 5 deletions

View File

@ -18,9 +18,12 @@
{{ $current := $page.Scratch.Get "level" | int }} {{ $current := $page.Scratch.Get "level" | int }}
{{ if gt $level $current }} {{ if gt $level $current }}
{{ $delta := sub $level $current }}
{{ range $index, $num := (seq $delta) }}
<ul> <ul>
{{ end }}
{{ else if lt $level $current }} {{ else if lt $level $current }}
{{ $delta := sub ($page.Scratch.Get "level") $level }} {{ $delta := sub $current $level }}
{{ range $index, $num := (seq $delta) }} {{ range $index, $num := (seq $delta) }}
</ul> </ul>
{{ end }} {{ end }}

View File

@ -488,7 +488,12 @@ function handlePageScroll() {
var closestHeadingAboveTopPos = -1000000; var closestHeadingAboveTopPos = -1000000;
for (var i = 0; i < tocLinks.length; i++) { for (var i = 0; i < tocLinks.length; i++) {
var cbr = tocHeadings[i].getBoundingClientRect(); var heading = tocHeadings[i];
if (heading === null) {
continue;
}
var cbr = heading.getBoundingClientRect();
if (cbr.width || cbr.height) { if (cbr.width || cbr.height) {
if ((cbr.top >= 0) && (cbr.top < window.innerHeight)) { if ((cbr.top >= 0) && (cbr.top < window.innerHeight)) {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long