From 97e447eb4cd004d4a1ca7ffa63d9d2486e537ba8 Mon Sep 17 00:00:00 2001 From: Philipp Stadler <philipp.pospischil@univie.ac.at> Date: Thu, 6 Mar 2025 13:22:52 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20use=20=E2=BA=A9as=20correct=20radical=20?= =?UTF-8?q?for=20both=20=E7=8F=BE=20and=20=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/gen-hanzi-data/radical-overrides.ts | 6 ++++++ build/gen-hanzi-data/radical.ts | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 build/gen-hanzi-data/radical-overrides.ts diff --git a/build/gen-hanzi-data/radical-overrides.ts b/build/gen-hanzi-data/radical-overrides.ts new file mode 100644 index 0000000..7440d01 --- /dev/null +++ b/build/gen-hanzi-data/radical-overrides.ts @@ -0,0 +1,6 @@ +/** + * Maps characters to a radical where data from cnchar is incorrect. + */ +export const radicalOverrides = new Map<string, string>() +radicalOverrides.set("现", "⺩") // 王 +radicalOverrides.set("現", "⺩") // 王 diff --git a/build/gen-hanzi-data/radical.ts b/build/gen-hanzi-data/radical.ts index baf1acc..85260a9 100644 --- a/build/gen-hanzi-data/radical.ts +++ b/build/gen-hanzi-data/radical.ts @@ -4,6 +4,7 @@ import cncharRadical from 'cnchar-radical' import cncharTrad from 'cnchar-trad' import { isKangxiOrCjkRadical } from './blocks/index' import { queryPatchedHanziWriterData } from './patched-hanzi-writer' +import { radicalOverrides } from './radical-overrides' cnchar.use(cncharOrder, cncharRadical, cncharTrad) @@ -107,7 +108,11 @@ export function isInlineRadical (char: string): boolean { export async function queryRadicalInfo (char: string): Promise<RadicalInfo> { let radical: string - if (isInlineRadical(char)) { + + const override = radicalOverrides.get(char) + if (override !== undefined) { + radical = override + } else if (isInlineRadical(char)) { // already a radical, the radical is the same char radical = char } else { -- GitLab