feat: redesign TOC
This commit is contained in:
parent
b5fddf2096
commit
a336f34ea4
35
pnpm-lock.yaml
generated
35
pnpm-lock.yaml
generated
@ -91,7 +91,7 @@ importers:
|
|||||||
specifier: ^2.13.0
|
specifier: ^2.13.0
|
||||||
version: 2.13.0
|
version: 2.13.0
|
||||||
sharp:
|
sharp:
|
||||||
specifier: ^0.33.5
|
specifier: ^0.33.0
|
||||||
version: 0.33.5
|
version: 0.33.5
|
||||||
svelte:
|
svelte:
|
||||||
specifier: ^4.2.19
|
specifier: ^4.2.19
|
||||||
@ -889,28 +889,24 @@ packages:
|
|||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
'@biomejs/cli-linux-arm64@1.8.3':
|
'@biomejs/cli-linux-arm64@1.8.3':
|
||||||
resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==}
|
resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@biomejs/cli-linux-x64-musl@1.8.3':
|
'@biomejs/cli-linux-x64-musl@1.8.3':
|
||||||
resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==}
|
resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
'@biomejs/cli-linux-x64@1.8.3':
|
'@biomejs/cli-linux-x64@1.8.3':
|
||||||
resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==}
|
resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==}
|
||||||
engines: {node: '>=14.21.3'}
|
engines: {node: '>=14.21.3'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@biomejs/cli-win32-arm64@1.8.3':
|
'@biomejs/cli-win32-arm64@1.8.3':
|
||||||
resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==}
|
resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==}
|
||||||
@ -1144,79 +1140,67 @@ packages:
|
|||||||
resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
|
resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@img/sharp-libvips-linux-arm@1.0.5':
|
'@img/sharp-libvips-linux-arm@1.0.5':
|
||||||
resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
|
resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@img/sharp-libvips-linux-s390x@1.0.4':
|
'@img/sharp-libvips-linux-s390x@1.0.4':
|
||||||
resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
|
resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@img/sharp-libvips-linux-x64@1.0.4':
|
'@img/sharp-libvips-linux-x64@1.0.4':
|
||||||
resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
|
resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@img/sharp-libvips-linuxmusl-arm64@1.0.4':
|
'@img/sharp-libvips-linuxmusl-arm64@1.0.4':
|
||||||
resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
|
resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
'@img/sharp-libvips-linuxmusl-x64@1.0.4':
|
'@img/sharp-libvips-linuxmusl-x64@1.0.4':
|
||||||
resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
|
resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
'@img/sharp-linux-arm64@0.33.5':
|
'@img/sharp-linux-arm64@0.33.5':
|
||||||
resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
|
resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
|
||||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@img/sharp-linux-arm@0.33.5':
|
'@img/sharp-linux-arm@0.33.5':
|
||||||
resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
|
resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
|
||||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@img/sharp-linux-s390x@0.33.5':
|
'@img/sharp-linux-s390x@0.33.5':
|
||||||
resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
|
resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
|
||||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@img/sharp-linux-x64@0.33.5':
|
'@img/sharp-linux-x64@0.33.5':
|
||||||
resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
|
resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
|
||||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@img/sharp-linuxmusl-arm64@0.33.5':
|
'@img/sharp-linuxmusl-arm64@0.33.5':
|
||||||
resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
|
resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
|
||||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
'@img/sharp-linuxmusl-x64@0.33.5':
|
'@img/sharp-linuxmusl-x64@0.33.5':
|
||||||
resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
|
resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
|
||||||
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
'@img/sharp-wasm32@0.33.5':
|
'@img/sharp-wasm32@0.33.5':
|
||||||
resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
|
resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
|
||||||
@ -1393,55 +1377,46 @@ packages:
|
|||||||
resolution: {integrity: sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ==}
|
resolution: {integrity: sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm-musleabihf@4.21.1':
|
'@rollup/rollup-linux-arm-musleabihf@4.21.1':
|
||||||
resolution: {integrity: sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew==}
|
resolution: {integrity: sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew==}
|
||||||
cpu: [arm]
|
cpu: [arm]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-gnu@4.21.1':
|
'@rollup/rollup-linux-arm64-gnu@4.21.1':
|
||||||
resolution: {integrity: sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow==}
|
resolution: {integrity: sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@rollup/rollup-linux-arm64-musl@4.21.1':
|
'@rollup/rollup-linux-arm64-musl@4.21.1':
|
||||||
resolution: {integrity: sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA==}
|
resolution: {integrity: sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
'@rollup/rollup-linux-powerpc64le-gnu@4.21.1':
|
'@rollup/rollup-linux-powerpc64le-gnu@4.21.1':
|
||||||
resolution: {integrity: sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ==}
|
resolution: {integrity: sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ==}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@rollup/rollup-linux-riscv64-gnu@4.21.1':
|
'@rollup/rollup-linux-riscv64-gnu@4.21.1':
|
||||||
resolution: {integrity: sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg==}
|
resolution: {integrity: sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg==}
|
||||||
cpu: [riscv64]
|
cpu: [riscv64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@rollup/rollup-linux-s390x-gnu@4.21.1':
|
'@rollup/rollup-linux-s390x-gnu@4.21.1':
|
||||||
resolution: {integrity: sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA==}
|
resolution: {integrity: sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA==}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-gnu@4.21.1':
|
'@rollup/rollup-linux-x64-gnu@4.21.1':
|
||||||
resolution: {integrity: sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w==}
|
resolution: {integrity: sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
'@rollup/rollup-linux-x64-musl@4.21.1':
|
'@rollup/rollup-linux-x64-musl@4.21.1':
|
||||||
resolution: {integrity: sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA==}
|
resolution: {integrity: sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
'@rollup/rollup-win32-arm64-msvc@4.21.1':
|
'@rollup/rollup-win32-arm64-msvc@4.21.1':
|
||||||
resolution: {integrity: sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g==}
|
resolution: {integrity: sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g==}
|
||||||
@ -3008,56 +2983,48 @@ packages:
|
|||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
lightningcss-linux-arm64-gnu@1.26.0:
|
lightningcss-linux-arm64-gnu@1.26.0:
|
||||||
resolution: {integrity: sha512-iJmZM7fUyVjH+POtdiCtExG+67TtPUTer7K/5A8DIfmPfrmeGvzfRyBltGhQz13Wi15K1lf2cPYoRaRh6vcwNA==}
|
resolution: {integrity: sha512-iJmZM7fUyVjH+POtdiCtExG+67TtPUTer7K/5A8DIfmPfrmeGvzfRyBltGhQz13Wi15K1lf2cPYoRaRh6vcwNA==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
lightningcss-linux-arm64-musl@1.25.1:
|
lightningcss-linux-arm64-musl@1.25.1:
|
||||||
resolution: {integrity: sha512-IhxVFJoTW8wq6yLvxdPvyHv4NjzcpN1B7gjxrY3uaykQNXPHNIpChLB52+wfH+yS58zm1PL4LemUp8u9Cfp6Bw==}
|
resolution: {integrity: sha512-IhxVFJoTW8wq6yLvxdPvyHv4NjzcpN1B7gjxrY3uaykQNXPHNIpChLB52+wfH+yS58zm1PL4LemUp8u9Cfp6Bw==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
lightningcss-linux-arm64-musl@1.26.0:
|
lightningcss-linux-arm64-musl@1.26.0:
|
||||||
resolution: {integrity: sha512-XxoEL++tTkyuvu+wq/QS8bwyTXZv2y5XYCMcWL45b8XwkiS8eEEEej9BkMGSRwxa5J4K+LDeIhLrS23CpQyfig==}
|
resolution: {integrity: sha512-XxoEL++tTkyuvu+wq/QS8bwyTXZv2y5XYCMcWL45b8XwkiS8eEEEej9BkMGSRwxa5J4K+LDeIhLrS23CpQyfig==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
lightningcss-linux-x64-gnu@1.25.1:
|
lightningcss-linux-x64-gnu@1.25.1:
|
||||||
resolution: {integrity: sha512-RXIaru79KrREPEd6WLXfKfIp4QzoppZvD3x7vuTKkDA64PwTzKJ2jaC43RZHRt8BmyIkRRlmywNhTRMbmkPYpA==}
|
resolution: {integrity: sha512-RXIaru79KrREPEd6WLXfKfIp4QzoppZvD3x7vuTKkDA64PwTzKJ2jaC43RZHRt8BmyIkRRlmywNhTRMbmkPYpA==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
lightningcss-linux-x64-gnu@1.26.0:
|
lightningcss-linux-x64-gnu@1.26.0:
|
||||||
resolution: {integrity: sha512-1dkTfZQAYLj8MUSkd6L/+TWTG8V6Kfrzfa0T1fSlXCXQHrt1HC1/UepXHtKHDt/9yFwyoeayivxXAsApVxn6zA==}
|
resolution: {integrity: sha512-1dkTfZQAYLj8MUSkd6L/+TWTG8V6Kfrzfa0T1fSlXCXQHrt1HC1/UepXHtKHDt/9yFwyoeayivxXAsApVxn6zA==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [glibc]
|
|
||||||
|
|
||||||
lightningcss-linux-x64-musl@1.25.1:
|
lightningcss-linux-x64-musl@1.25.1:
|
||||||
resolution: {integrity: sha512-TdcNqFsAENEEFr8fJWg0Y4fZ/nwuqTRsIr7W7t2wmDUlA8eSXVepeeONYcb+gtTj1RaXn/WgNLB45SFkz+XBZA==}
|
resolution: {integrity: sha512-TdcNqFsAENEEFr8fJWg0Y4fZ/nwuqTRsIr7W7t2wmDUlA8eSXVepeeONYcb+gtTj1RaXn/WgNLB45SFkz+XBZA==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
lightningcss-linux-x64-musl@1.26.0:
|
lightningcss-linux-x64-musl@1.26.0:
|
||||||
resolution: {integrity: sha512-yX3Rk9m00JGCUzuUhFEojY+jf/6zHs3XU8S8Vk+FRbnr4St7cjyMXdNjuA2LjiT8e7j8xHRCH8hyZ4H/btRE4A==}
|
resolution: {integrity: sha512-yX3Rk9m00JGCUzuUhFEojY+jf/6zHs3XU8S8Vk+FRbnr4St7cjyMXdNjuA2LjiT8e7j8xHRCH8hyZ4H/btRE4A==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
libc: [musl]
|
|
||||||
|
|
||||||
lightningcss-win32-arm64-msvc@1.26.0:
|
lightningcss-win32-arm64-msvc@1.26.0:
|
||||||
resolution: {integrity: sha512-X/597/cFnCogy9VItj/+7Tgu5VLbAtDF7KZDPdSw0MaL6FL940th1y3HiOzFIlziVvAtbo0RB3NAae1Oofr+Tw==}
|
resolution: {integrity: sha512-X/597/cFnCogy9VItj/+7Tgu5VLbAtDF7KZDPdSw0MaL6FL940th1y3HiOzFIlziVvAtbo0RB3NAae1Oofr+Tw==}
|
||||||
|
@ -120,6 +120,10 @@ color_set({
|
|||||||
--admonitions-color-important: oklch(0.7 0.14 310) oklch(0.75 0.14 310)
|
--admonitions-color-important: oklch(0.7 0.14 310) oklch(0.75 0.14 310)
|
||||||
--admonitions-color-warning: oklch(0.7 0.14 60) oklch(0.75 0.14 60)
|
--admonitions-color-warning: oklch(0.7 0.14 60) oklch(0.75 0.14 60)
|
||||||
--admonitions-color-caution: oklch(0.6 0.2 25) oklch(0.65 0.2 25)
|
--admonitions-color-caution: oklch(0.6 0.2 25) oklch(0.65 0.2 25)
|
||||||
|
|
||||||
|
--toc-badge-bg: oklch(0.9 0.045 var(--hue)) var(--btn-regular-bg)
|
||||||
|
--toc-btn-hover: oklch(0.92 0.015 var(--hue)) oklch(0.22 0.02 var(--hue))
|
||||||
|
--toc-btn-active: oklch(0.90 0.015 var(--hue)) oklch(0.25 0.02 var(--hue))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -242,6 +246,23 @@ color_set({
|
|||||||
hover:decoration-[var(--link-hover)] active:decoration-[var(--link-active)] underline-offset-[0.25rem]
|
hover:decoration-[var(--link-hover)] active:decoration-[var(--link-active)] underline-offset-[0.25rem]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.toc-hide,
|
||||||
|
.toc-not-ready {
|
||||||
|
@apply opacity-0 pointer-events-none
|
||||||
|
}
|
||||||
|
|
||||||
|
#toc-inner-wrapper {
|
||||||
|
mask-image: linear-gradient(to bottom, transparent 0%, black 2rem, black calc(100% - 2rem), transparent 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.hide-scrollbar {
|
||||||
|
scrollbar-width: none;
|
||||||
|
-ms-overflow-style: none;
|
||||||
|
}
|
||||||
|
.hide-scrollbar::-webkit-scrollbar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.text-90 {
|
.text-90 {
|
||||||
@apply text-black/90 dark:text-white/90
|
@apply text-black/90 dark:text-white/90
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ import { Icon } from 'astro-icon/components'
|
|||||||
font-weight: bold
|
font-weight: bold
|
||||||
border: none
|
border: none
|
||||||
position: fixed
|
position: fixed
|
||||||
bottom: 15rem
|
bottom: 10rem
|
||||||
opacity: 1
|
opacity: 1
|
||||||
cursor: pointer
|
cursor: pointer
|
||||||
transform: translateX(5rem)
|
transform: translateX(5rem)
|
||||||
|
@ -18,13 +18,8 @@ const headings = Astro.props.headings
|
|||||||
<div class="flex flex-col w-full gap-4 mb-4">
|
<div class="flex flex-col w-full gap-4 mb-4">
|
||||||
<Profile></Profile>
|
<Profile></Profile>
|
||||||
</div>
|
</div>
|
||||||
<div id="sidebar-sticky" class="sticky top-4">
|
<div id="sidebar-sticky" class="transition-all duration-700 flex flex-col w-full gap-4 top-4 sticky top-4">
|
||||||
<div id="toc" class="transition-all duration-700 flex flex-col w-full gap-4">
|
<Categories class="onload-animation" style="animation-delay: 150ms"></Categories>
|
||||||
{headings && headings.length > 0 && <TOC class="mb-4 onload-animation" style="animation-delay: 150ms" headings={headings}/>}
|
<Tag class="onload-animation" style="animation-delay: 200ms"></Tag>
|
||||||
</div>
|
|
||||||
<div class="transition-all duration-700 flex flex-col w-full gap-4">
|
|
||||||
<Categories class="onload-animation" style="animation-delay: 150ms"></Categories>
|
|
||||||
<Tag class="onload-animation" style="animation-delay: 200ms"></Tag>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,30 +1,30 @@
|
|||||||
---
|
---
|
||||||
import WidgetLayout from './WidgetLayout.astro'
|
|
||||||
import type { MarkdownHeading } from 'astro';
|
import type { MarkdownHeading } from 'astro';
|
||||||
|
|
||||||
import { i18n } from '../../i18n/translation'
|
|
||||||
import I18nKey from '../../i18n/i18nKey'
|
|
||||||
import ButtonLink from '../control/ButtonLink.astro'
|
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
class?: string
|
class?: string
|
||||||
style?: string
|
|
||||||
headings: MarkdownHeading[]
|
headings: MarkdownHeading[]
|
||||||
}
|
}
|
||||||
|
|
||||||
const { headings } = Astro.props;
|
const { headings = [] } = Astro.props;
|
||||||
|
|
||||||
|
// generate random headings, for testing
|
||||||
|
/*
|
||||||
|
for (let i = 0; i < 50; i++) {
|
||||||
|
headings.push({
|
||||||
|
text: `Heading ${i + 1}`,
|
||||||
|
depth: Math.floor(Math.random() * 3) + 1,
|
||||||
|
slug: `heading-${i + 1}`
|
||||||
|
})
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
let minDepth = 10;
|
||||||
|
for (const heading of headings) {
|
||||||
|
minDepth = Math.min(minDepth, heading.depth);
|
||||||
|
}
|
||||||
|
|
||||||
const className = Astro.props.class
|
const className = Astro.props.class
|
||||||
const style = Astro.props.style
|
|
||||||
|
|
||||||
const COLLAPSED_HEIGHT = '7.5rem'
|
|
||||||
const COLLAPSE_THRESHOLD = 5
|
|
||||||
|
|
||||||
const isCollapsed = headings.length >= COLLAPSE_THRESHOLD
|
|
||||||
|
|
||||||
const getMarginStyleFromHeading = (heading: MarkdownHeading) => {
|
|
||||||
return `margin-left: ${(heading.depth - 1) / 2}rem`;
|
|
||||||
}
|
|
||||||
|
|
||||||
const removeTailingHash = (text: string) => {
|
const removeTailingHash = (text: string) => {
|
||||||
let lastIndexOfHash = text.lastIndexOf('#');
|
let lastIndexOfHash = text.lastIndexOf('#');
|
||||||
@ -35,14 +35,26 @@ const removeTailingHash = (text: string) => {
|
|||||||
return text.substring(0, lastIndexOfHash);
|
return text.substring(0, lastIndexOfHash);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let heading1Count = 1;
|
||||||
---
|
---
|
||||||
|
<div class:list={[className]}>
|
||||||
<WidgetLayout name={i18n(I18nKey.toc)} id="toc" isCollapsed={isCollapsed} collapsedHeight={COLLAPSED_HEIGHT}
|
{headings.filter((heading) => heading.depth <= minDepth + 1).map((heading) =>
|
||||||
class={className} style={style}
|
<a href={`#${heading.slug}`} class="px-2 transition flex w-full gap-2 h-9 rounded-xl items-center
|
||||||
|
hover:bg-[var(--toc-btn-hover)] active:bg-[var(--toc-btn-active)]
|
||||||
|
">
|
||||||
|
<div class:list={["w-5 h-5 rounded-lg text-xs flex items-center justify-center font-bold",
|
||||||
|
{
|
||||||
|
"bg-[var(--toc-badge-bg)] text-[var(--btn-content)]": heading.depth == minDepth,
|
||||||
|
}
|
||||||
|
]}
|
||||||
>
|
>
|
||||||
{headings.map((heading) =>
|
{heading.depth == minDepth && heading1Count++}
|
||||||
<div style={getMarginStyleFromHeading(heading)}>
|
{heading.depth == minDepth + 1 && <div class="w-1.5 h-1.5 rounded-sm bg-black/5 dark:bg-white/5"></div>}
|
||||||
<ButtonLink url={`#${heading.slug}`}>{removeTailingHash(heading.text)}</ButtonLink>
|
</div>
|
||||||
</div>
|
<div class:list={["text-sm", {
|
||||||
|
"text-50": heading.depth == minDepth,
|
||||||
|
"text-30": heading.depth == minDepth + 1,
|
||||||
|
}]}>{removeTailingHash(heading.text)}</div>
|
||||||
|
</a>
|
||||||
)}
|
)}
|
||||||
</WidgetLayout>
|
</div>
|
||||||
|
@ -8,7 +8,6 @@ enum I18nKey {
|
|||||||
categories = 'categories',
|
categories = 'categories',
|
||||||
recentPosts = 'recentPosts',
|
recentPosts = 'recentPosts',
|
||||||
|
|
||||||
toc = 'toc',
|
|
||||||
comments = 'comments',
|
comments = 'comments',
|
||||||
|
|
||||||
untitled = 'untitled',
|
untitled = 'untitled',
|
||||||
|
@ -11,7 +11,6 @@ export const en: Translation = {
|
|||||||
[Key.categories]: 'Categories',
|
[Key.categories]: 'Categories',
|
||||||
[Key.recentPosts]: 'Recent Posts',
|
[Key.recentPosts]: 'Recent Posts',
|
||||||
|
|
||||||
[Key.toc]: 'TOC',
|
|
||||||
[Key.comments]: 'Comments',
|
[Key.comments]: 'Comments',
|
||||||
|
|
||||||
[Key.untitled]: 'Untitled',
|
[Key.untitled]: 'Untitled',
|
||||||
|
@ -11,7 +11,6 @@ export const es: Translation = {
|
|||||||
[Key.categories]: 'Categorías',
|
[Key.categories]: 'Categorías',
|
||||||
[Key.recentPosts]: 'Publicaciones recientes',
|
[Key.recentPosts]: 'Publicaciones recientes',
|
||||||
|
|
||||||
[Key.toc]: 'Índice',
|
|
||||||
[Key.comments]: 'Comentarios',
|
[Key.comments]: 'Comentarios',
|
||||||
|
|
||||||
[Key.untitled]: 'Sin título',
|
[Key.untitled]: 'Sin título',
|
||||||
|
@ -11,7 +11,6 @@ export const ja: Translation = {
|
|||||||
[Key.categories]: 'カテゴリ',
|
[Key.categories]: 'カテゴリ',
|
||||||
[Key.recentPosts]: '最近の投稿',
|
[Key.recentPosts]: '最近の投稿',
|
||||||
|
|
||||||
[Key.toc]: '目次',
|
|
||||||
[Key.comments]: 'コメント',
|
[Key.comments]: 'コメント',
|
||||||
|
|
||||||
[Key.untitled]: 'タイトルなし',
|
[Key.untitled]: 'タイトルなし',
|
||||||
|
@ -11,7 +11,6 @@ export const ko: Translation = {
|
|||||||
[Key.categories]: '카테고리',
|
[Key.categories]: '카테고리',
|
||||||
[Key.recentPosts]: '최근 게시물',
|
[Key.recentPosts]: '최근 게시물',
|
||||||
|
|
||||||
[Key.toc]: '목차',
|
|
||||||
[Key.comments]: '댓글',
|
[Key.comments]: '댓글',
|
||||||
|
|
||||||
[Key.untitled]: '제목 없음',
|
[Key.untitled]: '제목 없음',
|
||||||
|
@ -11,7 +11,6 @@ export const zh_CN: Translation = {
|
|||||||
[Key.categories]: '分类',
|
[Key.categories]: '分类',
|
||||||
[Key.recentPosts]: '最新文章',
|
[Key.recentPosts]: '最新文章',
|
||||||
|
|
||||||
[Key.toc]: '目录',
|
|
||||||
[Key.comments]: '评论',
|
[Key.comments]: '评论',
|
||||||
|
|
||||||
[Key.untitled]: '无标题',
|
[Key.untitled]: '无标题',
|
||||||
|
@ -11,7 +11,6 @@ export const zh_TW: Translation = {
|
|||||||
[Key.categories]: '分類',
|
[Key.categories]: '分類',
|
||||||
[Key.recentPosts]: '最新文章',
|
[Key.recentPosts]: '最新文章',
|
||||||
|
|
||||||
[Key.toc]: '目錄',
|
|
||||||
[Key.comments]: '評論',
|
[Key.comments]: '評論',
|
||||||
|
|
||||||
[Key.untitled]: '無標題',
|
[Key.untitled]: '無標題',
|
||||||
|
@ -342,8 +342,8 @@ const setup = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
*/
|
*/
|
||||||
// Remove the delay for the first time page load
|
|
||||||
window.swup.hooks.on('link:click', () => {
|
window.swup.hooks.on('link:click', () => {
|
||||||
|
// Remove the delay for the first time page load
|
||||||
document.documentElement.style.setProperty('--content-delay', '0ms')
|
document.documentElement.style.setProperty('--content-delay', '0ms')
|
||||||
|
|
||||||
// prevent elements from overlapping the navbar
|
// prevent elements from overlapping the navbar
|
||||||
@ -374,6 +374,12 @@ const setup = () => {
|
|||||||
if (heightExtend) {
|
if (heightExtend) {
|
||||||
heightExtend.classList.remove('hidden')
|
heightExtend.classList.remove('hidden')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Hide the TOC while scrolling back to top
|
||||||
|
let toc = document.getElementById('toc-wrapper');
|
||||||
|
if (toc) {
|
||||||
|
toc.classList.add('toc-not-ready')
|
||||||
|
}
|
||||||
});
|
});
|
||||||
window.swup.hooks.on('page:view', () => {
|
window.swup.hooks.on('page:view', () => {
|
||||||
// hide the temp high element when the transition is done
|
// hide the temp high element when the transition is done
|
||||||
@ -384,9 +390,16 @@ const setup = () => {
|
|||||||
});
|
});
|
||||||
window.swup.hooks.on('visit:end', (visit: {to: {url: string}}) => {
|
window.swup.hooks.on('visit:end', (visit: {to: {url: string}}) => {
|
||||||
// execute 1s later
|
// execute 1s later
|
||||||
const heightExtend = document.getElementById('page-height-extend')
|
setTimeout(() => {
|
||||||
if (heightExtend) {
|
const heightExtend = document.getElementById('page-height-extend')
|
||||||
heightExtend.classList.add('hidden')
|
if (heightExtend) {
|
||||||
|
heightExtend.classList.add('hidden')
|
||||||
|
}
|
||||||
|
}, 200)
|
||||||
|
|
||||||
|
const toc = document.getElementById('toc-wrapper');
|
||||||
|
if (toc) {
|
||||||
|
toc.classList.remove('toc-not-ready')
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -397,6 +410,7 @@ if (window?.swup?.hooks) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let backToTopBtn = document.getElementById('back-to-top-btn');
|
let backToTopBtn = document.getElementById('back-to-top-btn');
|
||||||
|
let toc = document.getElementById('toc-wrapper');
|
||||||
let navbar = document.getElementById('navbar-wrapper')
|
let navbar = document.getElementById('navbar-wrapper')
|
||||||
function scrollFunction() {
|
function scrollFunction() {
|
||||||
if (backToTopBtn) {
|
if (backToTopBtn) {
|
||||||
@ -407,6 +421,14 @@ function scrollFunction() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (toc) {
|
||||||
|
if (document.body.scrollTop > 600 || document.documentElement.scrollTop > 600) {
|
||||||
|
toc.classList.remove('toc-hide')
|
||||||
|
} else {
|
||||||
|
toc.classList.add('toc-hide')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!bannerEnabled) return
|
if (!bannerEnabled) return
|
||||||
if (navbar) {
|
if (navbar) {
|
||||||
let threshold = window.innerHeight * 0.30 - 72 - 16
|
let threshold = window.innerHeight * 0.30 - 72 - 16
|
||||||
|
@ -7,6 +7,7 @@ import Layout from './Layout.astro'
|
|||||||
import { Icon } from 'astro-icon/components'
|
import { Icon } from 'astro-icon/components'
|
||||||
import { siteConfig } from '../config'
|
import { siteConfig } from '../config'
|
||||||
import type { MarkdownHeading } from 'astro'
|
import type { MarkdownHeading } from 'astro'
|
||||||
|
import TOC from "../components/widget/TOC.astro";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
title?: string
|
title?: string
|
||||||
@ -17,7 +18,7 @@ interface Props {
|
|||||||
headings? : MarkdownHeading[]
|
headings? : MarkdownHeading[]
|
||||||
}
|
}
|
||||||
|
|
||||||
const { title, banner, description, lang, setOGTypeArticle, headings } = Astro.props
|
const { title, banner, description, lang, setOGTypeArticle, headings = [] } = Astro.props
|
||||||
const hasBannerCredit =
|
const hasBannerCredit =
|
||||||
siteConfig.banner.enable && siteConfig.banner.credit.enable
|
siteConfig.banner.enable && siteConfig.banner.credit.enable
|
||||||
const hasBannerLink = !!siteConfig.banner.credit.url
|
const hasBannerLink = !!siteConfig.banner.credit.url
|
||||||
@ -67,6 +68,17 @@ const hasBannerLink = !!siteConfig.banner.credit.url
|
|||||||
<Footer></Footer>
|
<Footer></Footer>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- TOC component -->
|
||||||
|
<div id="toc-wrapper" class="transition absolute top-0 -right-[30rem] w-[30rem] flex items-center toc-hide">
|
||||||
|
<div id="toc-inner-wrapper" class="fixed top-14 w-96 h-[calc(100vh_-_20rem)] overflow-y-scroll overflow-x-hidden hide-scrollbar">
|
||||||
|
<div id="toc" class="w-full h-full transition-swup-fade">
|
||||||
|
<div class="h-8 w-full"></div>
|
||||||
|
<TOC headings={headings}></TOC>
|
||||||
|
<div class="h-8 w-full"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<BackToTop></BackToTop>
|
<BackToTop></BackToTop>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user