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.
package/dist/index.cjs.js CHANGED
@@ -2741,17 +2741,22 @@ function generateAnkiNote(entry) {
2741
2741
  )
2742
2742
  ).join("")}</details>` : "";
2743
2743
  const readingsField = `${firstReading}${otherReadings}`;
2744
- const firstReadingWithoutAudio = createEntry(
2745
- `<span class="word word-reading">${entry.readings[0].reading}</span>`,
2746
- entry.readings[0].notes
2747
- );
2748
- const otherReadingsWithoutAudio = entry.readings.length > 1 ? `<details><summary>Show other readings</summary>${entry.readings.slice(1).map(
2749
- (readingEntry) => createEntry(
2750
- `<span class="word word-reading">${readingEntry.reading}</span>`,
2751
- readingEntry.notes
2752
- )
2753
- ).join("")}</details>` : "";
2754
- const readingsFieldWithoutAudio = `${firstReadingWithoutAudio}${otherReadingsWithoutAudio}`;
2744
+ let readingsFieldWithoutAudio = '<div id="no-r-audio" style="display: none"></div>';
2745
+ let hasAudio = false;
2746
+ if (entry.readings.some((r) => r.audio !== void 0)) {
2747
+ const firstReadingWithoutAudio = createEntry(
2748
+ `<span class="word word-reading">${entry.readings[0].reading}</span>`,
2749
+ entry.readings[0].notes
2750
+ );
2751
+ const otherReadingsWithoutAudio = entry.readings.length > 1 ? `<details><summary>Show other readings</summary>${entry.readings.slice(1).map(
2752
+ (readingEntry) => createEntry(
2753
+ `<span class="word word-reading">${readingEntry.reading}</span>`,
2754
+ readingEntry.notes
2755
+ )
2756
+ ).join("")}</details>` : "";
2757
+ readingsFieldWithoutAudio = `${firstReadingWithoutAudio}${otherReadingsWithoutAudio}`;
2758
+ hasAudio = true;
2759
+ }
2755
2760
  const firstKanjiForm = entry.kanjiForms !== void 0 ? createEntry(
2756
2761
  `<span class="word word-kanjiform"><ruby><rb>${entry.kanjiForms[0].kanjiForm}</rb><rt>${entry.readings[0].reading}</rt></ruby></span>`,
2757
2762
  entry.kanjiForms[0].notes
@@ -2767,7 +2772,7 @@ function generateAnkiNote(entry) {
2767
2772
  kanjiFormEntry.notes
2768
2773
  );
2769
2774
  }).join("")}</details>` : "";
2770
- const kanjiFormsField = firstKanjiForm !== void 0 ? `${firstKanjiForm}${otherKanjiForms}` : '<span class="word word-kanjiform">(no kanji forms)</span>';
2775
+ const kanjiFormsField = firstKanjiForm !== void 0 ? `${firstKanjiForm}${otherKanjiForms}` : '<span class="word word-kanjiform" id="no-kanjiforms">(no kanji forms)</span>';
2771
2776
  const firstThreeTranslations = entry.translations.slice(0, 3).map(
2772
2777
  (translationEntry, index) => createEntry(
2773
2778
  `<span class="word word-translation">${translationEntry.translation}</span>`,
@@ -2811,7 +2816,7 @@ function generateAnkiNote(entry) {
2811
2816
  ) ? true : void 0
2812
2817
  );
2813
2818
  }).filter((phrase) => phrase !== "null").join("")}</details>` : "";
2814
- const phrasesField = firstFivePhrases !== void 0 ? `${firstFivePhrases}${otherPhrases}` : '<span class="word word-phrase">(no phrases) (Search on dictionaries!)</span>';
2819
+ const phrasesField = firstFivePhrases !== void 0 ? `${firstFivePhrases}${otherPhrases}` : '<span class="word word-phrase" id="no-phrases">(no phrases)</span>';
2815
2820
  const firstThreeDefinitions = entry.definitions?.slice(0, 3).map(
2816
2821
  (definitionEntry) => createEntry(
2817
2822
  `<span class="word word-definition${definitionEntry.mayNotBeAccurate === 2 ? " mnba2" : definitionEntry.mayNotBeAccurate === 1 ? " mnba1" : ""}"><span class="word word-definition-original">${definitionEntry.definition}</span><span class="word word-definition-furigana">${definitionEntry.furigana ?? definitionEntry.definition}</span></span>`
@@ -2822,14 +2827,17 @@ function generateAnkiNote(entry) {
2822
2827
  `<span class="word word-definition${definitionEntry.mayNotBeAccurate === 2 ? " mnba2" : definitionEntry.mayNotBeAccurate === 1 ? " mnba1" : ""}"><span class="word word-definition-original">${definitionEntry.definition}</span><span class="word word-definition-furigana">${definitionEntry.furigana ?? definitionEntry.definition}</span></span>`
2823
2828
  ) : "null"
2824
2829
  ).filter((definition) => definition !== "null").join("")}</details>` : "";
2825
- const definitionsField = firstThreeDefinitions !== void 0 ? `${firstThreeDefinitions}${otherDefinitions}` : '<span class="word word-definition">(no definitions)</span>';
2826
- const searchField = [
2827
- entry.readings.map((r) => r.reading),
2828
- entry.kanjiForms?.map((kf) => kf.kanjiForm) ?? []
2829
- ].join(" ");
2830
+ const definitionsField = firstThreeDefinitions !== void 0 ? `${firstThreeDefinitions}${otherDefinitions}` : '<span class="word word-definition" id="no-definitions">(no definitions)</span>';
2831
+ const searchField = `${entry.readings.map((r) => r.reading).join(" ")}${entry.kanjiForms !== void 0 ? ` ${entry.kanjiForms.map((kf) => kf.kanjiForm).join(" ")}` : ""} ${entry.id}`;
2830
2832
  fields.push(
2831
- ...entry.kanjiForms !== void 0 && !entry.usuallyInKana ? [kanjiFormsField, readingsFieldWithoutAudio] : [readingsFieldWithoutAudio, kanjiFormsField],
2832
- readingsField,
2833
+ ...entry.kanjiForms !== void 0 && !entry.usuallyInKana ? [
2834
+ `${kanjiFormsField}<div id="kf-pos" style="display: none" data-pos="1"></div>`,
2835
+ `${hasAudio ? readingsFieldWithoutAudio : readingsField}<div id="r-pos" style="display: none" data-pos="2"></div>`
2836
+ ] : [
2837
+ `${kanjiFormsField}<div id="kf-pos" style="display: none" data-pos="2"></div>`,
2838
+ `${hasAudio ? readingsFieldWithoutAudio : readingsField}<div id="r-pos" style="display: none" data-pos="1"></div>`
2839
+ ],
2840
+ `${hasAudio ? readingsField : readingsFieldWithoutAudio}<div id="r-pos" style="display: none" data-pos="${entry.kanjiForms !== void 0 && !entry.usuallyInKana ? "2" : "1"}"></div>`,
2833
2841
  translationsField,
2834
2842
  phrasesField,
2835
2843
  definitionsField,
@@ -2838,7 +2846,7 @@ function generateAnkiNote(entry) {
2838
2846
  `<span class="word word-kanji">${kanjiEntry.kanji}${kanjiEntry.meanings === void 0 ? " (no meanings)" : ""}</span>`,
2839
2847
  kanjiEntry.meanings
2840
2848
  )
2841
- ).join("") : '<span class="word word-kanji">(no kanji)</span>',
2849
+ ).join("") : '<span class="word word-kanji" id="no-kanji">(no kanji)</span>',
2842
2850
  searchField,
2843
2851
  ...entry.tags !== void 0 && entry.tags.length > 0 ? [
2844
2852
  entry.tags.map(
@@ -2862,16 +2870,16 @@ function generateAnkiNote(entry) {
2862
2870
  ).join(""),
2863
2871
  entry.mnemonic !== void 0 ? createEntry(
2864
2872
  `<span class="radical radical-mnemonic">${entry.mnemonic}</span>`
2865
- ) : '<span class="radical radical-mnemonic">(no mnemonic) (Come up with your own!)</span>',
2873
+ ) : '<span class="radical radical-mnemonic" id="no-mnemonic">(no mnemonic)</span>',
2866
2874
  entry.kanji !== void 0 ? entry.kanji.map(
2867
2875
  (kanji) => createEntry(
2868
2876
  `<span class="radical radical-kanji">${kanji.kanji}${kanji.meanings !== void 0 && kanji.meanings.length > 0 ? ` - ${kanji.meanings[0]}` : ""}</span>`
2869
2877
  )
2870
- ).join("") : '<span class="radical radical-kanji">(no "used-in" kanji)</span>',
2878
+ ).join("") : '<span class="radical radical-kanji" id="no-kanji">(no "used-in" kanji)</span>',
2871
2879
  entry.strokes !== void 0 ? createEntry(
2872
2880
  `<span class="radical radical-strokes">${entry.strokes}<br>${entry.svg !== void 0 ? `<img class="radical radical-stroke-order" src="${entry.svg}" alt="${entry.radical} stroke order SVG">` : "(no stroke order SVG available)"}</span>`
2873
- ) : '<span class="radical radical-strokes">(no stroke number)</span>',
2874
- entry.sources !== void 0 ? `<span class="radical radical-source">${entry.sources.map((source, index) => `<a href="${source}" target="_blank">Source ${index + 1}</a>`).join("<br>")}</span>` : '<span class="radical radical-source">(no sources)</span>',
2881
+ ) : '<span class="radical radical-strokes" id="no-strokes">(no stroke number)</span>',
2882
+ entry.sources !== void 0 ? `<span class="radical radical-source">${entry.sources.map((source, index) => `<a href="${source}" target="_blank">Source ${index + 1}</a>`).join("<br>")}</span>` : '<span class="radical radical-source" id="no-sources">(no sources)</span>',
2875
2883
  ...entry.tags !== void 0 && entry.tags.length > 0 ? [
2876
2884
  entry.tags.map(
2877
2885
  (tag) => tag.trim().toLowerCase().replaceAll(" ", "::")
@@ -2885,39 +2893,39 @@ function generateAnkiNote(entry) {
2885
2893
  (meaningEntry) => createEntry(
2886
2894
  `<span class="kanji kanji-meaning">${meaningEntry}</span>`
2887
2895
  )
2888
- ).join("") : '<span class="kanji kanji-meaning">(no meanings)</span>',
2896
+ ).join("") : '<span class="kanji kanji-meaning" id="no-meanings">(no meanings)</span>',
2889
2897
  entry.onyomi !== void 0 ? entry.onyomi.map(
2890
2898
  (onyomiEntry) => createEntry(
2891
2899
  `<span class="kanji kanji-onyomi">${onyomiEntry}</span>`
2892
2900
  )
2893
- ).join("") : `<span class="kanji kanji-onyomi">(no onyomi) ${entry.kokuji === true ? "(kokuji)" : ""}</span>`,
2901
+ ).join("") : `<span class="kanji kanji-onyomi" id="no-onyomi">(no onyomi) ${entry.kokuji === true ? "(kokuji)" : ""}</span>`,
2894
2902
  entry.kunyomi !== void 0 ? entry.kunyomi.map(
2895
2903
  (kunyomiEntry) => createEntry(
2896
2904
  `<span class="kanji kanji-kunyomi">${kunyomiEntry}</span>`
2897
2905
  )
2898
- ).join("") : `<span class="kanji kanji-kunyomi">(no kunyomi) ${entry.kokuji === true ? "(kokuji)" : ""}</span>`,
2906
+ ).join("") : `<span class="kanji kanji-kunyomi" id="no-kunyomi">(no kunyomi) ${entry.kokuji === true ? "(kokuji)" : ""}</span>`,
2899
2907
  entry.nanori !== void 0 ? entry.nanori.map(
2900
2908
  (nanoriEntry) => createEntry(
2901
2909
  `<span class="kanji kanji-nanori">${nanoriEntry}</span>`
2902
2910
  )
2903
- ).join("") : '<span class="kanji kanji-nanori">(no nanori)</span>',
2911
+ ).join("") : '<span class="kanji kanji-nanori" id="no-nanori">(no nanori)</span>',
2904
2912
  entry.components !== void 0 ? entry.components.map(
2905
2913
  (componentEntry) => createEntry(
2906
2914
  `<span class="kanji kanji-component">${componentEntry.component}${componentEntry.meaning !== void 0 ? ` - ${componentEntry.meaning}` : ""}</span>`
2907
2915
  )
2908
- ).join("") : '<span class="kanji kanji-component">(no components)</span>',
2916
+ ).join("") : '<span class="kanji kanji-component" id="no-components">(no components)</span>',
2909
2917
  entry.mnemonic !== void 0 ? createEntry(
2910
2918
  `<span class="kanji kanji-mnemonic">${entry.mnemonic}</span>`
2911
- ) : '<span class="kanji kanji-mnemonic">(no mnemonic) (Come up with your own!)</span>',
2919
+ ) : '<span class="kanji kanji-mnemonic" id="no-mnemonic">(no mnemonic)</span>',
2912
2920
  entry.words !== void 0 ? entry.words.map(
2913
2921
  (word) => createEntry(
2914
2922
  `<span class="kanji kanji-words">${word.kanjiForms.find((kf) => kf.kanjiForm.includes(entry.kanji)).kanjiForm} / ${word.readings[0].reading} - ${word.translations[0].translation}</span>`
2915
2923
  )
2916
- ).join("") : '<span class="kanji kanji-words">(no words) (Search on dictionaries!)</span>',
2924
+ ).join("") : '<span class="kanji kanji-words" id="no-words">(no words)</span>',
2917
2925
  entry.strokes !== void 0 ? createEntry(
2918
2926
  `<span class="kanji kanji-strokes">${entry.strokes}<br>${entry.svg !== void 0 ? `<img class="kanji kanji-stroke-order" src="${entry.svg}" alt="${entry.kanji} stroke order SVG">` : "(no stroke order SVG available)"}</span>`
2919
- ) : '<span class="kanji kanji-strokes">(no stroke number)</span>',
2920
- entry.source !== void 0 ? `<span class="kanji kanji-source"><a href="${entry.source}" target="_blank">Source</a></span>` : '<span class="kanji kanji-source">(no components/mnemonic source)</span>',
2927
+ ) : '<span class="kanji kanji-strokes" id="no-strokes">(no stroke number)</span>',
2928
+ entry.source !== void 0 ? `<span class="kanji kanji-source"><a href="${entry.source}" target="_blank">Source</a></span>` : '<span class="kanji kanji-source" id="no-source">(no components/mnemonic source)</span>',
2921
2929
  ...entry.tags !== void 0 && entry.tags.length > 0 ? [
2922
2930
  entry.tags.map(
2923
2931
  (tag) => tag.trim().toLowerCase().replaceAll(" ", "::")
@@ -2946,7 +2954,7 @@ function generateAnkiNote(entry) {
2946
2954
  (readingEntry) => createEntry(
2947
2955
  `<span class="grammar grammar-reading">${readingEntry.reading}</span>`
2948
2956
  )
2949
- ).join("") : '<span class="grammar grammar-reading">(no additional readings)</span>',
2957
+ ).join("") : '<span class="grammar grammar-reading" id="no-readings">(no additional readings)</span>',
2950
2958
  createEntry(
2951
2959
  `<span class="grammar grammar-meaning">${entry.meaning.meaning}${entry.meaning.example !== void 0 && entry.meaning.example.length > 0 ? `<br><span class="grammar grammar-meaning-example">${entry.meaning.example}</span>` : ""}</span>`
2952
2960
  ),
@@ -2954,15 +2962,15 @@ function generateAnkiNote(entry) {
2954
2962
  (usage) => createEntry(
2955
2963
  `<span class="grammar grammar-usage">${usage}</span>`
2956
2964
  )
2957
- ).join("") : '<span class="grammar grammar-usage">(no usages)</span>',
2965
+ ).join("") : '<span class="grammar grammar-usage" id="no-usages">(no usages)</span>',
2958
2966
  entry.phrases !== void 0 ? entry.phrases.map(
2959
2967
  (phraseEntry) => createEntry(
2960
2968
  `<span class="grammar grammar-phrase"><span class="grammar grammar-phrase-original">${phraseEntry.originalPhrase}</span><span class="grammar grammar-phrase-furigana">${phraseEntry.phrase}</span></span>`,
2961
2969
  [phraseEntry.translation],
2962
2970
  true
2963
2971
  )
2964
- ).join("") : '<span class="grammar grammar-phrase">(no phrases) (Search on dictionaries!)</span>',
2965
- entry.source !== void 0 ? `<span class="grammar grammar-source"><a href="${entry.source}" target="_blank">Source</a></span>` : '<span class="grammar grammar-source">(no source)</span>',
2972
+ ).join("") : '<span class="grammar grammar-phrase" id="no-phrases">(no phrases)</span>',
2973
+ entry.source !== void 0 ? `<span class="grammar grammar-source"><a href="${entry.source}" target="_blank">Source</a></span>` : '<span class="grammar grammar-source" id="no-source">(no source)</span>',
2966
2974
  ...entry.tags !== void 0 && entry.tags.length > 0 ? [
2967
2975
  entry.tags.map(
2968
2976
  (tag) => tag.trim().toLowerCase().replaceAll(" ", "::")