taraskevizer 1.4.2 → 1.4.4
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 +7 -7
- package/dist/index.cjs +41 -14
- package/dist/index.d.ts +3 -7
- package/dist/index.js +41 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -63,13 +63,13 @@ When to replace `і`(`i`) by `й`(`j`) after vowels:
|
|
|
63
63
|
|
|
64
64
|
### html
|
|
65
65
|
|
|
66
|
-
Type: `
|
|
66
|
+
Type: `boolean|object`
|
|
67
67
|
|
|
68
68
|
Default value: `false`
|
|
69
69
|
|
|
70
|
-
If `object`, some parts of a text are wrapped in HTML tags.
|
|
70
|
+
If `true|object`, some parts of a text are wrapped in HTML tags.
|
|
71
71
|
|
|
72
|
-
#### g
|
|
72
|
+
#### html.g
|
|
73
73
|
|
|
74
74
|
Type: `boolean`
|
|
75
75
|
|
|
@@ -85,19 +85,19 @@ true: <tarH>ґ</tarH> <tarH>Ґ</tarH>
|
|
|
85
85
|
|
|
86
86
|
### nonHtml
|
|
87
87
|
|
|
88
|
-
Type: `
|
|
88
|
+
Type: `boolean|object`
|
|
89
89
|
|
|
90
90
|
Default value: `false`
|
|
91
91
|
|
|
92
92
|
If `html` is defined, will be ignored
|
|
93
93
|
|
|
94
|
-
#### nodeColors
|
|
94
|
+
#### nonHtml.nodeColors
|
|
95
95
|
|
|
96
96
|
Type: `boolean`
|
|
97
97
|
|
|
98
98
|
Default value: `false`
|
|
99
99
|
|
|
100
|
-
#### h
|
|
100
|
+
#### nonHtml.h
|
|
101
101
|
|
|
102
102
|
Type: `boolean`
|
|
103
103
|
|
|
@@ -111,7 +111,7 @@ false: Ґ ґ
|
|
|
111
111
|
true: Г г
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
-
#### variations
|
|
114
|
+
#### nonHtml.variations
|
|
115
115
|
|
|
116
116
|
Type: `number`
|
|
117
117
|
|
package/dist/index.cjs
CHANGED
|
@@ -143,6 +143,7 @@ var greekLetters = [
|
|
|
143
143
|
["υ", /й/],
|
|
144
144
|
["κ", /к/],
|
|
145
145
|
["λ", /л/],
|
|
146
|
+
["μ‘π", /мп/],
|
|
146
147
|
["μ", /м/],
|
|
147
148
|
["ν", /н/],
|
|
148
149
|
["ο", /о/],
|
|
@@ -189,6 +190,8 @@ var greekLettersUpperCase = [
|
|
|
189
190
|
["Υ", /Й/],
|
|
190
191
|
["Κ", /К/],
|
|
191
192
|
["Λ", /Л/],
|
|
193
|
+
["Μ‘Π", /МП/],
|
|
194
|
+
["Μ‘π", /Мп/],
|
|
192
195
|
["Μ", /М/],
|
|
193
196
|
["Ν", /Н/],
|
|
194
197
|
["Ο", /О/],
|
|
@@ -210,25 +213,38 @@ var greekLettersUpperCase = [
|
|
|
210
213
|
];
|
|
211
214
|
var thWords = [
|
|
212
215
|
["θει", /тэі(?=зм|ст)/],
|
|
216
|
+
[" αγαθ", / агат/],
|
|
213
217
|
[" αναθεμ", / анатэм/],
|
|
218
|
+
["ανθραπα", /антрапа/],
|
|
219
|
+
[" απαθε", / апатэ(?=оз|аты|м)/],
|
|
214
220
|
[" αρθα", / арта(?=графі|д[ао]кс|эпі)/],
|
|
215
221
|
[" αρίθμετ", / арытмэт/],
|
|
216
222
|
[" αθεν", / атэн/],
|
|
217
223
|
[" καλιθε", / калітэ/],
|
|
218
224
|
[" καθεδ", / катэд(?=\(?а?р)/],
|
|
225
|
+
["λυαμπιρίνθ", /лябірынт/],
|
|
226
|
+
["λυαγαρίθμ", /лягарытм/],
|
|
227
|
+
[" μαρθί ", / мар[фт]ы /],
|
|
228
|
+
[" μαρθη ", / марфе /],
|
|
219
229
|
[" μαθεματί", / матэматы/],
|
|
220
230
|
[" μιθ", / міт(?=[ауы]|оляг| )/],
|
|
221
231
|
[" μεθ", / мэт(?=[ао]д)/],
|
|
232
|
+
["παθ", /пат(?=ал[ёя]гі|оляг|ычн|ыя|ы[ійю] |[ауы] |а[ўм] |амі | )/],
|
|
222
233
|
[" πιθαγορ", / пітагор/],
|
|
223
234
|
[" ρίθμ", / ры[тф]м/],
|
|
235
|
+
["σίνθετ", /сынтэ[зт]/],
|
|
236
|
+
[" θομασ", / томас/],
|
|
237
|
+
[" θρομμπ", / тромб/],
|
|
238
|
+
[" θρον", / трон/],
|
|
239
|
+
["θραμμποζ", /трамбоз/],
|
|
224
240
|
[" θεαδοσ", / тэадос/],
|
|
225
241
|
[" θεαρεμ", / тэарэм/],
|
|
226
242
|
[" θεατ", / тэат(?=ар |р)/],
|
|
227
243
|
[" θεμ", / тэм(?=[аеуы])/],
|
|
228
|
-
["
|
|
229
|
-
["
|
|
230
|
-
["
|
|
231
|
-
["
|
|
244
|
+
[" θε", / тэ(?=[ао]р|салёнік|сал)/],
|
|
245
|
+
["θε", /тэ(?=с\S*алёнік|\S*зіс)/],
|
|
246
|
+
["θερμα", /тэрма/],
|
|
247
|
+
[" εθ", / эт(?=ы[кч]|эр)/]
|
|
232
248
|
];
|
|
233
249
|
|
|
234
250
|
// src/dict/arabic.ts
|
|
@@ -434,6 +450,7 @@ var rawWordlist = [
|
|
|
434
450
|
["анэ", /ане(?=стэ[зт])/],
|
|
435
451
|
["апазыцы", /апазіцы/],
|
|
436
452
|
["апаляґет", /апалагет/],
|
|
453
|
+
[" апатэ", / апафе(?=оз|аты|м)/],
|
|
437
454
|
["апсыд", /апсід/],
|
|
438
455
|
// Апсыда
|
|
439
456
|
["апэльсін", /апельсін/],
|
|
@@ -837,9 +854,11 @@ var rawWordlist = [
|
|
|
837
854
|
[" люўр", / луўр/],
|
|
838
855
|
// [' $1ляг$2', / ((?:пра|не)?)лаг(аван|і|уе)/],
|
|
839
856
|
["лябара", /лабара(?=[нт])/],
|
|
857
|
+
["лябірын", /лабірын(?=[тц])/],
|
|
840
858
|
["лябатам", /лабатам/],
|
|
841
859
|
["ляванд", /лаванд/],
|
|
842
|
-
["лягарыт",
|
|
860
|
+
["лягарыт", /лагарыф/],
|
|
861
|
+
["лягатып", /лагатып/],
|
|
843
862
|
["лягуна", /лагуна/],
|
|
844
863
|
["ляйпцыг", /лейпцыг/],
|
|
845
864
|
["ляйтматы", /лейтматы/],
|
|
@@ -2084,6 +2103,7 @@ for (const word of gwords)
|
|
|
2084
2103
|
wordlist.push([word, RegExp(word.replace(/ґ/g, "г"), "g")]);
|
|
2085
2104
|
|
|
2086
2105
|
// src/tarask.ts
|
|
2106
|
+
var isObject = (arg) => typeof arg === "object";
|
|
2087
2107
|
var isUpperCase = (str) => str === str.toUpperCase();
|
|
2088
2108
|
var getLastLetter = (word) => {
|
|
2089
2109
|
for (let i = word.length - 1; i > 0; i--)
|
|
@@ -2131,7 +2151,9 @@ var tagApplications = {
|
|
|
2131
2151
|
};
|
|
2132
2152
|
var taraskSync = (text, options) => {
|
|
2133
2153
|
const { abc = 0, j = 0, html = false, nonHtml = false } = options || {};
|
|
2134
|
-
|
|
2154
|
+
const isHtmlObject = isObject(html);
|
|
2155
|
+
const isNonHtmlObject = isObject(nonHtml);
|
|
2156
|
+
if (isNonHtmlObject) {
|
|
2135
2157
|
nonHtml.variations || (nonHtml.variations = 0);
|
|
2136
2158
|
}
|
|
2137
2159
|
const apply = html ? tagApplications.html : tagApplications.nonHtml;
|
|
@@ -2157,17 +2179,22 @@ var taraskSync = (text, options) => {
|
|
|
2157
2179
|
splitted = text.split(" ");
|
|
2158
2180
|
if (abc !== ALPHABET.ARABIC)
|
|
2159
2181
|
splitted = restoreCase(splitted, splittedOrig);
|
|
2160
|
-
const nodeColors =
|
|
2182
|
+
const nodeColors = isNonHtmlObject && nonHtml.nodeColors;
|
|
2161
2183
|
if (html || nodeColors)
|
|
2162
|
-
splitted = toTags(
|
|
2184
|
+
splitted = toTags(
|
|
2185
|
+
splitted,
|
|
2186
|
+
splittedOrig,
|
|
2187
|
+
abc === ALPHABET.CYRILLIC,
|
|
2188
|
+
apply.F
|
|
2189
|
+
);
|
|
2163
2190
|
text = splitted.join(" ").replace(/ /g, " ").replace(/ (\p{P}|\p{S}|\d|() /gu, "$1");
|
|
2164
2191
|
let gReplacer;
|
|
2165
2192
|
if (html) {
|
|
2166
2193
|
text = replaceWithDict(text, additionalReplacements[abc]);
|
|
2167
|
-
if (abc === ALPHABET.CYRILLIC) {
|
|
2194
|
+
if (isHtmlObject && abc === ALPHABET.CYRILLIC) {
|
|
2168
2195
|
gReplacer = html.g ? apply.H("$&") : ($0) => apply.H(gobj[$0]);
|
|
2169
2196
|
}
|
|
2170
|
-
} else if (
|
|
2197
|
+
} else if (isNonHtmlObject && abc === ALPHABET.CYRILLIC) {
|
|
2171
2198
|
if (nonHtml.nodeColors) {
|
|
2172
2199
|
gReplacer = nonHtml.h ? ($0) => apply.H(gobj[$0]) : apply.H("$&");
|
|
2173
2200
|
} else if (nonHtml.h) {
|
|
@@ -2206,13 +2233,13 @@ function restoreCase(text, orig) {
|
|
|
2206
2233
|
}
|
|
2207
2234
|
return text;
|
|
2208
2235
|
}
|
|
2209
|
-
function toTags(text, orig,
|
|
2236
|
+
function toTags(text, orig, isCyrillic, applyF) {
|
|
2210
2237
|
for (let i = 0; i < text.length; i++) {
|
|
2211
2238
|
const word = text[i];
|
|
2212
2239
|
const oWord = orig[i];
|
|
2213
2240
|
if (oWord === word)
|
|
2214
2241
|
continue;
|
|
2215
|
-
const wordH = word.replace(G_REGEX, ($0) => gobj[$0]);
|
|
2242
|
+
const wordH = isCyrillic ? word.replace(G_REGEX, ($0) => gobj[$0]) : word;
|
|
2216
2243
|
if (oWord === wordH)
|
|
2217
2244
|
continue;
|
|
2218
2245
|
if (!/\(/.test(word)) {
|
|
@@ -2225,7 +2252,7 @@ function toTags(text, orig, abc, applyF) {
|
|
|
2225
2252
|
text[i] = wordLetters.join("");
|
|
2226
2253
|
continue;
|
|
2227
2254
|
}
|
|
2228
|
-
if (
|
|
2255
|
+
if (isCyrillic) {
|
|
2229
2256
|
const word1 = word.replace(/ь/g, "");
|
|
2230
2257
|
switch (oWord) {
|
|
2231
2258
|
case word1:
|
|
@@ -2297,7 +2324,7 @@ var finalizer = {
|
|
|
2297
2324
|
return `<tarL data-l='${options}'>${main}</tarL>`;
|
|
2298
2325
|
}).replace(/ \n /g, "<br>"),
|
|
2299
2326
|
nonHtml(text, options) {
|
|
2300
|
-
if (options && options.variations !== VARIATION.ALL) {
|
|
2327
|
+
if (isObject(options) && options.variations !== VARIATION.ALL) {
|
|
2301
2328
|
const WORD_INDEX = options.variations;
|
|
2302
2329
|
const replacer = ($0) => $0.slice(1, -1).split("|")[WORD_INDEX];
|
|
2303
2330
|
text = text.replace(
|
package/dist/index.d.ts
CHANGED
|
@@ -16,13 +16,9 @@ type HtmlOptions = {
|
|
|
16
16
|
type TaraskOptionsStrict = {
|
|
17
17
|
abc: Alphabet;
|
|
18
18
|
j: J$1;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
} | {
|
|
23
|
-
html: false;
|
|
24
|
-
nonHtml: NonHtmlOptions;
|
|
25
|
-
});
|
|
19
|
+
html: boolean | HtmlOptions;
|
|
20
|
+
nonHtml: boolean | NonHtmlOptions;
|
|
21
|
+
};
|
|
26
22
|
type TaraskOptions = DeepPartial<TaraskOptionsStrict>;
|
|
27
23
|
type Tarask = (text: string, options?: TaraskOptions) => string;
|
|
28
24
|
type TaraskAsync = Promisify<Tarask>;
|
package/dist/index.js
CHANGED
|
@@ -113,6 +113,7 @@ var greekLetters = [
|
|
|
113
113
|
["υ", /й/],
|
|
114
114
|
["κ", /к/],
|
|
115
115
|
["λ", /л/],
|
|
116
|
+
["μ‘π", /мп/],
|
|
116
117
|
["μ", /м/],
|
|
117
118
|
["ν", /н/],
|
|
118
119
|
["ο", /о/],
|
|
@@ -159,6 +160,8 @@ var greekLettersUpperCase = [
|
|
|
159
160
|
["Υ", /Й/],
|
|
160
161
|
["Κ", /К/],
|
|
161
162
|
["Λ", /Л/],
|
|
163
|
+
["Μ‘Π", /МП/],
|
|
164
|
+
["Μ‘π", /Мп/],
|
|
162
165
|
["Μ", /М/],
|
|
163
166
|
["Ν", /Н/],
|
|
164
167
|
["Ο", /О/],
|
|
@@ -180,25 +183,38 @@ var greekLettersUpperCase = [
|
|
|
180
183
|
];
|
|
181
184
|
var thWords = [
|
|
182
185
|
["θει", /тэі(?=зм|ст)/],
|
|
186
|
+
[" αγαθ", / агат/],
|
|
183
187
|
[" αναθεμ", / анатэм/],
|
|
188
|
+
["ανθραπα", /антрапа/],
|
|
189
|
+
[" απαθε", / апатэ(?=оз|аты|м)/],
|
|
184
190
|
[" αρθα", / арта(?=графі|д[ао]кс|эпі)/],
|
|
185
191
|
[" αρίθμετ", / арытмэт/],
|
|
186
192
|
[" αθεν", / атэн/],
|
|
187
193
|
[" καλιθε", / калітэ/],
|
|
188
194
|
[" καθεδ", / катэд(?=\(?а?р)/],
|
|
195
|
+
["λυαμπιρίνθ", /лябірынт/],
|
|
196
|
+
["λυαγαρίθμ", /лягарытм/],
|
|
197
|
+
[" μαρθί ", / мар[фт]ы /],
|
|
198
|
+
[" μαρθη ", / марфе /],
|
|
189
199
|
[" μαθεματί", / матэматы/],
|
|
190
200
|
[" μιθ", / міт(?=[ауы]|оляг| )/],
|
|
191
201
|
[" μεθ", / мэт(?=[ао]д)/],
|
|
202
|
+
["παθ", /пат(?=ал[ёя]гі|оляг|ычн|ыя|ы[ійю] |[ауы] |а[ўм] |амі | )/],
|
|
192
203
|
[" πιθαγορ", / пітагор/],
|
|
193
204
|
[" ρίθμ", / ры[тф]м/],
|
|
205
|
+
["σίνθετ", /сынтэ[зт]/],
|
|
206
|
+
[" θομασ", / томас/],
|
|
207
|
+
[" θρομμπ", / тромб/],
|
|
208
|
+
[" θρον", / трон/],
|
|
209
|
+
["θραμμποζ", /трамбоз/],
|
|
194
210
|
[" θεαδοσ", / тэадос/],
|
|
195
211
|
[" θεαρεμ", / тэарэм/],
|
|
196
212
|
[" θεατ", / тэат(?=ар |р)/],
|
|
197
213
|
[" θεμ", / тэм(?=[аеуы])/],
|
|
198
|
-
["
|
|
199
|
-
["
|
|
200
|
-
["
|
|
201
|
-
["
|
|
214
|
+
[" θε", / тэ(?=[ао]р|салёнік|сал)/],
|
|
215
|
+
["θε", /тэ(?=с\S*алёнік|\S*зіс)/],
|
|
216
|
+
["θερμα", /тэрма/],
|
|
217
|
+
[" εθ", / эт(?=ы[кч]|эр)/]
|
|
202
218
|
];
|
|
203
219
|
|
|
204
220
|
// src/dict/arabic.ts
|
|
@@ -404,6 +420,7 @@ var rawWordlist = [
|
|
|
404
420
|
["анэ", /ане(?=стэ[зт])/],
|
|
405
421
|
["апазыцы", /апазіцы/],
|
|
406
422
|
["апаляґет", /апалагет/],
|
|
423
|
+
[" апатэ", / апафе(?=оз|аты|м)/],
|
|
407
424
|
["апсыд", /апсід/],
|
|
408
425
|
// Апсыда
|
|
409
426
|
["апэльсін", /апельсін/],
|
|
@@ -807,9 +824,11 @@ var rawWordlist = [
|
|
|
807
824
|
[" люўр", / луўр/],
|
|
808
825
|
// [' $1ляг$2', / ((?:пра|не)?)лаг(аван|і|уе)/],
|
|
809
826
|
["лябара", /лабара(?=[нт])/],
|
|
827
|
+
["лябірын", /лабірын(?=[тц])/],
|
|
810
828
|
["лябатам", /лабатам/],
|
|
811
829
|
["ляванд", /лаванд/],
|
|
812
|
-
["лягарыт",
|
|
830
|
+
["лягарыт", /лагарыф/],
|
|
831
|
+
["лягатып", /лагатып/],
|
|
813
832
|
["лягуна", /лагуна/],
|
|
814
833
|
["ляйпцыг", /лейпцыг/],
|
|
815
834
|
["ляйтматы", /лейтматы/],
|
|
@@ -2054,6 +2073,7 @@ for (const word of gwords)
|
|
|
2054
2073
|
wordlist.push([word, RegExp(word.replace(/ґ/g, "г"), "g")]);
|
|
2055
2074
|
|
|
2056
2075
|
// src/tarask.ts
|
|
2076
|
+
var isObject = (arg) => typeof arg === "object";
|
|
2057
2077
|
var isUpperCase = (str) => str === str.toUpperCase();
|
|
2058
2078
|
var getLastLetter = (word) => {
|
|
2059
2079
|
for (let i = word.length - 1; i > 0; i--)
|
|
@@ -2101,7 +2121,9 @@ var tagApplications = {
|
|
|
2101
2121
|
};
|
|
2102
2122
|
var taraskSync = (text, options) => {
|
|
2103
2123
|
const { abc = 0, j = 0, html = false, nonHtml = false } = options || {};
|
|
2104
|
-
|
|
2124
|
+
const isHtmlObject = isObject(html);
|
|
2125
|
+
const isNonHtmlObject = isObject(nonHtml);
|
|
2126
|
+
if (isNonHtmlObject) {
|
|
2105
2127
|
nonHtml.variations || (nonHtml.variations = 0);
|
|
2106
2128
|
}
|
|
2107
2129
|
const apply = html ? tagApplications.html : tagApplications.nonHtml;
|
|
@@ -2127,17 +2149,22 @@ var taraskSync = (text, options) => {
|
|
|
2127
2149
|
splitted = text.split(" ");
|
|
2128
2150
|
if (abc !== ALPHABET.ARABIC)
|
|
2129
2151
|
splitted = restoreCase(splitted, splittedOrig);
|
|
2130
|
-
const nodeColors =
|
|
2152
|
+
const nodeColors = isNonHtmlObject && nonHtml.nodeColors;
|
|
2131
2153
|
if (html || nodeColors)
|
|
2132
|
-
splitted = toTags(
|
|
2154
|
+
splitted = toTags(
|
|
2155
|
+
splitted,
|
|
2156
|
+
splittedOrig,
|
|
2157
|
+
abc === ALPHABET.CYRILLIC,
|
|
2158
|
+
apply.F
|
|
2159
|
+
);
|
|
2133
2160
|
text = splitted.join(" ").replace(/ /g, " ").replace(/ (\p{P}|\p{S}|\d|() /gu, "$1");
|
|
2134
2161
|
let gReplacer;
|
|
2135
2162
|
if (html) {
|
|
2136
2163
|
text = replaceWithDict(text, additionalReplacements[abc]);
|
|
2137
|
-
if (abc === ALPHABET.CYRILLIC) {
|
|
2164
|
+
if (isHtmlObject && abc === ALPHABET.CYRILLIC) {
|
|
2138
2165
|
gReplacer = html.g ? apply.H("$&") : ($0) => apply.H(gobj[$0]);
|
|
2139
2166
|
}
|
|
2140
|
-
} else if (
|
|
2167
|
+
} else if (isNonHtmlObject && abc === ALPHABET.CYRILLIC) {
|
|
2141
2168
|
if (nonHtml.nodeColors) {
|
|
2142
2169
|
gReplacer = nonHtml.h ? ($0) => apply.H(gobj[$0]) : apply.H("$&");
|
|
2143
2170
|
} else if (nonHtml.h) {
|
|
@@ -2176,13 +2203,13 @@ function restoreCase(text, orig) {
|
|
|
2176
2203
|
}
|
|
2177
2204
|
return text;
|
|
2178
2205
|
}
|
|
2179
|
-
function toTags(text, orig,
|
|
2206
|
+
function toTags(text, orig, isCyrillic, applyF) {
|
|
2180
2207
|
for (let i = 0; i < text.length; i++) {
|
|
2181
2208
|
const word = text[i];
|
|
2182
2209
|
const oWord = orig[i];
|
|
2183
2210
|
if (oWord === word)
|
|
2184
2211
|
continue;
|
|
2185
|
-
const wordH = word.replace(G_REGEX, ($0) => gobj[$0]);
|
|
2212
|
+
const wordH = isCyrillic ? word.replace(G_REGEX, ($0) => gobj[$0]) : word;
|
|
2186
2213
|
if (oWord === wordH)
|
|
2187
2214
|
continue;
|
|
2188
2215
|
if (!/\(/.test(word)) {
|
|
@@ -2195,7 +2222,7 @@ function toTags(text, orig, abc, applyF) {
|
|
|
2195
2222
|
text[i] = wordLetters.join("");
|
|
2196
2223
|
continue;
|
|
2197
2224
|
}
|
|
2198
|
-
if (
|
|
2225
|
+
if (isCyrillic) {
|
|
2199
2226
|
const word1 = word.replace(/ь/g, "");
|
|
2200
2227
|
switch (oWord) {
|
|
2201
2228
|
case word1:
|
|
@@ -2267,7 +2294,7 @@ var finalizer = {
|
|
|
2267
2294
|
return `<tarL data-l='${options}'>${main}</tarL>`;
|
|
2268
2295
|
}).replace(/ \n /g, "<br>"),
|
|
2269
2296
|
nonHtml(text, options) {
|
|
2270
|
-
if (options && options.variations !== VARIATION.ALL) {
|
|
2297
|
+
if (isObject(options) && options.variations !== VARIATION.ALL) {
|
|
2271
2298
|
const WORD_INDEX = options.variations;
|
|
2272
2299
|
const replacer = ($0) => $0.slice(1, -1).split("|")[WORD_INDEX];
|
|
2273
2300
|
text = text.replace(
|