henkan 2.4.11 → 2.4.12
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/index.cjs.js +49 -43
- package/dist/index.cjs.js.map +2 -2
- package/dist/index.mjs +49 -43
- package/dist/index.mjs.map +2 -2
- package/dist/types/utils.d.ts.map +1 -1
- package/docs/api/functions/generateAnkiNote.md +1 -1
- package/docs/api/functions/generateAnkiNotesFile.md +1 -1
- package/package.json +1 -1
- package/src/utils.ts +136 -84
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
> **generateAnkiNote**(`entry`, `customData?`, `additionalTags?`): `string`[]
|
|
10
10
|
|
|
11
|
-
Defined in: [utils.ts:
|
|
11
|
+
Defined in: [utils.ts:2643](https://github.com/Ronokof/Henkan/blob/main/src/utils.ts#L2643)
|
|
12
12
|
|
|
13
13
|
Generates an array where each field holds an entry’s info wrapped in HTML tags.
|
|
14
14
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
> **generateAnkiNotesFile**(`list`, `defaultNoteInfo?`, `customData?`, `additionalTags?`): `string`
|
|
10
10
|
|
|
11
|
-
Defined in: [utils.ts:
|
|
11
|
+
Defined in: [utils.ts:3072](https://github.com/Ronokof/Henkan/blob/main/src/utils.ts#L3072)
|
|
12
12
|
|
|
13
13
|
Generates an Anki notes file with each entry’s info organized into fields, either in HTML or plain text.
|
|
14
14
|
|
package/package.json
CHANGED
package/src/utils.ts
CHANGED
|
@@ -2141,12 +2141,28 @@ export function getWord(
|
|
|
2141
2141
|
|
|
2142
2142
|
word.translations = [];
|
|
2143
2143
|
|
|
2144
|
+
const meanings: string[] | undefined =
|
|
2145
|
+
dictWord.hasPhrases === true && examples !== undefined ? [] : undefined;
|
|
2146
|
+
const seenPhrases: Set<string> = new Set<string>();
|
|
2147
|
+
|
|
2144
2148
|
for (const dictMeaning of dictWord.meanings) {
|
|
2145
2149
|
const translationTypes: string[] = [];
|
|
2146
2150
|
const translations: string[] = dictMeaning.translations.map(
|
|
2147
2151
|
(translation: string | { translation: string; type: string }) => {
|
|
2148
|
-
if (typeof translation === "string")
|
|
2149
|
-
|
|
2152
|
+
if (typeof translation === "string") {
|
|
2153
|
+
if (meanings !== undefined) {
|
|
2154
|
+
const cleanTranslation: string = translation
|
|
2155
|
+
.replaceAll(/\([^)]*\)|\[[^\]]*\]|\{[^}]*\}/g, "")
|
|
2156
|
+
.trim();
|
|
2157
|
+
|
|
2158
|
+
if (!seenPhrases.has(cleanTranslation)) {
|
|
2159
|
+
seenPhrases.add(cleanTranslation);
|
|
2160
|
+
meanings.push(cleanTranslation);
|
|
2161
|
+
}
|
|
2162
|
+
}
|
|
2163
|
+
|
|
2164
|
+
return translation;
|
|
2165
|
+
} else {
|
|
2150
2166
|
const translationNoteAndTag:
|
|
2151
2167
|
| readonly [string, string]
|
|
2152
2168
|
| readonly [string, string, POS | readonly POS[]] = noteMap.get(
|
|
@@ -2156,6 +2172,17 @@ export function getWord(
|
|
|
2156
2172
|
translationTypes.push(translationNoteAndTag[1]);
|
|
2157
2173
|
word.tags!.push(`word::${translationNoteAndTag[0]}`);
|
|
2158
2174
|
|
|
2175
|
+
if (meanings !== undefined) {
|
|
2176
|
+
const cleanTranslation: string = translation.translation
|
|
2177
|
+
.replaceAll(/\([^)]*\)|\[[^\]]*\]|\{[^}]*\}/g, "")
|
|
2178
|
+
.trim();
|
|
2179
|
+
|
|
2180
|
+
if (!seenPhrases.has(cleanTranslation)) {
|
|
2181
|
+
seenPhrases.add(cleanTranslation);
|
|
2182
|
+
meanings.push(cleanTranslation);
|
|
2183
|
+
}
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2159
2186
|
return translation.translation;
|
|
2160
2187
|
}
|
|
2161
2188
|
},
|
|
@@ -2208,6 +2235,8 @@ export function getWord(
|
|
|
2208
2235
|
word.tags!.push("word::usually_in_kana_for_all_senses");
|
|
2209
2236
|
}
|
|
2210
2237
|
|
|
2238
|
+
seenPhrases.clear();
|
|
2239
|
+
|
|
2211
2240
|
if (kanjiDic !== undefined && word.kanjiForms !== undefined) {
|
|
2212
2241
|
const kanji: Kanji[] = [];
|
|
2213
2242
|
const seenChars: Set<string> = new Set<string>();
|
|
@@ -2240,9 +2269,9 @@ export function getWord(
|
|
|
2240
2269
|
if (kanji.length > 0) word.kanji = kanji;
|
|
2241
2270
|
}
|
|
2242
2271
|
|
|
2243
|
-
if (
|
|
2272
|
+
if (meanings !== undefined) {
|
|
2244
2273
|
const exampleList: readonly TanakaExample[] =
|
|
2245
|
-
examples instanceof Map ? (examples.get(dictWord.id) ?? []) : examples
|
|
2274
|
+
examples instanceof Map ? (examples.get(dictWord.id) ?? []) : examples!;
|
|
2246
2275
|
|
|
2247
2276
|
const rkf: ReadingsKanjiFormsPair = getValidForms(
|
|
2248
2277
|
dictWord.readings,
|
|
@@ -2258,43 +2287,28 @@ export function getWord(
|
|
|
2258
2287
|
? new Set<string>(rkf.kanjiForms.map((kf: DictKanjiForm) => kf.form))
|
|
2259
2288
|
: undefined;
|
|
2260
2289
|
|
|
2261
|
-
|
|
2262
|
-
dictWord.meanings.flatMap((m: DictMeaning) =>
|
|
2263
|
-
m.translations.map((t: DictTranslation) => {
|
|
2264
|
-
if (typeof t === "string")
|
|
2265
|
-
return t.replaceAll(/\([^)]*\)|\[[^\]]*\]|\{[^}]*\}/g, "").trim();
|
|
2266
|
-
else
|
|
2267
|
-
return t.translation
|
|
2268
|
-
.replaceAll(/\([^)]*\)|\[[^\]]*\]|\{[^}]*\}/g, "")
|
|
2269
|
-
.trim();
|
|
2270
|
-
}),
|
|
2271
|
-
),
|
|
2272
|
-
)
|
|
2273
|
-
.values()
|
|
2274
|
-
.toArray();
|
|
2275
|
-
|
|
2276
|
-
let kanjiFormExamples: {
|
|
2290
|
+
let readingMatchingKanjiFormExamples: {
|
|
2277
2291
|
ex: TanakaExample;
|
|
2278
2292
|
partIndex: number;
|
|
2279
2293
|
form: string;
|
|
2294
|
+
referenceIDMatch?: true | undefined;
|
|
2280
2295
|
includesTranslation?: true | undefined;
|
|
2281
2296
|
}[] = [];
|
|
2282
|
-
let
|
|
2297
|
+
let kanjiFormExamples: {
|
|
2283
2298
|
ex: TanakaExample;
|
|
2284
2299
|
partIndex: number;
|
|
2285
2300
|
form: string;
|
|
2286
2301
|
includesTranslation?: true | undefined;
|
|
2287
2302
|
}[] = [];
|
|
2303
|
+
|
|
2288
2304
|
let readingExamples: {
|
|
2289
2305
|
ex: TanakaExample;
|
|
2290
2306
|
partIndex: number;
|
|
2291
2307
|
referenceIDMatch?: true | undefined;
|
|
2292
2308
|
includesTranslation?: true | undefined;
|
|
2293
2309
|
}[] = [];
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
new Set<string>();
|
|
2297
|
-
const seenPhrases: Set<string> = new Set<string>();
|
|
2310
|
+
|
|
2311
|
+
let hasReadingMatchingKanjiFormWithTranslation: boolean = false;
|
|
2298
2312
|
|
|
2299
2313
|
for (const example of exampleList)
|
|
2300
2314
|
for (let i: number = 0; i < example.parts.length; i++) {
|
|
@@ -2324,12 +2338,15 @@ export function getWord(
|
|
|
2324
2338
|
ex: example,
|
|
2325
2339
|
partIndex: i,
|
|
2326
2340
|
form: part.baseForm,
|
|
2341
|
+
...(referenceIDMatch ? { referenceIDMatch: true } : {}),
|
|
2327
2342
|
...(includesTranslation ? { includesTranslation: true } : {}),
|
|
2328
2343
|
});
|
|
2329
2344
|
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2345
|
+
if (
|
|
2346
|
+
!hasReadingMatchingKanjiFormWithTranslation &&
|
|
2347
|
+
includesTranslation
|
|
2348
|
+
)
|
|
2349
|
+
hasReadingMatchingKanjiFormWithTranslation = true;
|
|
2333
2350
|
} else
|
|
2334
2351
|
kanjiFormExamples.push({
|
|
2335
2352
|
ex: example,
|
|
@@ -2353,9 +2370,7 @@ export function getWord(
|
|
|
2353
2370
|
ex: example,
|
|
2354
2371
|
partIndex: i,
|
|
2355
2372
|
...(referenceIDMatch ? { referenceIDMatch: true } : {}),
|
|
2356
|
-
...(
|
|
2357
|
-
? { includesTranslation: true }
|
|
2358
|
-
: {}),
|
|
2373
|
+
...(includesTranslation ? { includesTranslation: true } : {}),
|
|
2359
2374
|
});
|
|
2360
2375
|
|
|
2361
2376
|
seenPhrases.add(example.phrase);
|
|
@@ -2364,36 +2379,39 @@ export function getWord(
|
|
|
2364
2379
|
}
|
|
2365
2380
|
}
|
|
2366
2381
|
|
|
2367
|
-
if (
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
(
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
}
|
|
2382
|
+
if (readingMatchingKanjiFormExamples.length > 0) {
|
|
2383
|
+
if (hasReadingMatchingKanjiFormWithTranslation)
|
|
2384
|
+
readingMatchingKanjiFormExamples =
|
|
2385
|
+
readingMatchingKanjiFormExamples.filter(
|
|
2386
|
+
(ex: {
|
|
2387
|
+
ex: TanakaExample;
|
|
2388
|
+
partIndex: number;
|
|
2389
|
+
form: string;
|
|
2390
|
+
referenceIDMatch?: true | undefined;
|
|
2391
|
+
includesTranslation?: true | undefined;
|
|
2392
|
+
}) =>
|
|
2393
|
+
ex.includesTranslation === true ||
|
|
2394
|
+
ex.referenceIDMatch === true ||
|
|
2395
|
+
ex.ex.parts.some(
|
|
2396
|
+
(part: ExamplePart) =>
|
|
2397
|
+
ex.form === part.baseForm && part.glossNumber !== undefined,
|
|
2398
|
+
),
|
|
2399
|
+
);
|
|
2386
2400
|
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
ex: TanakaExample;
|
|
2390
|
-
partIndex: number;
|
|
2391
|
-
form: string;
|
|
2392
|
-
includesTranslation?: true | undefined;
|
|
2393
|
-
}) => ex.includesTranslation === true,
|
|
2394
|
-
);
|
|
2401
|
+
kanjiFormExamples.length = 0;
|
|
2402
|
+
}
|
|
2395
2403
|
|
|
2396
|
-
if (
|
|
2404
|
+
if (
|
|
2405
|
+
kanjiFormExamples.length > 0 &&
|
|
2406
|
+
kanjiFormExamples.some(
|
|
2407
|
+
(ex: {
|
|
2408
|
+
ex: TanakaExample;
|
|
2409
|
+
partIndex: number;
|
|
2410
|
+
form: string;
|
|
2411
|
+
includesTranslation?: true | undefined;
|
|
2412
|
+
}) => ex.includesTranslation === true,
|
|
2413
|
+
)
|
|
2414
|
+
)
|
|
2397
2415
|
kanjiFormExamples = kanjiFormExamples.filter(
|
|
2398
2416
|
(ex: {
|
|
2399
2417
|
ex: TanakaExample;
|
|
@@ -2401,14 +2419,11 @@ export function getWord(
|
|
|
2401
2419
|
form: string;
|
|
2402
2420
|
includesTranslation?: true | undefined;
|
|
2403
2421
|
}) =>
|
|
2404
|
-
|
|
2405
|
-
(
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
readingMatchingKanjiForms.has(part.baseForm) &&
|
|
2410
|
-
part.glossNumber !== undefined,
|
|
2411
|
-
)),
|
|
2422
|
+
ex.includesTranslation === true ||
|
|
2423
|
+
ex.ex.parts.some(
|
|
2424
|
+
(part: ExamplePart) =>
|
|
2425
|
+
ex.form === part.baseForm && part.glossNumber !== undefined,
|
|
2426
|
+
),
|
|
2412
2427
|
);
|
|
2413
2428
|
|
|
2414
2429
|
if (
|
|
@@ -2431,16 +2446,24 @@ export function getWord(
|
|
|
2431
2446
|
}) => ex.includesTranslation === true || ex.referenceIDMatch === true,
|
|
2432
2447
|
);
|
|
2433
2448
|
|
|
2434
|
-
let wordExamples:
|
|
2449
|
+
let wordExamples: (
|
|
2450
|
+
| {
|
|
2451
|
+
ex: TanakaExample;
|
|
2452
|
+
partIndex: number;
|
|
2453
|
+
form: string;
|
|
2454
|
+
includesTranslation?: true | undefined;
|
|
2455
|
+
}
|
|
2456
|
+
| {
|
|
2457
|
+
ex: TanakaExample;
|
|
2458
|
+
partIndex: number;
|
|
2459
|
+
referenceIDMatch?: true | undefined;
|
|
2460
|
+
includesTranslation?: true | undefined;
|
|
2461
|
+
}
|
|
2462
|
+
)[] = [
|
|
2435
2463
|
...(word.kanjiForms !== undefined
|
|
2436
2464
|
? [...readingMatchingKanjiFormExamples, ...kanjiFormExamples]
|
|
2437
2465
|
: readingExamples),
|
|
2438
|
-
]
|
|
2439
|
-
(
|
|
2440
|
-
a: { ex: TanakaExample; partIndex: number },
|
|
2441
|
-
b: { ex: TanakaExample; partIndex: number },
|
|
2442
|
-
) => a.ex.phrase.length - b.ex.phrase.length,
|
|
2443
|
-
);
|
|
2466
|
+
];
|
|
2444
2467
|
|
|
2445
2468
|
seenPhrases.clear();
|
|
2446
2469
|
|
|
@@ -2473,8 +2496,21 @@ export function getWord(
|
|
|
2473
2496
|
if (glossSpecificExamples.length > 0) {
|
|
2474
2497
|
if (glossSpecificExamples.length < 5) {
|
|
2475
2498
|
wordExamples = wordExamples.filter(
|
|
2476
|
-
(
|
|
2477
|
-
|
|
2499
|
+
(
|
|
2500
|
+
ex:
|
|
2501
|
+
| {
|
|
2502
|
+
ex: TanakaExample;
|
|
2503
|
+
partIndex: number;
|
|
2504
|
+
form: string;
|
|
2505
|
+
includesTranslation?: true | undefined;
|
|
2506
|
+
}
|
|
2507
|
+
| {
|
|
2508
|
+
ex: TanakaExample;
|
|
2509
|
+
partIndex: number;
|
|
2510
|
+
referenceIDMatch?: true | undefined;
|
|
2511
|
+
includesTranslation?: true | undefined;
|
|
2512
|
+
},
|
|
2513
|
+
) => !seenPhrases.has(ex.ex.phrase),
|
|
2478
2514
|
);
|
|
2479
2515
|
|
|
2480
2516
|
if (wordExamples.length > 0)
|
|
@@ -2493,14 +2529,30 @@ export function getWord(
|
|
|
2493
2529
|
glossSpecificExamples.length === 0
|
|
2494
2530
|
? wordExamples.slice(0, 5)
|
|
2495
2531
|
: wordExamples
|
|
2496
|
-
).map(
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2532
|
+
).map(
|
|
2533
|
+
(
|
|
2534
|
+
ex:
|
|
2535
|
+
| {
|
|
2536
|
+
ex: TanakaExample;
|
|
2537
|
+
partIndex: number;
|
|
2538
|
+
form: string;
|
|
2539
|
+
includesTranslation?: true | undefined;
|
|
2540
|
+
}
|
|
2541
|
+
| {
|
|
2542
|
+
ex: TanakaExample;
|
|
2543
|
+
partIndex: number;
|
|
2544
|
+
referenceIDMatch?: true | undefined;
|
|
2545
|
+
includesTranslation?: true | undefined;
|
|
2546
|
+
},
|
|
2547
|
+
) => ({
|
|
2548
|
+
phrase: ex.ex.furigana ?? ex.ex.phrase,
|
|
2549
|
+
translation: ex.ex.translation,
|
|
2550
|
+
originalPhrase: ex.ex.phrase,
|
|
2551
|
+
...(ex.ex.glossNumber !== undefined
|
|
2552
|
+
? { glossNumber: ex.ex.glossNumber }
|
|
2553
|
+
: {}),
|
|
2554
|
+
}),
|
|
2555
|
+
);
|
|
2504
2556
|
|
|
2505
2557
|
word.tags!.push("word::has_phrases");
|
|
2506
2558
|
if (glossSpecificExamples.length > 0)
|