@kensio/pinyinjs 1.10.3 → 1.10.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/data/core.entries +20 -16
- package/data/core.freq +0 -0
- package/data/core.keys +4 -0
- package/data/full.counts +0 -0
- package/data/full.entries +33 -22
- package/data/full.freq +0 -0
- package/data/full.keys +11 -0
- package/data/manifest.json +12 -12
- package/data/standard.entries +29 -28
- package/data/standard.freq +0 -0
- package/data/standard.keys +13 -12
- package/dist/decode/particle-rule.d.ts +8 -10
- package/dist/decode/particle-rule.d.ts.map +1 -1
- package/dist/decode/particle-rule.js +67 -1
- package/dist/decode/particle-rule.js.map +1 -1
- package/dist/decode/reading-rules.d.ts +1 -0
- package/dist/decode/reading-rules.d.ts.map +1 -1
- package/dist/decode/reading-rules.js +3 -0
- package/dist/decode/reading-rules.js.map +1 -1
- package/dist/decode/wenshu-rule.d.ts +17 -0
- package/dist/decode/wenshu-rule.d.ts.map +1 -0
- package/dist/decode/wenshu-rule.js +44 -0
- package/dist/decode/wenshu-rule.js.map +1 -0
- package/dist/dictionary/given-names.d.ts +46 -0
- package/dist/dictionary/given-names.d.ts.map +1 -0
- package/dist/dictionary/given-names.js +65 -0
- package/dist/dictionary/given-names.js.map +1 -0
- package/dist/dictionary/merge-types.d.ts +6 -0
- package/dist/dictionary/merge-types.d.ts.map +1 -1
- package/dist/dictionary/merge-types.js.map +1 -1
- package/dist/dictionary/merge.d.ts.map +1 -1
- package/dist/dictionary/merge.js +9 -2
- package/dist/dictionary/merge.js.map +1 -1
- package/dist/dictionary/proper-noun.d.ts +3 -1
- package/dist/dictionary/proper-noun.d.ts.map +1 -1
- package/dist/dictionary/proper-noun.js +6 -2
- package/dist/dictionary/proper-noun.js.map +1 -1
- package/dist/dictionary/reference-readings.d.ts.map +1 -1
- package/dist/dictionary/reference-readings.js +24 -0
- package/dist/dictionary/reference-readings.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/orthography/capitals.d.ts +5 -0
- package/dist/orthography/capitals.d.ts.map +1 -1
- package/dist/orthography/capitals.js +20 -1
- package/dist/orthography/capitals.js.map +1 -1
- package/dist/orthography/punctuation.d.ts.map +1 -1
- package/dist/orthography/punctuation.js +45 -4
- package/dist/orthography/punctuation.js.map +1 -1
- package/package.json +1 -1
|
@@ -20,6 +20,25 @@ const LATIN_PUNCTUATION = new Map([
|
|
|
20
20
|
* Marks that take a space after them but not before.
|
|
21
21
|
*/
|
|
22
22
|
const SPACE_AFTER = new Set([".", ",", ";", ":", "?", "!"]);
|
|
23
|
+
/**
|
|
24
|
+
* Marks that close something, which take the space of a mark just inside them.
|
|
25
|
+
*
|
|
26
|
+
* 你好。” ends with the full stop inside the quotation, so `nǐ hǎo.”` keeps
|
|
27
|
+
* the two together, and whatever follows is spaced from the closing mark
|
|
28
|
+
* instead: “我会回来,”汤姆说 is `“Wǒ huì huílai,” Tāngmǔ shuō`.
|
|
29
|
+
*/
|
|
30
|
+
const CLOSING = new Set([
|
|
31
|
+
"”",
|
|
32
|
+
"’",
|
|
33
|
+
"」",
|
|
34
|
+
"』",
|
|
35
|
+
")",
|
|
36
|
+
")",
|
|
37
|
+
"》",
|
|
38
|
+
"〉",
|
|
39
|
+
"】",
|
|
40
|
+
"]",
|
|
41
|
+
]);
|
|
23
42
|
/**
|
|
24
43
|
* Rewrite Chinese punctuation in the Latin script.
|
|
25
44
|
*
|
|
@@ -41,17 +60,39 @@ export function toLatinPunctuation(text) {
|
|
|
41
60
|
export function toLatinPunctuationParts(parts) {
|
|
42
61
|
return rewriteParts(parts, latinCharacters);
|
|
43
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Whether a space belongs after the character at a position, given what
|
|
65
|
+
* follows it.
|
|
66
|
+
*/
|
|
67
|
+
function isSpacedBefore(next) {
|
|
68
|
+
return next !== undefined && next !== " " && !CLOSING.has(next);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Whether the closing marks ending at a position close straight after a
|
|
72
|
+
* full-width mark that takes a space.
|
|
73
|
+
*/
|
|
74
|
+
function closesSpacedMark(characters, at) {
|
|
75
|
+
let before = at - 1;
|
|
76
|
+
while (CLOSING.has(characters[before] ?? "")) {
|
|
77
|
+
before--;
|
|
78
|
+
}
|
|
79
|
+
const latin = LATIN_PUNCTUATION.get(characters[before] ?? "");
|
|
80
|
+
return latin !== undefined && SPACE_AFTER.has(latin);
|
|
81
|
+
}
|
|
44
82
|
/**
|
|
45
83
|
* Rewrite each Chinese mark in the Latin script, character by character.
|
|
46
84
|
*/
|
|
47
85
|
const latinCharacters = (characters) => characters.map((character, at) => {
|
|
86
|
+
const next = characters[at + 1];
|
|
87
|
+
if (CLOSING.has(character)) {
|
|
88
|
+
return closesSpacedMark(characters, at) && isSpacedBefore(next)
|
|
89
|
+
? `${character} `
|
|
90
|
+
: character;
|
|
91
|
+
}
|
|
48
92
|
const latin = LATIN_PUNCTUATION.get(character);
|
|
49
93
|
if (latin === undefined) {
|
|
50
94
|
return character;
|
|
51
95
|
}
|
|
52
|
-
|
|
53
|
-
return SPACE_AFTER.has(latin) && next !== undefined && next !== " "
|
|
54
|
-
? `${latin} `
|
|
55
|
-
: latin;
|
|
96
|
+
return SPACE_AFTER.has(latin) && isSpacedBefore(next) ? `${latin} ` : latin;
|
|
56
97
|
});
|
|
57
98
|
//# sourceMappingURL=punctuation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"punctuation.js","sourceRoot":"","sources":["../../src/orthography/punctuation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,YAAY,EAAE,MAAM,YAAY,CAAC;AAWlE;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAiB;IAChD,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;CACX,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,2EAA2E;IAC3E,OAAO,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAwB;IAExB,OAAO,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,eAAe,GAAsB,CAAC,UAAU,EAAE,EAAE,CACxD,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE;IAC/B,MAAM,
|
|
1
|
+
{"version":3,"file":"punctuation.js","sourceRoot":"","sources":["../../src/orthography/punctuation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,YAAY,EAAE,MAAM,YAAY,CAAC;AAWlE;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAiB;IAChD,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;CACX,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE5D;;;;;;GAMG;AACH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;IACtB,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;CACJ,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,2EAA2E;IAC3E,OAAO,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAwB;IAExB,OAAO,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,IAAwB;IAC9C,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,UAA6B,EAAE,EAAU;IACjE,IAAI,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7C,MAAM,EAAE,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,eAAe,GAAsB,CAAC,UAAU,EAAE,EAAE,CACxD,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE;IAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC;YAC7D,CAAC,CAAC,GAAG,SAAS,GAAG;YACjB,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9E,CAAC,CAAC,CAAC"}
|