taraskevizer 10.2.0 → 10.2.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/dist/bin.js +1 -1
- package/dist/dict/alphabets/latin.js +5 -2
- package/dist/dict/wordlist.js +8 -9
- package/dist/lib/highlight-diff.js +46 -28
- package/package.json +1 -1
package/dist/bin.js
CHANGED
|
@@ -7,7 +7,7 @@ process.argv.splice(0, 2);
|
|
|
7
7
|
const firstArg = process.argv[0];
|
|
8
8
|
if (firstArg) {
|
|
9
9
|
if (firstArg === '-v' || firstArg === '--version') {
|
|
10
|
-
printWithPrefix("10.2.
|
|
10
|
+
printWithPrefix("10.2.4");
|
|
11
11
|
process.exit(0);
|
|
12
12
|
}
|
|
13
13
|
if (firstArg === '-h' || firstArg === '--help') {
|
|
@@ -16,6 +16,11 @@ const common = {
|
|
|
16
16
|
[/сь/g, 'ś'],
|
|
17
17
|
[/нь/g, 'ń'],
|
|
18
18
|
[/ль/g, 'l'],
|
|
19
|
+
[/лі/g, 'li'],
|
|
20
|
+
[/ля/g, 'la'],
|
|
21
|
+
[/лё/g, 'lo'],
|
|
22
|
+
[/лю/g, 'lu'],
|
|
23
|
+
[/ле/g, 'le'],
|
|
19
24
|
[/а/g, 'a'],
|
|
20
25
|
[/б/g, 'b'],
|
|
21
26
|
[/в/g, 'v'],
|
|
@@ -48,8 +53,6 @@ const common = {
|
|
|
48
53
|
[/э/g, 'e'],
|
|
49
54
|
[/ю/g, 'iu'],
|
|
50
55
|
[/я/g, 'ia'],
|
|
51
|
-
[/łi(?=[eoua])/g, 'l'],
|
|
52
|
-
[/łi/g, 'li'],
|
|
53
56
|
],
|
|
54
57
|
],
|
|
55
58
|
upper: [
|
package/dist/dict/wordlist.js
CHANGED
|
@@ -205,8 +205,8 @@ export const wordlist = callableDict([
|
|
|
205
205
|
[/ баторыяў /g, ' баторых '],
|
|
206
206
|
[/балгар/g, 'баўгар'],
|
|
207
207
|
[/брэст /g, '(брэст|берасьце) '],
|
|
208
|
+
[/брэстам/g, '(брэста|берасьце)м'],
|
|
208
209
|
[/брэста/g, '($&|берасьця)'],
|
|
209
|
-
[/\(брэста\|берасьця\)м/g, '(брэста|берасьце)м'],
|
|
210
210
|
[/брэсту/g, '($&|берасьцю)'],
|
|
211
211
|
[/брэсце/g, '($&|берасьці)'],
|
|
212
212
|
[/брэсцк/g, '($&|берасьцейск)'],
|
|
@@ -235,7 +235,7 @@ export const wordlist = callableDict([
|
|
|
235
235
|
[/белфас(?=[тц])/g, 'бэлфас'],
|
|
236
236
|
[/бельг/g, 'бэльґ'],
|
|
237
237
|
[/бенгал/g, 'бэнгал'],
|
|
238
|
-
[/бензін/g, '
|
|
238
|
+
[/бензін/g, 'бэнзын'],
|
|
239
239
|
[/бенін/g, 'бэнін'],
|
|
240
240
|
[/бенедыкт /g, 'бэнэдыкт '],
|
|
241
241
|
[/бэрге(?=лі|ля)/g, 'бер\ue0ffге'], // вёска
|
|
@@ -499,6 +499,7 @@ export const wordlist = callableDict([
|
|
|
499
499
|
[/ ([кс])інема/g, ' $1інэма'],
|
|
500
500
|
[/клаві/g, 'кляві'],
|
|
501
501
|
[/клас[ыі]/g, 'клясы'],
|
|
502
|
+
//???
|
|
502
503
|
[/ы клас /g, 'ая кляса '],
|
|
503
504
|
[/[іы]м класе /g, 'ай клясе '],
|
|
504
505
|
[/[іы]м класам /g, 'ай клясай '],
|
|
@@ -646,7 +647,7 @@ export const wordlist = callableDict([
|
|
|
646
647
|
[/ (арф|гайв|каліз|муз|спідв)ее/g, ' $1эі'],
|
|
647
648
|
[/ (арф|гайв|каліз|муз|спідв)е/g, ' $1э'],
|
|
648
649
|
[/маджахед/g, 'муджаг\ue0ffед'],
|
|
649
|
-
[/магамед/g, '
|
|
650
|
+
[/магамед/g, 'магамэд'],
|
|
650
651
|
[/медал/g, 'мэдал'],
|
|
651
652
|
[/мед(?=ы|уз|бра[тц]|с[ёя]с[тц]|інстыт)/g, 'мэд'],
|
|
652
653
|
[/ меза/g, ' мэза'],
|
|
@@ -876,10 +877,10 @@ export const wordlist = callableDict([
|
|
|
876
877
|
[/сіміл/g, 'сыміл'],
|
|
877
878
|
[/сімпат/g, 'сымпат'],
|
|
878
879
|
[/сімпозіум/g, 'сымпозіюм'],
|
|
879
|
-
[/сімпт([ао])
|
|
880
|
+
[/сімпт(?=[ао]м)/g, 'сымпт'],
|
|
880
881
|
[/трэнажор/g, 'сымулятар'],
|
|
881
882
|
[/сімуля(?=[внц])/g, 'сымуля'],
|
|
882
|
-
[/сімф([ао])
|
|
883
|
+
[/сімф(?=[ао]ні)/g, 'сымф'],
|
|
883
884
|
[/сінагог/g, 'сынагог'],
|
|
884
885
|
[/сінгапур/g, 'сынгапур'],
|
|
885
886
|
[/сіндром/g, 'сындром'],
|
|
@@ -1299,9 +1300,8 @@ export const wordlist = callableDict([
|
|
|
1299
1300
|
[/ каня(?=[мх])/g, ' к(аня|оня|анё)'],
|
|
1300
1301
|
[/ абласцей /g, ' (абласьцей|вобласьцяў) '],
|
|
1301
1302
|
[/ валасцей /g, ' (валасьцей|воласьцяў) '],
|
|
1302
|
-
[/ (най\S
|
|
1303
|
+
[/ (най\S+|пр|[чг])асцей/g, ' $1асьц\ue0ffей'],
|
|
1303
1304
|
[/сцей /g, 'сьц(ей|яў) '],
|
|
1304
|
-
[/ (г|(?:най)?ч)асьц\(ей\)\(яў\) /g, ' $1асьцей '],
|
|
1305
1305
|
|
|
1306
1306
|
[/(абед| дон|енск|[іы]зм|завод|інстытут| канал|крым|(?:кле|пола|слу)цк|лёндан|мадрыд| рым)а (?!-)/g, '$1у '],
|
|
1307
1307
|
[/(бэрлін|нясвіж|парыж)а /g, '$1(а|у) '],
|
|
@@ -1577,5 +1577,4 @@ export const wordlist = callableDict([
|
|
|
1577
1577
|
[/ зямель /g, ' з(ямель|емляў) '],
|
|
1578
1578
|
[/ яблынь /g, ' яблын(ь|яў) '],
|
|
1579
1579
|
[/ расей /g, ' расе(й|яў) '],
|
|
1580
|
-
]);
|
|
1581
|
-
wordlist.value = wordlist.value.concat(commonPhonetic, gwords, iaWords.value, [[/\ue0ff/g, '']]);
|
|
1580
|
+
].concat(commonPhonetic, gwords, iaWords.value, [[/\ue0ff/g, '']]));
|
|
@@ -2,7 +2,7 @@ import { replaceG } from './replace-g.js';
|
|
|
2
2
|
import { gobj } from '../dict/index.js';
|
|
3
3
|
const replaceGByOpposite = replaceG(($0) => gobj[$0]);
|
|
4
4
|
export const highlightDiff = (text, orig, isCyrillic, highlight) => {
|
|
5
|
-
for (let i = 0; i < text.length; i++) {
|
|
5
|
+
highlighting: for (let i = 0; i < text.length; i++) {
|
|
6
6
|
const word = text[i];
|
|
7
7
|
const oWord = orig[i];
|
|
8
8
|
if (oWord === word)
|
|
@@ -10,14 +10,24 @@ export const highlightDiff = (text, orig, isCyrillic, highlight) => {
|
|
|
10
10
|
const wordH = isCyrillic ? replaceGByOpposite(word) : word;
|
|
11
11
|
if (oWord === wordH)
|
|
12
12
|
continue;
|
|
13
|
-
|
|
13
|
+
const noVariableParts = !/\(/.test(word);
|
|
14
|
+
if (noVariableParts) {
|
|
14
15
|
if (word.length === oWord.length) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
text[i] = '';
|
|
17
|
+
let j = 0;
|
|
18
|
+
while (j < word.length) {
|
|
19
|
+
while (wordH[j] === oWord[j]) {
|
|
20
|
+
text[i] += word[j];
|
|
21
|
+
++j;
|
|
22
|
+
if (j === word.length)
|
|
23
|
+
continue highlighting;
|
|
24
|
+
}
|
|
25
|
+
const first = j;
|
|
26
|
+
while (wordH[j] !== oWord[j] && j < word.length) {
|
|
27
|
+
++j;
|
|
28
|
+
}
|
|
29
|
+
text[i] += highlight(word.slice(first, j));
|
|
19
30
|
}
|
|
20
|
-
text[i] = wordLetters.join('');
|
|
21
31
|
continue;
|
|
22
32
|
}
|
|
23
33
|
if (isCyrillic) {
|
|
@@ -33,30 +43,38 @@ export const highlightDiff = (text, orig, isCyrillic, highlight) => {
|
|
|
33
43
|
}
|
|
34
44
|
}
|
|
35
45
|
const oWordEnd = oWord.length - 1;
|
|
36
|
-
let
|
|
37
|
-
let
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
while (wordH[fromWordEnd] === oWord[fromOWordEnd]) {
|
|
42
|
-
--fromWordEnd;
|
|
43
|
-
--fromOWordEnd;
|
|
46
|
+
let lastI = word.length - 1;
|
|
47
|
+
let lastOI = oWordEnd;
|
|
48
|
+
while (wordH[lastI] === oWord[lastOI]) {
|
|
49
|
+
--lastI;
|
|
50
|
+
--lastOI;
|
|
44
51
|
}
|
|
45
|
-
if (
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
if (lastI < 1) {
|
|
53
|
+
// beginning removed -> first letter
|
|
54
|
+
text[i] = highlight(word[0]) + word.slice(1);
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
let firstI = 0;
|
|
58
|
+
while (wordH[firstI] === oWord[firstI])
|
|
59
|
+
++firstI;
|
|
60
|
+
if (firstI === word.length) {
|
|
61
|
+
// ending removed -> last letter
|
|
62
|
+
text[i] = word.slice(0, lastI) + highlight(word[lastI]);
|
|
63
|
+
}
|
|
64
|
+
else if (firstI === 0 && lastOI === oWordEnd) {
|
|
65
|
+
// first and last letters changed -> whole word
|
|
66
|
+
text[i] = highlight(word);
|
|
67
|
+
continue;
|
|
52
68
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
69
|
+
++lastI;
|
|
70
|
+
if (firstI === lastI) {
|
|
71
|
+
// part removed -> surrounding letters
|
|
72
|
+
--firstI;
|
|
73
|
+
++lastI;
|
|
56
74
|
}
|
|
57
75
|
text[i] =
|
|
58
|
-
word.slice(0,
|
|
59
|
-
highlight(word.slice(
|
|
60
|
-
word.slice(
|
|
76
|
+
word.slice(0, firstI) +
|
|
77
|
+
highlight(word.slice(firstI, lastI)) +
|
|
78
|
+
word.slice(lastI);
|
|
61
79
|
}
|
|
62
80
|
};
|