henkan 2.4.4 → 2.4.6

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.
@@ -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
  > **generateAnkiNotesFile**(`list`, `defaultNoteInfo?`): `string`
10
10
 
11
- Defined in: [utils.ts:2941](https://github.com/Ronokof/Henkan/blob/main/src/utils.ts#L2941)
11
+ Defined in: [utils.ts:2951](https://github.com/Ronokof/Henkan/blob/main/src/utils.ts#L2951)
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "henkan",
3
- "version": "2.4.4",
3
+ "version": "2.4.6",
4
4
  "description": "Converter & Simplifier for JMdict, KANJIDIC, KRADFILE2, RADKFILE2 and Tanaka Corpus",
5
5
  "keywords": [
6
6
  "fjsd",
@@ -71,21 +71,21 @@
71
71
  "update:pkgs": "node ./scripts/update-packages.cjs"
72
72
  },
73
73
  "devDependencies": {
74
- "@types/node": "^24.10.4",
75
- "@typescript-eslint/eslint-plugin": "^8.52.0",
76
- "@typescript-eslint/parser": "^8.52.0",
77
- "@vitest/coverage-v8": "^4.0.16",
74
+ "@types/node": "^24.10.9",
75
+ "@typescript-eslint/eslint-plugin": "^8.53.1",
76
+ "@typescript-eslint/parser": "^8.53.1",
77
+ "@vitest/coverage-v8": "^4.0.18",
78
78
  "esbuild": "^0.27.2",
79
79
  "eslint": "^9.39.2",
80
80
  "eslint-plugin-import": "^2.32.0",
81
- "eslint-plugin-jsdoc": "^62.0.0",
82
- "eslint-plugin-prettier": "^5.5.4",
83
- "prettier": "^3.7.4",
81
+ "eslint-plugin-jsdoc": "^62.4.0",
82
+ "eslint-plugin-prettier": "^5.5.5",
83
+ "prettier": "^3.8.1",
84
84
  "rimraf": "^6.1.2",
85
- "typedoc": "^0.28.15",
85
+ "typedoc": "^0.28.16",
86
86
  "typedoc-plugin-markdown": "^4.9.0",
87
87
  "typescript": "^5.9.3",
88
- "vitest": "^4.0.16"
88
+ "vitest": "^4.0.18"
89
89
  },
90
90
  "dependencies": {
91
91
  "@types/xml2js": "^0.4.14",
package/src/utils.ts CHANGED
@@ -2512,23 +2512,30 @@ export function generateAnkiNote(entry: Result): string[] {
2512
2512
  : "";
2513
2513
  const readingsField: string = `${firstReading}${otherReadings}`;
2514
2514
 
2515
- const firstReadingWithoutAudio: string = createEntry(
2516
- `<span class="word word-reading">${entry.readings[0]!.reading}</span>`,
2517
- entry.readings[0]!.notes,
2518
- );
2519
- const otherReadingsWithoutAudio: string =
2520
- entry.readings.length > 1
2521
- ? `<details><summary>Show other readings</summary>${entry.readings
2522
- .slice(1)
2523
- .map((readingEntry: Reading) =>
2524
- createEntry(
2525
- `<span class="word word-reading">${readingEntry.reading}</span>`,
2526
- readingEntry.notes,
2527
- ),
2528
- )
2529
- .join("")}</details>`
2530
- : "";
2531
- const readingsFieldWithoutAudio: string = `${firstReadingWithoutAudio}${otherReadingsWithoutAudio}`;
2515
+ let readingsFieldWithoutAudio: string =
2516
+ '<div id="no-r-audio" style="display: none"></div>';
2517
+ let hasAudio: boolean = false;
2518
+
2519
+ if (entry.readings.some((r: Reading) => r.audio !== undefined)) {
2520
+ const firstReadingWithoutAudio: string = createEntry(
2521
+ `<span class="word word-reading">${entry.readings[0]!.reading}</span>`,
2522
+ entry.readings[0]!.notes,
2523
+ );
2524
+ const otherReadingsWithoutAudio: string =
2525
+ entry.readings.length > 1
2526
+ ? `<details><summary>Show other readings</summary>${entry.readings
2527
+ .slice(1)
2528
+ .map((readingEntry: Reading) =>
2529
+ createEntry(
2530
+ `<span class="word word-reading">${readingEntry.reading}</span>`,
2531
+ readingEntry.notes,
2532
+ ),
2533
+ )
2534
+ .join("")}</details>`
2535
+ : "";
2536
+ readingsFieldWithoutAudio = `${firstReadingWithoutAudio}${otherReadingsWithoutAudio}`;
2537
+ hasAudio = true;
2538
+ }
2532
2539
 
2533
2540
  const firstKanjiForm: string | undefined =
2534
2541
  entry.kanjiForms !== undefined
@@ -2562,7 +2569,7 @@ export function generateAnkiNote(entry: Result): string[] {
2562
2569
  const kanjiFormsField: string =
2563
2570
  firstKanjiForm !== undefined
2564
2571
  ? `${firstKanjiForm}${otherKanjiForms}`
2565
- : '<span class="word word-kanjiform">(no kanji forms)</span>';
2572
+ : '<span class="word word-kanjiform" id="no-kanjiforms">(no kanji forms)</span>';
2566
2573
 
2567
2574
  const firstThreeTranslations: string = entry.translations
2568
2575
  .slice(0, 3)
@@ -2663,7 +2670,7 @@ export function generateAnkiNote(entry: Result): string[] {
2663
2670
  const phrasesField: string =
2664
2671
  firstFivePhrases !== undefined
2665
2672
  ? `${firstFivePhrases}${otherPhrases}`
2666
- : '<span class="word word-phrase">(no phrases) (Search on dictionaries!)</span>';
2673
+ : '<span class="word word-phrase" id="no-phrases">(no phrases)</span>';
2667
2674
 
2668
2675
  const firstThreeDefinitions: string | undefined = entry.definitions
2669
2676
  ?.slice(0, 3)
@@ -2691,18 +2698,21 @@ export function generateAnkiNote(entry: Result): string[] {
2691
2698
  const definitionsField: string =
2692
2699
  firstThreeDefinitions !== undefined
2693
2700
  ? `${firstThreeDefinitions}${otherDefinitions}`
2694
- : '<span class="word word-definition">(no definitions)</span>';
2701
+ : '<span class="word word-definition" id="no-definitions">(no definitions)</span>';
2695
2702
 
2696
- const searchField: string = [
2697
- entry.readings.map((r: Reading) => r.reading),
2698
- entry.kanjiForms?.map((kf: KanjiForm) => kf.kanjiForm) ?? [],
2699
- ].join(" ");
2703
+ const searchField: string = `${entry.readings.map((r: Reading) => r.reading).join(" ")}${entry.kanjiForms !== undefined ? ` ${entry.kanjiForms.map((kf: KanjiForm) => kf.kanjiForm).join(" ")}` : ""} ${entry.id}`;
2700
2704
 
2701
2705
  fields.push(
2702
2706
  ...(entry.kanjiForms !== undefined && !entry.usuallyInKana
2703
- ? [kanjiFormsField, readingsFieldWithoutAudio]
2704
- : [readingsFieldWithoutAudio, kanjiFormsField]),
2705
- readingsField,
2707
+ ? [
2708
+ `${kanjiFormsField}<div id="kf-pos" style="display: none" data-pos="1"></div>`,
2709
+ `${hasAudio ? readingsFieldWithoutAudio : readingsField}<div id="r-pos" style="display: none" data-pos="2"></div>`,
2710
+ ]
2711
+ : [
2712
+ `${kanjiFormsField}<div id="kf-pos" style="display: none" data-pos="2"></div>`,
2713
+ `${hasAudio ? readingsFieldWithoutAudio : readingsField}<div id="r-pos" style="display: none" data-pos="1"></div>`,
2714
+ ]),
2715
+ `${hasAudio ? readingsField : readingsFieldWithoutAudio}<div id="r-pos" style="display: none" data-pos="${entry.kanjiForms !== undefined && !entry.usuallyInKana ? "2" : "1"}"></div>`,
2706
2716
  translationsField,
2707
2717
  phrasesField,
2708
2718
  definitionsField,
@@ -2715,7 +2725,7 @@ export function generateAnkiNote(entry: Result): string[] {
2715
2725
  ),
2716
2726
  )
2717
2727
  .join("")
2718
- : '<span class="word word-kanji">(no kanji)</span>',
2728
+ : '<span class="word word-kanji" id="no-kanji">(no kanji)</span>',
2719
2729
  searchField,
2720
2730
  ...(entry.tags !== undefined && entry.tags.length > 0
2721
2731
  ? [
@@ -2748,7 +2758,7 @@ export function generateAnkiNote(entry: Result): string[] {
2748
2758
  ? createEntry(
2749
2759
  `<span class="radical radical-mnemonic">${entry.mnemonic}</span>`,
2750
2760
  )
2751
- : '<span class="radical radical-mnemonic">(no mnemonic) (Come up with your own!)</span>',
2761
+ : '<span class="radical radical-mnemonic" id="no-mnemonic">(no mnemonic)</span>',
2752
2762
  entry.kanji !== undefined
2753
2763
  ? entry.kanji
2754
2764
  .map((kanji: Kanji) =>
@@ -2757,15 +2767,15 @@ export function generateAnkiNote(entry: Result): string[] {
2757
2767
  ),
2758
2768
  )
2759
2769
  .join("")
2760
- : '<span class="radical radical-kanji">(no "used-in" kanji)</span>',
2770
+ : '<span class="radical radical-kanji" id="no-kanji">(no "used-in" kanji)</span>',
2761
2771
  entry.strokes !== undefined
2762
2772
  ? createEntry(
2763
2773
  `<span class="radical radical-strokes">${entry.strokes}<br>${entry.svg !== undefined ? `<img class="radical radical-stroke-order" src="${entry.svg}" alt="${entry.radical} stroke order SVG">` : "(no stroke order SVG available)"}</span>`,
2764
2774
  )
2765
- : '<span class="radical radical-strokes">(no stroke number)</span>',
2775
+ : '<span class="radical radical-strokes" id="no-strokes">(no stroke number)</span>',
2766
2776
  entry.sources !== undefined
2767
2777
  ? `<span class="radical radical-source">${entry.sources.map((source: string, index: number) => `<a href="${source}" target="_blank">Source ${index + 1}</a>`).join("<br>")}</span>`
2768
- : '<span class="radical radical-source">(no sources)</span>',
2778
+ : '<span class="radical radical-source" id="no-sources">(no sources)</span>',
2769
2779
  ...(entry.tags !== undefined && entry.tags.length > 0
2770
2780
  ? [
2771
2781
  entry.tags
@@ -2788,7 +2798,7 @@ export function generateAnkiNote(entry: Result): string[] {
2788
2798
  ),
2789
2799
  )
2790
2800
  .join("")
2791
- : '<span class="kanji kanji-meaning">(no meanings)</span>',
2801
+ : '<span class="kanji kanji-meaning" id="no-meanings">(no meanings)</span>',
2792
2802
  entry.onyomi !== undefined
2793
2803
  ? entry.onyomi
2794
2804
  .map((onyomiEntry: string) =>
@@ -2797,7 +2807,7 @@ export function generateAnkiNote(entry: Result): string[] {
2797
2807
  ),
2798
2808
  )
2799
2809
  .join("")
2800
- : `<span class="kanji kanji-onyomi">(no onyomi) ${entry.kokuji === true ? "(kokuji)" : ""}</span>`,
2810
+ : `<span class="kanji kanji-onyomi" id="no-onyomi">(no onyomi) ${entry.kokuji === true ? "(kokuji)" : ""}</span>`,
2801
2811
  entry.kunyomi !== undefined
2802
2812
  ? entry.kunyomi
2803
2813
  .map((kunyomiEntry: string) =>
@@ -2806,7 +2816,7 @@ export function generateAnkiNote(entry: Result): string[] {
2806
2816
  ),
2807
2817
  )
2808
2818
  .join("")
2809
- : `<span class="kanji kanji-kunyomi">(no kunyomi) ${entry.kokuji === true ? "(kokuji)" : ""}</span>`,
2819
+ : `<span class="kanji kanji-kunyomi" id="no-kunyomi">(no kunyomi) ${entry.kokuji === true ? "(kokuji)" : ""}</span>`,
2810
2820
  entry.nanori !== undefined
2811
2821
  ? entry.nanori
2812
2822
  .map((nanoriEntry: string) =>
@@ -2815,7 +2825,7 @@ export function generateAnkiNote(entry: Result): string[] {
2815
2825
  ),
2816
2826
  )
2817
2827
  .join("")
2818
- : '<span class="kanji kanji-nanori">(no nanori)</span>',
2828
+ : '<span class="kanji kanji-nanori" id="no-nanori">(no nanori)</span>',
2819
2829
  entry.components !== undefined
2820
2830
  ? entry.components
2821
2831
  .map((componentEntry: KanjiComponent) =>
@@ -2824,12 +2834,12 @@ export function generateAnkiNote(entry: Result): string[] {
2824
2834
  ),
2825
2835
  )
2826
2836
  .join("")
2827
- : '<span class="kanji kanji-component">(no components)</span>',
2837
+ : '<span class="kanji kanji-component" id="no-components">(no components)</span>',
2828
2838
  entry.mnemonic !== undefined
2829
2839
  ? createEntry(
2830
2840
  `<span class="kanji kanji-mnemonic">${entry.mnemonic}</span>`,
2831
2841
  )
2832
- : '<span class="kanji kanji-mnemonic">(no mnemonic) (Come up with your own!)</span>',
2842
+ : '<span class="kanji kanji-mnemonic" id="no-mnemonic">(no mnemonic)</span>',
2833
2843
  entry.words !== undefined
2834
2844
  ? entry.words
2835
2845
  .map((word: Word) =>
@@ -2838,15 +2848,15 @@ export function generateAnkiNote(entry: Result): string[] {
2838
2848
  ),
2839
2849
  )
2840
2850
  .join("")
2841
- : '<span class="kanji kanji-words">(no words) (Search on dictionaries!)</span>',
2851
+ : '<span class="kanji kanji-words" id="no-words">(no words)</span>',
2842
2852
  entry.strokes !== undefined
2843
2853
  ? createEntry(
2844
2854
  `<span class="kanji kanji-strokes">${entry.strokes}<br>${entry.svg !== undefined ? `<img class="kanji kanji-stroke-order" src="${entry.svg}" alt="${entry.kanji} stroke order SVG">` : "(no stroke order SVG available)"}</span>`,
2845
2855
  )
2846
- : '<span class="kanji kanji-strokes">(no stroke number)</span>',
2856
+ : '<span class="kanji kanji-strokes" id="no-strokes">(no stroke number)</span>',
2847
2857
  entry.source !== undefined
2848
2858
  ? `<span class="kanji kanji-source"><a href="${entry.source}" target="_blank">Source</a></span>`
2849
- : '<span class="kanji kanji-source">(no components/mnemonic source)</span>',
2859
+ : '<span class="kanji kanji-source" id="no-source">(no components/mnemonic source)</span>',
2850
2860
  ...(entry.tags !== undefined && entry.tags.length > 0
2851
2861
  ? [
2852
2862
  entry.tags
@@ -2891,7 +2901,7 @@ export function generateAnkiNote(entry: Result): string[] {
2891
2901
  ),
2892
2902
  )
2893
2903
  .join("")
2894
- : '<span class="grammar grammar-reading">(no additional readings)</span>',
2904
+ : '<span class="grammar grammar-reading" id="no-readings">(no additional readings)</span>',
2895
2905
  createEntry(
2896
2906
  `<span class="grammar grammar-meaning">${entry.meaning.meaning}${entry.meaning.example !== undefined && entry.meaning.example.length > 0 ? `<br><span class="grammar grammar-meaning-example">${entry.meaning.example}</span>` : ""}</span>`,
2897
2907
  ),
@@ -2903,7 +2913,7 @@ export function generateAnkiNote(entry: Result): string[] {
2903
2913
  ),
2904
2914
  )
2905
2915
  .join("")
2906
- : '<span class="grammar grammar-usage">(no usages)</span>',
2916
+ : '<span class="grammar grammar-usage" id="no-usages">(no usages)</span>',
2907
2917
  entry.phrases !== undefined
2908
2918
  ? entry.phrases
2909
2919
  .map((phraseEntry: Phrase) =>
@@ -2914,10 +2924,10 @@ export function generateAnkiNote(entry: Result): string[] {
2914
2924
  ),
2915
2925
  )
2916
2926
  .join("")
2917
- : '<span class="grammar grammar-phrase">(no phrases) (Search on dictionaries!)</span>',
2927
+ : '<span class="grammar grammar-phrase" id="no-phrases">(no phrases)</span>',
2918
2928
  entry.source !== undefined
2919
2929
  ? `<span class="grammar grammar-source"><a href="${entry.source}" target="_blank">Source</a></span>`
2920
- : '<span class="grammar grammar-source">(no source)</span>',
2930
+ : '<span class="grammar grammar-source" id="no-source">(no source)</span>',
2921
2931
  ...(entry.tags !== undefined && entry.tags.length > 0
2922
2932
  ? [
2923
2933
  entry.tags