fix(share): heading and navigation not supporting CJK (closes #6430)

This commit is contained in:
Elian Doran
2025-10-23 14:06:13 +03:00
parent e953f0cc1a
commit 94d62f810a
4 changed files with 11 additions and 4 deletions

View File

@@ -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,

View File

@@ -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;