mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-30 19:19:03 +01:00 
			
		
		
		
	fix(share): heading and navigation not supporting CJK (closes #6430)
This commit is contained in:
		
							parent
							
								
									e953f0cc1a
								
							
						
					
					
						commit
						94d62f810a
					
				| @ -497,6 +497,14 @@ export function formatSize(size: number | null | undefined) { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| export function slugify(text: string) { | ||||
|     return text | ||||
|         .normalize("NFKD") // handles accents like é → e
 | ||||
|         .toLowerCase() | ||||
|         .replace(/[^\p{Letter}\p{Number}]+/gu, "-") // keep Unicode letters/numbers | ||||
|         .replace(/(^-|-$)+/g, ""); // trim leading/trailing dashes
 | ||||
| } | ||||
| 
 | ||||
| export default { | ||||
|     compareVersions, | ||||
|     crash, | ||||
|  | ||||
| @ -14,7 +14,7 @@ import log from "../services/log.js"; | ||||
| import type SNote from "./shaca/entities/snote.js"; | ||||
| import type SBranch from "./shaca/entities/sbranch.js"; | ||||
| import type SAttachment from "./shaca/entities/sattachment.js"; | ||||
| import utils, { isDev, safeExtractMessageAndStackFromError } from "../services/utils.js"; | ||||
| import utils, { isDev, safeExtractMessageAndStackFromError, slugify } from "../services/utils.js"; | ||||
| import options from "../services/options.js"; | ||||
| import { t } from "i18next"; | ||||
| import ejs from "ejs"; | ||||
| @ -175,7 +175,8 @@ function register(router: Router) { | ||||
|             appPath: isDev ? appPath : `../${appPath}`, | ||||
|             showLoginInShareTheme, | ||||
|             t, | ||||
|             isDev | ||||
|             isDev, | ||||
|             slugify | ||||
|         }; | ||||
|         let useDefaultView = true; | ||||
| 
 | ||||
|  | ||||
| @ -90,7 +90,6 @@ const currentTheme = note.getLabel("shareTheme") === "light" ? "light" : "dark"; | ||||
| const themeClass = currentTheme === "light" ? " theme-light" : " theme-dark"; | ||||
| const headingRe = /(<h[1-6]>)(.+?)(<\/h[1-6]>)/g; | ||||
| const headingMatches = [...content.matchAll(headingRe)]; | ||||
| const slugify = (text) => text.toLowerCase().replace(/[^\w]/g, "-"); | ||||
| content = content.replaceAll(headingRe, (...match) => { | ||||
|     match[0] = match[0].replace(match[3], `<a id="${slugify(match[2])}" class="toc-anchor" name="${slugify(match[2])}" href="#${slugify(match[2])}">#</a>${match[3]}`); | ||||
|     return match[0]; | ||||
|  | ||||
| @ -1,5 +1,4 @@ | ||||
| <% | ||||
| const slugify = (text) => text.toLowerCase().replace(/[^\w]/g, "-"); | ||||
| const slug = slugify(entry.name); | ||||
| %> | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Elian Doran
						Elian Doran