fix: toc for cyrillic and other non-latin alphabets (closes #396)
This commit is contained in:
		
							parent
							
								
									99dbe525d9
								
							
						
					
					
						commit
						36548d5986
					
				
					 2 changed files with 4 additions and 3 deletions
				
			
		| 
						 | 
					@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue