@kensio/pinyinjs 0.1.0-beta.0 → 1.0.0
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/CHANGELOG.md +87 -0
- package/NOTICE +7 -0
- package/README.md +144 -19
- package/data/full.entries +13400 -13400
- package/data/manifest.json +4 -4
- package/data/standard.entries +2492 -2492
- package/dist/cli/arguments.d.ts +67 -0
- package/dist/cli/arguments.d.ts.map +1 -1
- package/dist/cli/arguments.js +79 -0
- package/dist/cli/arguments.js.map +1 -1
- package/dist/cli/colour.d.ts +77 -0
- package/dist/cli/colour.d.ts.map +1 -0
- package/dist/cli/colour.js +117 -0
- package/dist/cli/colour.js.map +1 -0
- package/dist/cli/commands.d.ts +49 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +404 -42
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/environment.d.ts.map +1 -1
- package/dist/cli/environment.js +20 -0
- package/dist/cli/environment.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +43 -16
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/run.d.ts +11 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +4 -2
- package/dist/cli/run.js.map +1 -1
- package/dist/decode/convert.d.ts +20 -0
- package/dist/decode/convert.d.ts.map +1 -1
- package/dist/decode/convert.js +170 -12
- package/dist/decode/convert.js.map +1 -1
- package/dist/decode/decode.d.ts +3 -2
- package/dist/decode/decode.d.ts.map +1 -1
- package/dist/decode/decode.js +17 -4
- package/dist/decode/decode.js.map +1 -1
- package/dist/decode/reading-rules.d.ts +56 -0
- package/dist/decode/reading-rules.d.ts.map +1 -0
- package/dist/decode/reading-rules.js +107 -0
- package/dist/decode/reading-rules.js.map +1 -0
- package/dist/decode/rules.d.ts +66 -0
- package/dist/decode/rules.d.ts.map +1 -0
- package/dist/decode/rules.js +138 -0
- package/dist/decode/rules.js.map +1 -0
- package/dist/decode/sandhi.d.ts +1 -1
- package/dist/decode/sandhi.d.ts.map +1 -1
- package/dist/decode/sandhi.js +60 -1
- package/dist/decode/sandhi.js.map +1 -1
- package/dist/decode/word.d.ts +18 -0
- package/dist/decode/word.d.ts.map +1 -1
- package/dist/dictionary/artifact.d.ts.map +1 -1
- package/dist/dictionary/artifact.js +28 -1
- package/dist/dictionary/artifact.js.map +1 -1
- package/dist/dictionary/dictionary.d.ts +9 -0
- package/dist/dictionary/dictionary.d.ts.map +1 -1
- package/dist/dictionary/dictionary.js +7 -0
- package/dist/dictionary/dictionary.js.map +1 -1
- package/dist/dictionary/entry.d.ts +12 -0
- package/dist/dictionary/entry.d.ts.map +1 -1
- package/dist/dictionary/entry.js.map +1 -1
- package/dist/dictionary/merge.d.ts +3 -1
- package/dist/dictionary/merge.d.ts.map +1 -1
- package/dist/dictionary/merge.js +19 -1
- package/dist/dictionary/merge.js.map +1 -1
- package/dist/format/transcription.d.ts +52 -0
- package/dist/format/transcription.d.ts.map +1 -0
- package/dist/format/transcription.js +88 -0
- package/dist/format/transcription.js.map +1 -0
- package/dist/index.d.ts +24 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/numerals/cardinal.d.ts +39 -0
- package/dist/numerals/cardinal.d.ts.map +1 -0
- package/dist/numerals/cardinal.js +111 -0
- package/dist/numerals/cardinal.js.map +1 -0
- package/dist/numerals/characters.d.ts +31 -0
- package/dist/numerals/characters.d.ts.map +1 -0
- package/dist/numerals/characters.js +80 -0
- package/dist/numerals/characters.js.map +1 -0
- package/dist/numerals/numerals.d.ts +76 -0
- package/dist/numerals/numerals.d.ts.map +1 -0
- package/dist/numerals/numerals.js +119 -0
- package/dist/numerals/numerals.js.map +1 -0
- package/dist/numerals/text.d.ts +52 -0
- package/dist/numerals/text.d.ts.map +1 -0
- package/dist/numerals/text.js +248 -0
- package/dist/numerals/text.js.map +1 -0
- package/dist/orthography/grouping.d.ts +56 -11
- package/dist/orthography/grouping.d.ts.map +1 -1
- package/dist/orthography/grouping.js +109 -35
- package/dist/orthography/grouping.js.map +1 -1
- package/dist/orthography/idiom-list.d.ts +56 -0
- package/dist/orthography/idiom-list.d.ts.map +1 -0
- package/dist/orthography/idiom-list.js +296 -0
- package/dist/orthography/idiom-list.js.map +1 -0
- package/dist/orthography/idioms.d.ts +18 -0
- package/dist/orthography/idioms.d.ts.map +1 -0
- package/dist/orthography/idioms.js +22 -0
- package/dist/orthography/idioms.js.map +1 -0
- package/dist/orthography/reduplication.d.ts +52 -0
- package/dist/orthography/reduplication.d.ts.map +1 -0
- package/dist/orthography/reduplication.js +99 -0
- package/dist/orthography/reduplication.js.map +1 -0
- package/dist/orthography/rule.d.ts +50 -0
- package/dist/orthography/rule.d.ts.map +1 -0
- package/dist/orthography/rule.js +101 -0
- package/dist/orthography/rule.js.map +1 -0
- package/dist/sources/cedict.d.ts +23 -0
- package/dist/sources/cedict.d.ts.map +1 -1
- package/dist/sources/cedict.js +28 -0
- package/dist/sources/cedict.js.map +1 -1
- package/dist/syllable/syllable.d.ts +1 -1
- package/dist/syllable/syllable.d.ts.map +1 -1
- package/dist/syllable/syllable.js +2 -37
- package/dist/syllable/syllable.js.map +1 -1
- package/dist/tone/tone-mark.d.ts +23 -0
- package/dist/tone/tone-mark.d.ts.map +1 -1
- package/dist/tone/tone-mark.js +49 -0
- package/dist/tone/tone-mark.js.map +1 -1
- package/dist/transcription/bopomofo.d.ts +46 -0
- package/dist/transcription/bopomofo.d.ts.map +1 -0
- package/dist/transcription/bopomofo.js +371 -0
- package/dist/transcription/bopomofo.js.map +1 -0
- package/dist/transcription/gwoyeu.d.ts +32 -0
- package/dist/transcription/gwoyeu.d.ts.map +1 -0
- package/dist/transcription/gwoyeu.js +491 -0
- package/dist/transcription/gwoyeu.js.map +1 -0
- package/dist/transcription/ipa.d.ts +40 -0
- package/dist/transcription/ipa.d.ts.map +1 -0
- package/dist/transcription/ipa.js +221 -0
- package/dist/transcription/ipa.js.map +1 -0
- package/dist/transcription/spelling-index.d.ts +23 -0
- package/dist/transcription/spelling-index.d.ts.map +1 -0
- package/dist/transcription/spelling-index.js +61 -0
- package/dist/transcription/spelling-index.js.map +1 -0
- package/dist/transcription/wade-giles.d.ts +108 -0
- package/dist/transcription/wade-giles.d.ts.map +1 -0
- package/dist/transcription/wade-giles.js +656 -0
- package/dist/transcription/wade-giles.js.map +1 -0
- package/dist/transcription/yale.d.ts +43 -0
- package/dist/transcription/yale.d.ts.map +1 -0
- package/dist/transcription/yale.js +242 -0
- package/dist/transcription/yale.js.map +1 -0
- package/package.json +9 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule.js","sourceRoot":"","sources":["../../src/orthography/rule.ts"],"names":[],"mappings":"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"}
|
package/dist/sources/cedict.d.ts
CHANGED
|
@@ -48,4 +48,27 @@ export interface CedictEntry {
|
|
|
48
48
|
* them.
|
|
49
49
|
*/
|
|
50
50
|
export declare function parseCedict(text: string): CedictEntry[];
|
|
51
|
+
/**
|
|
52
|
+
* Where CC-CEDICT's own capitalisation divides a proper noun into its parts.
|
|
53
|
+
*
|
|
54
|
+
* GB/T 16159 5.1 writes the parts of a proper name apart, and CC-CEDICT marks
|
|
55
|
+
* them by capitalising each one: 毛泽东 is `[Mao2 Ze2 dong1]`, 司马迁 is
|
|
56
|
+
* `[Si1 ma3 Qian1]`, 上海交通大学 is `[Shang4 hai3 Jiao1 tong1 Da4 xue2]`. So
|
|
57
|
+
* the boundaries are stated by a source rather than guessed at from a surname
|
|
58
|
+
* list or a list of generics — and a compound surname needs no list of compound
|
|
59
|
+
* surnames.
|
|
60
|
+
*
|
|
61
|
+
* Returns every capitalised position after the first, which is one boundary for
|
|
62
|
+
* a personal name and often two or three for an organisation: **48% of the
|
|
63
|
+
* `nt`-tagged entries carrying any boundary carry more than one**, against 1.6%
|
|
64
|
+
* of `nr`. Taking only the first would leave 上海交通大学 as
|
|
65
|
+
* `Shànghǎi Jiāotōngdàxué`.
|
|
66
|
+
*
|
|
67
|
+
* Empty where there is none, which is the case that matters most: 马克思 is
|
|
68
|
+
* `[Ma3 ke4 si1]`, capitalised once and never again, so Marx stays one word.
|
|
69
|
+
*
|
|
70
|
+
* Only meaningful where the first syllable is capitalised too — an entry
|
|
71
|
+
* CC-CEDICT does not consider a proper noun has no parts to divide.
|
|
72
|
+
*/
|
|
73
|
+
export declare function nameBoundariesOf(readings: readonly string[]): readonly number[];
|
|
51
74
|
//# sourceMappingURL=cedict.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cedict.d.ts","sourceRoot":"","sources":["../../src/sources/cedict.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAuCvD"}
|
|
1
|
+
{"version":3,"file":"cedict.d.ts","sourceRoot":"","sources":["../../src/sources/cedict.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B;;;;;;;;OAQG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAuCvD;AAUD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,SAAS,MAAM,EAAE,CAOnB"}
|
package/dist/sources/cedict.js
CHANGED
|
@@ -60,4 +60,32 @@ function isCapitalised(reading) {
|
|
|
60
60
|
const first = reading.slice(0, 1);
|
|
61
61
|
return first !== first.toLowerCase();
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Where CC-CEDICT's own capitalisation divides a proper noun into its parts.
|
|
65
|
+
*
|
|
66
|
+
* GB/T 16159 5.1 writes the parts of a proper name apart, and CC-CEDICT marks
|
|
67
|
+
* them by capitalising each one: 毛泽东 is `[Mao2 Ze2 dong1]`, 司马迁 is
|
|
68
|
+
* `[Si1 ma3 Qian1]`, 上海交通大学 is `[Shang4 hai3 Jiao1 tong1 Da4 xue2]`. So
|
|
69
|
+
* the boundaries are stated by a source rather than guessed at from a surname
|
|
70
|
+
* list or a list of generics — and a compound surname needs no list of compound
|
|
71
|
+
* surnames.
|
|
72
|
+
*
|
|
73
|
+
* Returns every capitalised position after the first, which is one boundary for
|
|
74
|
+
* a personal name and often two or three for an organisation: **48% of the
|
|
75
|
+
* `nt`-tagged entries carrying any boundary carry more than one**, against 1.6%
|
|
76
|
+
* of `nr`. Taking only the first would leave 上海交通大学 as
|
|
77
|
+
* `Shànghǎi Jiāotōngdàxué`.
|
|
78
|
+
*
|
|
79
|
+
* Empty where there is none, which is the case that matters most: 马克思 is
|
|
80
|
+
* `[Ma3 ke4 si1]`, capitalised once and never again, so Marx stays one word.
|
|
81
|
+
*
|
|
82
|
+
* Only meaningful where the first syllable is capitalised too — an entry
|
|
83
|
+
* CC-CEDICT does not consider a proper noun has no parts to divide.
|
|
84
|
+
*/
|
|
85
|
+
export function nameBoundariesOf(readings) {
|
|
86
|
+
if (readings.length < 2 || !isCapitalised(readings[0] ?? "")) {
|
|
87
|
+
return [];
|
|
88
|
+
}
|
|
89
|
+
return readings.flatMap((reading, index) => index > 0 && isCapitalised(reading) ? [index] : []);
|
|
90
|
+
}
|
|
63
91
|
//# sourceMappingURL=cedict.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cedict.js","sourceRoot":"","sources":["../../src/sources/cedict.ts"],"names":[],"mappings":"AAwCA;;GAEG;AACH,MAAM,UAAU,GAAG,+CAA+C,CAAC;AAEnE;;GAEG;AACH,MAAM,cAAc,GAAG,2BAA2B,CAAC;AAEnD;;GAEG;AACH,MAAM,eAAe,GAAG,UAAU,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QAED,MAAM,CAAC,EAAE,WAAW,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAC1E,IACE,QAAQ,CAAC,MAAM,KAAK,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC7C,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;YAChC,EAAE,KAAK,CAAC,MAAM,CAAC;aACd,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QAEvC,OAAO,CAAC,IAAI,CAAC;YACX,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC;YACzC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;YACvC,QAAQ;YACR,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,GAAG,CAAC,cAAc,KAAK,SAAS;gBAC9B,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;YAClD,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,OAAO,KAAK,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;AACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cedict.js","sourceRoot":"","sources":["../../src/sources/cedict.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export interface Syllable {
|
|
|
13
13
|
/**
|
|
14
14
|
* The tone, or undefined when the source wrote no tone at all.
|
|
15
15
|
*
|
|
16
|
-
* Undefined is distinct from
|
|
16
|
+
* Undefined is distinct from the neutral tone: `de` in 我的 is neutral,
|
|
17
17
|
* whereas the `bei` in a typed `beijing` simply has no tone written. Treating
|
|
18
18
|
* the second as neutral would fabricate information — it would round-trip to
|
|
19
19
|
* `bei5`, and would emit the neutral-tone dot in bopomofo.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syllable.d.ts","sourceRoot":"","sources":["../../src/syllable/syllable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"syllable.d.ts","sourceRoot":"","sources":["../../src/syllable/syllable.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,IAAI,EAAoB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAEL,KAAK,KAAK,EAEV,KAAK,OAAO,EAIb,MAAM,gBAAgB,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAwDD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAuFD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAwC/D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAUhE;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC;AAExE;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,GAAE,YAAsB,GAC/B,MAAM,CAsBR"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { applyToneMark, stripToneMarks, toneFromMarks, } from "../tone/tone-mark.js";
|
|
2
|
-
import {
|
|
1
|
+
import { applyToneMark, normaliseSuperscript, stripToneMarks, SUPERSCRIPT_TONES, toneFromMarks, } from "../tone/tone-mark.js";
|
|
2
|
+
import { toneFromNotation } from "../tone/tone.js";
|
|
3
3
|
import { AFTER_INITIAL_SPELLINGS, INITIALS, isFinal, isPalatalInitial, ZERO_INITIAL_SPELLINGS, } from "./phonology.js";
|
|
4
4
|
/**
|
|
5
5
|
* How a written final maps back to its underlying form after a palatal initial,
|
|
@@ -58,41 +58,6 @@ const STANDALONE_FINALS = new Set([
|
|
|
58
58
|
export function normaliseUmlaut(text) {
|
|
59
59
|
return text.replaceAll("u:", "ü").replaceAll("v", "ü").replaceAll("V", "Ü");
|
|
60
60
|
}
|
|
61
|
-
/**
|
|
62
|
-
* How each tone is written raised, for the `superscript` notation.
|
|
63
|
-
*
|
|
64
|
-
* The neutral tone is written `⁵` rather than left off, so that superscript is
|
|
65
|
-
* exactly the numeric notation set higher and the two round-trip alike.
|
|
66
|
-
*/
|
|
67
|
-
const SUPERSCRIPT_TONES = new Map([
|
|
68
|
-
[1, "¹"],
|
|
69
|
-
[2, "²"],
|
|
70
|
-
[3, "³"],
|
|
71
|
-
[4, "⁴"],
|
|
72
|
-
[NEUTRAL_TONE, "⁵"],
|
|
73
|
-
]);
|
|
74
|
-
/**
|
|
75
|
-
* Rewrite raised tone digits as plain ones, so that input takes either.
|
|
76
|
-
*
|
|
77
|
-
* Zero is included because {@link toneFromNotation} accepts it for the neutral
|
|
78
|
-
* tone, and a notation that can be written should be readable back.
|
|
79
|
-
*/
|
|
80
|
-
function normaliseSuperscript(text) {
|
|
81
|
-
return text.replaceAll(/[⁰¹²³⁴⁵]/gu,
|
|
82
|
-
/* c8 ignore next -- the pattern only matches what the map holds */
|
|
83
|
-
(digit) => SUPERSCRIPT_DIGITS.get(digit) ?? digit);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* The plain digit each raised digit stands for.
|
|
87
|
-
*/
|
|
88
|
-
const SUPERSCRIPT_DIGITS = new Map([
|
|
89
|
-
["⁰", "0"],
|
|
90
|
-
["¹", "1"],
|
|
91
|
-
["²", "2"],
|
|
92
|
-
["³", "3"],
|
|
93
|
-
["⁴", "4"],
|
|
94
|
-
["⁵", "5"],
|
|
95
|
-
]);
|
|
96
61
|
/**
|
|
97
62
|
* Split a written syllable into its initial and the final's spelling.
|
|
98
63
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syllable.js","sourceRoot":"","sources":["../../src/syllable/syllable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"syllable.js","sourceRoot":"","sources":["../../src/syllable/syllable.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAa,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EACL,uBAAuB,EAEvB,QAAQ,EAER,OAAO,EACP,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AA+BxB;;;GAGG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAgB;IAC5C,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,IAAI,EAAE,IAAI,CAAC;IACZ,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,IAAI,EAAE,IAAI,CAAC;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAgB;IAChD,CAAC,IAAI,EAAE,KAAK,CAAC;IACb,CAAC,IAAI,EAAE,KAAK,CAAC;IACb,CAAC,IAAI,EAAE,KAAK,CAAC;CACd,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,CAAC,GAAG,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAC1E,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAQ;IACvC,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,GAAG;IACH,GAAG;IACH,IAAI;CACL,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACrE,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,OAAgB,EAAE,QAAgB;IACnD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,WAAW,CAAC;QACrB,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzD,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED,6EAA6E;IAC7E,uEAAuE;IACvE,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,uEAAuE;IACvE,4EAA4E;IAC5E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,4EAA4E;IAC5E,8DAA8D;IAC9D,IAAI,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,QAAgB;IACjC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,SAAS,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,OAAO,GAAG,oBAAoB,CAClC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAC9C,CAAC;IACF,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAC3C,MAAM,YAAY,GAChB,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS;QAC9B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,YAAY,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3D,uEAAuE;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,YAAY,IAAI,UAAU,CAAC;IAExC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACtD,CAAC;IAED,yEAAyE;IACzE,2EAA2E;IAC3E,8DAA8D;IAC9D,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAkB;IACtD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;IACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,gBAAgB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,GAAG,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,MAAM,EAAE,CAAC;AAC7E,CAAC;AAUD;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAkB,EAClB,QAAQ,GAAiB,OAAO;IAEhC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACjD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO,EAAE,CAAC;YACb,OAAO,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,SAAS,EAAE,CAAC;YACf,sEAAsE;YACtE,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS;gBAChC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,CAAC;QACD,KAAK,aAAa,EAAE,CAAC;YACnB,uDAAuD;YACvD,OAAO,QAAQ,CAAC,IAAI,KAAK,SAAS;gBAChC,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,GAAG,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjE,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACZ,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/tone/tone-mark.d.ts
CHANGED
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
import { type Tone } from "./tone.js";
|
|
2
|
+
/**
|
|
3
|
+
* The combining diacritic a tone is written with, or the empty string for the
|
|
4
|
+
* neutral tone, which is written with none.
|
|
5
|
+
*
|
|
6
|
+
* Exported for the romanisations that mark tones as pinyin does but do not
|
|
7
|
+
* place the mark as pinyin does: Yale's `jr` and `sz` have no vowel at all, so
|
|
8
|
+
* {@link applyToneMark} has nowhere to put the mark and the caller has to say
|
|
9
|
+
* where it goes.
|
|
10
|
+
*/
|
|
11
|
+
export declare function toneDiacritic(tone: Tone): string;
|
|
2
12
|
/**
|
|
3
13
|
* Remove any tone diacritics, leaving the plain syllable.
|
|
4
14
|
*
|
|
5
15
|
* The diaeresis of ü is preserved, so ǚ becomes ü rather than u.
|
|
6
16
|
*/
|
|
7
17
|
export declare function stripToneMarks(text: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* How each tone is written raised.
|
|
20
|
+
*
|
|
21
|
+
* Used by pinyin's `superscript` notation and by Wade-Giles, which writes its
|
|
22
|
+
* tone as a raised digit and nothing else. The neutral tone is written ⁵ rather
|
|
23
|
+
* than left off, so that superscript is exactly the numeric notation set higher
|
|
24
|
+
* and the two round-trip alike.
|
|
25
|
+
*/
|
|
26
|
+
export declare const SUPERSCRIPT_TONES: ReadonlyMap<Tone, string>;
|
|
27
|
+
/**
|
|
28
|
+
* Rewrite raised tone digits as plain ones, so that input takes either.
|
|
29
|
+
*/
|
|
30
|
+
export declare function normaliseSuperscript(text: string): string;
|
|
8
31
|
/**
|
|
9
32
|
* Read the tone written by the diacritics in a tone-marked syllable.
|
|
10
33
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tone-mark.d.ts","sourceRoot":"","sources":["../../src/tone/tone-mark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AA2CpD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAQ5D;AA8BD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,IAAI,GAAG,SAAS,GACrB,MAAM,CAoBR"}
|
|
1
|
+
{"version":3,"file":"tone-mark.d.ts","sourceRoot":"","sources":["../../src/tone/tone-mark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AA2CpD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAMtD,CAAC;AAiBH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAQ5D;AA8BD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,IAAI,GAAG,SAAS,GACrB,MAAM,CAoBR"}
|
package/dist/tone/tone-mark.js
CHANGED
|
@@ -35,6 +35,18 @@ const secondaryToneVowels = "iuüê";
|
|
|
35
35
|
* all, such as 呣 (ḿ) and 嗯 (ňg).
|
|
36
36
|
*/
|
|
37
37
|
const syllabicConsonantPattern = /[mn]/u;
|
|
38
|
+
/**
|
|
39
|
+
* The combining diacritic a tone is written with, or the empty string for the
|
|
40
|
+
* neutral tone, which is written with none.
|
|
41
|
+
*
|
|
42
|
+
* Exported for the romanisations that mark tones as pinyin does but do not
|
|
43
|
+
* place the mark as pinyin does: Yale's `jr` and `sz` have no vowel at all, so
|
|
44
|
+
* {@link applyToneMark} has nowhere to put the mark and the caller has to say
|
|
45
|
+
* where it goes.
|
|
46
|
+
*/
|
|
47
|
+
export function toneDiacritic(tone) {
|
|
48
|
+
return toneDiacritics[tone - 1] ?? "";
|
|
49
|
+
}
|
|
38
50
|
/**
|
|
39
51
|
* Remove any tone diacritics, leaving the plain syllable.
|
|
40
52
|
*
|
|
@@ -46,6 +58,43 @@ export function stripToneMarks(text) {
|
|
|
46
58
|
.replaceAll(toneDiacriticPattern, "")
|
|
47
59
|
.normalize("NFC");
|
|
48
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* How each tone is written raised.
|
|
63
|
+
*
|
|
64
|
+
* Used by pinyin's `superscript` notation and by Wade-Giles, which writes its
|
|
65
|
+
* tone as a raised digit and nothing else. The neutral tone is written ⁵ rather
|
|
66
|
+
* than left off, so that superscript is exactly the numeric notation set higher
|
|
67
|
+
* and the two round-trip alike.
|
|
68
|
+
*/
|
|
69
|
+
export const SUPERSCRIPT_TONES = new Map([
|
|
70
|
+
[1, "¹"],
|
|
71
|
+
[2, "²"],
|
|
72
|
+
[3, "³"],
|
|
73
|
+
[4, "⁴"],
|
|
74
|
+
[NEUTRAL_TONE, "⁵"],
|
|
75
|
+
]);
|
|
76
|
+
/**
|
|
77
|
+
* The plain digit each raised digit stands for.
|
|
78
|
+
*
|
|
79
|
+
* Zero is included because a tone may be written 0 for neutral, and a notation
|
|
80
|
+
* that can be written should be readable back.
|
|
81
|
+
*/
|
|
82
|
+
const superscriptDigits = new Map([
|
|
83
|
+
["⁰", "0"],
|
|
84
|
+
["¹", "1"],
|
|
85
|
+
["²", "2"],
|
|
86
|
+
["³", "3"],
|
|
87
|
+
["⁴", "4"],
|
|
88
|
+
["⁵", "5"],
|
|
89
|
+
]);
|
|
90
|
+
/**
|
|
91
|
+
* Rewrite raised tone digits as plain ones, so that input takes either.
|
|
92
|
+
*/
|
|
93
|
+
export function normaliseSuperscript(text) {
|
|
94
|
+
return text.replaceAll(/[⁰¹²³⁴⁵]/gu,
|
|
95
|
+
/* c8 ignore next -- the pattern only matches what the map holds */
|
|
96
|
+
(digit) => superscriptDigits.get(digit) ?? digit);
|
|
97
|
+
}
|
|
49
98
|
/**
|
|
50
99
|
* Read the tone written by the diacritics in a tone-marked syllable.
|
|
51
100
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tone-mark.js","sourceRoot":"","sources":["../../src/tone/tone-mark.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tone-mark.js","sourceRoot":"","sources":["../../src/tone/tone-mark.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Syllable } from "../syllable/syllable.js";
|
|
2
|
+
/**
|
|
3
|
+
* How the first tone is written.
|
|
4
|
+
*
|
|
5
|
+
* Standard bopomofo leaves it unmarked, which is why `none` is the default. The
|
|
6
|
+
* cost is that a syllable whose tone was never written comes back as a first
|
|
7
|
+
* tone, since bopomofo has no way to say "no tone at all"; `mark` writes ˉ and
|
|
8
|
+
* keeps the two apart.
|
|
9
|
+
*/
|
|
10
|
+
export interface BopomofoOptions {
|
|
11
|
+
readonly firstTone?: "mark" | "none";
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Write a syllable in bopomofo: 就 jiù becomes ㄐㄧㄡˋ.
|
|
15
|
+
*
|
|
16
|
+
* Total over well-formed syllables — every initial and every final has a
|
|
17
|
+
* symbol — so anything the syllable parser accepts can be written, including
|
|
18
|
+
* the syllables no dictionary uses.
|
|
19
|
+
*/
|
|
20
|
+
export declare function writeBopomofo(syllable: Syllable, options?: BopomofoOptions): string;
|
|
21
|
+
/**
|
|
22
|
+
* Write a word in bopomofo, one syllable after another.
|
|
23
|
+
*
|
|
24
|
+
* Separated by spaces, as 教育部's dictionaries write them. A syllable boundary
|
|
25
|
+
* is findable without the space — an initial symbol can only start one — but a
|
|
26
|
+
* long unbroken run of symbols is hard to read, and the space costs nothing.
|
|
27
|
+
*/
|
|
28
|
+
export declare function writeBopomofoWord(syllables: readonly Syllable[], options?: BopomofoOptions): string;
|
|
29
|
+
/**
|
|
30
|
+
* Whether a string is written in bopomofo at all.
|
|
31
|
+
*
|
|
32
|
+
* This is the one thing bopomofo makes easy that Wade-Giles cannot: it has a
|
|
33
|
+
* script of its own, so it is never mistaken for pinyin and a caller never has
|
|
34
|
+
* to be told which system its input is in.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isBopomofo(text: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Read a bopomofo syllable: ㄐㄧㄡˋ becomes 就 jiù.
|
|
39
|
+
*
|
|
40
|
+
* An unmarked syllable is a first tone rather than a toneless one, because
|
|
41
|
+
* bopomofo marks the first tone by leaving it off — the omission is itself
|
|
42
|
+
* written, in a way that a bare `bei` typed as pinyin is not. Undefined for
|
|
43
|
+
* anything that is not exactly one well-formed syllable.
|
|
44
|
+
*/
|
|
45
|
+
export declare function readBopomofo(text: string): Syllable | undefined;
|
|
46
|
+
//# sourceMappingURL=bopomofo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bopomofo.d.ts","sourceRoot":"","sources":["../../src/transcription/bopomofo.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AA6MxD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,eAAoB,GAC5B,MAAM,CAiBR;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,QAAQ,EAAE,EAC9B,OAAO,GAAE,eAAoB,GAC5B,MAAM,CAIR;AA6CD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKhD;AAmHD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAS/D"}
|