fix: toc for cyrillic and other non-latin alphabets (closes #396)
This commit is contained in:
parent
300aff4125
commit
709ad94180
@ -64,7 +64,7 @@ async function navigate(url: URL, isBack: boolean = false) {
|
|||||||
// scroll into place and add history
|
// scroll into place and add history
|
||||||
if (!isBack) {
|
if (!isBack) {
|
||||||
if (url.hash) {
|
if (url.hash) {
|
||||||
const el = document.getElementById(url.hash.substring(1))
|
const el = document.getElementById(decodeURIComponent(url.hash.substring(1)))
|
||||||
el?.scrollIntoView()
|
el?.scrollIntoView()
|
||||||
} else {
|
} else {
|
||||||
window.scrollTo({ top: 0 })
|
window.scrollTo({ top: 0 })
|
||||||
|
@ -2,7 +2,7 @@ import { QuartzTransformerPlugin } from "../types"
|
|||||||
import { Root } from "mdast"
|
import { Root } from "mdast"
|
||||||
import { visit } from "unist-util-visit"
|
import { visit } from "unist-util-visit"
|
||||||
import { toString } from "mdast-util-to-string"
|
import { toString } from "mdast-util-to-string"
|
||||||
import { slug as slugAnchor } from "github-slugger"
|
import Slugger from "github-slugger"
|
||||||
|
|
||||||
export interface Options {
|
export interface Options {
|
||||||
maxDepth: 1 | 2 | 3 | 4 | 5 | 6
|
maxDepth: 1 | 2 | 3 | 4 | 5 | 6
|
||||||
@ -34,6 +34,7 @@ export const TableOfContents: QuartzTransformerPlugin<Partial<Options> | undefin
|
|||||||
return async (tree: Root, file) => {
|
return async (tree: Root, file) => {
|
||||||
const display = file.data.frontmatter?.enableToc ?? opts.showByDefault
|
const display = file.data.frontmatter?.enableToc ?? opts.showByDefault
|
||||||
if (display) {
|
if (display) {
|
||||||
|
const slugAnchor = new Slugger()
|
||||||
const toc: TocEntry[] = []
|
const toc: TocEntry[] = []
|
||||||
let highestDepth: number = opts.maxDepth
|
let highestDepth: number = opts.maxDepth
|
||||||
visit(tree, "heading", (node) => {
|
visit(tree, "heading", (node) => {
|
||||||
@ -43,7 +44,7 @@ export const TableOfContents: QuartzTransformerPlugin<Partial<Options> | undefin
|
|||||||
toc.push({
|
toc.push({
|
||||||
depth: node.depth,
|
depth: node.depth,
|
||||||
text,
|
text,
|
||||||
slug: slugAnchor(text),
|
slug: slugAnchor.slug(text),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user