@@ -75,24 +75,56 @@ export function descriptionElementFromHash (anything = false) {
7575
7676 // Matches a subheader in particular
7777 if ( headingTagNames . includes ( element . tagName ) ) {
78- const div = document . createElement ( 'div' )
79- const nodes = [ element ]
80-
81- // Capture all nodes under the current heading level.
82- let node = element
83- while ( ( node = node . nextSibling ) ) {
84- if ( headingTagNames . includes ( node . tagName ) && node . tagName <= element . tagName ) {
85- break
86- } else {
87- nodes . push ( node )
78+ return headingPreview ( element )
79+ }
80+
81+ //const nearestHeading = findNearestAboveHeading(element)
82+ //
83+ //if(nearestHeading) {
84+ // return nearestHeading
85+ //} else {
86+ // return document.getElementById('top-content')
87+ //}
88+ }
89+
90+ function findNearestAboveHeading ( element ) {
91+ let previous = element . previousElementSibling ;
92+ while ( previous ) {
93+ if ( headingTagNames . includes ( previous . tagName ) ) {
94+ return headingPreview ( previous ) ;
95+ }
96+ previous = previous . previousElementSibling ;
97+ }
98+ let parent = element . parentNode ;
99+ while ( parent ) {
100+ previous = parent . previousElementSibling ;
101+ while ( previous ) {
102+ if ( headingTagNames . includes ( previous . tagName ) ) {
103+ return headingPreview ( previous ) ;
88104 }
105+ previous = previous . previousElementSibling ;
89106 }
107+ parent = parent . parentNode ;
108+ }
109+ return null ;
110+ }
111+
112+ function headingPreview ( element ) {
113+ const div = document . createElement ( 'div' )
114+ const nodes = [ element ]
90115
91- div . append ( ...nodes )
92- return div
116+ // Capture all nodes under the current heading level.
117+ let node = element
118+ while ( ( node = node . nextSibling ) ) {
119+ if ( headingTagNames . includes ( node . tagName ) && node . tagName <= element . tagName ) {
120+ break
121+ } else {
122+ nodes . push ( node )
123+ }
93124 }
94125
95- return null
126+ div . append ( ...nodes )
127+ return div
96128}
97129
98130/**
0 commit comments