1- const container = document . querySelector ( ' #anchor-navigation' ) ;
1+ const container = document . querySelector ( " #anchor-navigation" ) ;
22
33createAnchorNavigation ( ) ;
44highlightCurrentAnchor ( ) ;
55stickyHeight ( ) ;
66
7- const links = document . querySelectorAll ( ' a.anchor, #anchor-navigation ul li a' ) ;
8- links . forEach ( anchor => {
9- anchor . addEventListener ( ' click' , ( event ) => {
7+ const links = document . querySelectorAll ( " a.anchor, #anchor-navigation ul li a" ) ;
8+ links . forEach ( ( anchor ) => {
9+ anchor . addEventListener ( " click" , ( event ) => {
1010 event . preventDefault ( ) ;
1111
1212 window . location . hash = anchor . hash ;
@@ -15,32 +15,33 @@ links.forEach(anchor => {
1515} ) ;
1616
1717function createAnchorNavigation ( ) {
18- const ul = document . querySelector ( ' #anchor-navigation ul' ) ;
19- const anchors = document . querySelectorAll ( ' #main-article h3, #main-article h2, #main-article a.anchor' ) ;
18+ const ul = document . querySelector ( " #anchor-navigation ul" ) ;
19+ const anchors = document . querySelectorAll ( " #main-article h3, #main-article h2, #main-article a.anchor" ) ;
2020
2121 if ( anchors . length === 0 ) {
2222 container . remove ( ) ;
2323 return ;
2424 }
2525
26- container . classList . add ( ' lg:block' ) ;
26+ container . classList . add ( " lg:block" ) ;
2727
28- anchors . forEach ( anchor => {
28+ anchors . forEach ( ( anchor ) => {
2929 const parent = anchor . parentElement ;
30- parent . classList . add ( ' px-6' , ' rounded' ) ;
30+ parent . classList . add ( " px-6" , " rounded" ) ;
3131
32- anchor . classList . add ( ' leading-loose' ) ;
32+ anchor . classList . add ( " leading-loose" ) ;
3333
34- const link = document . createElement ( 'a' ) ;
35- link . href = 'A' === anchor . tagName ? anchor . hash : '#' + anchor . getAttribute ( 'id' ) ;
36- link . innerHTML = 'A' === anchor . tagName ? anchor . innerText : '<i class="fa-duotone fa-angle-right"></i>' + anchor . innerText ;
37- link . classList . add ( 'leading-loose' , 'text-md' , 'inline-block' , 'w-full' , 'text-indigo-500' ) ;
34+ const link = document . createElement ( "a" ) ;
35+ link . href = "A" === anchor . tagName ? anchor . hash : "#" + anchor . getAttribute ( "id" ) ;
36+ link . innerHTML =
37+ "A" === anchor . tagName ? anchor . innerText : '<i class="fa-duotone fa-angle-right"></i>' + anchor . innerText ;
38+ link . classList . add ( "leading-loose" , "text-md" , "inline-block" , "w-full" , "text-indigo-500" ) ;
3839
39- const li = document . createElement ( 'li' ) ;
40- li . classList . add ( ' px-6' , ' rounded' , ' w-full' ) ;
41- if ( 'A' === anchor . tagName ) {
42- li . classList . remove ( ' px-6' ) ;
43- li . classList . add ( ' px-12' ) ;
40+ const li = document . createElement ( "li" ) ;
41+ li . classList . add ( " px-6" , " rounded" , " w-full" ) ;
42+ if ( "A" === anchor . tagName ) {
43+ li . classList . remove ( " px-6" ) ;
44+ li . classList . add ( " px-12" ) ;
4445 }
4546
4647 li . appendChild ( link ) ;
@@ -50,37 +51,37 @@ function createAnchorNavigation() {
5051}
5152
5253function highlightCurrentAnchor ( hash ) {
53- if ( typeof hash === ' undefined' ) {
54+ if ( typeof hash === " undefined" ) {
5455 hash = window . location . hash ;
5556 }
5657
57- const links = document . querySelectorAll ( ' a.anchor, #anchor-navigation ul li a' ) ;
58- links . forEach ( link => {
58+ const links = document . querySelectorAll ( " a.anchor, #anchor-navigation ul li a" ) ;
59+ links . forEach ( ( link ) => {
5960 const parent = link . parentElement ;
60- link . classList . remove ( ' text-gray-900' ) ;
61- link . classList . add ( ' text-indigo-500' ) ;
62- parent . classList . remove ( ' bg-indigo-500' ) ;
61+ link . classList . remove ( " text-gray-900" ) ;
62+ link . classList . add ( " text-indigo-500" ) ;
63+ parent . classList . remove ( " bg-indigo-500" ) ;
6364
6465 if ( hash === link . hash ) {
65- link . classList . remove ( ' text-indigo-500' ) ;
66- link . classList . add ( ' text-white' ) ;
66+ link . classList . remove ( " text-indigo-500" ) ;
67+ link . classList . add ( " text-white" ) ;
6768
68- parent . classList . add ( ' bg-indigo-500' ) ;
69+ parent . classList . add ( " bg-indigo-500" ) ;
6970 }
7071 } ) ;
7172}
7273
7374function stickyHeight ( ) {
74- const article = document . querySelector ( ' #main-article' ) ;
75- const elements = document . querySelectorAll ( ' .sticky' ) ;
75+ const article = document . querySelector ( " #main-article" ) ;
76+ const elements = document . querySelectorAll ( " .sticky" ) ;
7677
77- elements . forEach ( element => {
78+ elements . forEach ( ( element ) => {
7879 if ( element . offsetHeight <= window . innerHeight || article . clientHeight <= element . offsetHeight ) {
7980 return ;
8081 }
8182
82- const div = document . createElement ( ' div' ) ;
83- div . classList . add ( ' h-screen' , ' overflow-y-auto' ) ;
83+ const div = document . createElement ( " div" ) ;
84+ div . classList . add ( " h-screen" , " overflow-y-auto" ) ;
8485 div . innerHTML = element . innerHTML ;
8586
8687 element . innerHTML = div . outerHTML ;
0 commit comments