diff --git a/build/gen-hanzi-data/radical-overrides.ts b/build/gen-hanzi-data/radical-overrides.ts new file mode 100644 index 0000000000000000000000000000000000000000..7440d0121396b3c8f5549da35543b217b93300bb --- /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 baf1acc81e8a59fb04ddd7e0c4664974791115b6..85260a94eb08f770925b6c6ce7afa3870e154bed 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 {