henkan 2.4.5 → 2.4.7

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
@@ -2727,7 +2727,7 @@ function isGrammar(entry) {
2727
2727
  }
2728
2728
  var createNotes = (notes, phrase) => `${phrase === true ? "<details><summary>Show translation</summary>" : ""}<ul class="note-list">${notes.map((note) => `<li class="note">${note}</li>`).join("")}</ul>${phrase === true ? "</details>" : ""}`;
2729
2729
  var createEntry = (entry, notes, phrase, glossSpecific) => `<div class="entry${glossSpecific === true ? " gloss-specific" : ""}">${entry}${notes !== void 0 && notes.length > 0 ? createNotes(notes, phrase) : ""}</div>`;
2730
- function generateAnkiNote(entry) {
2730
+ function generateAnkiNote(entry, customData) {
2731
2731
  const fields = [];
2732
2732
  if (isWord(entry)) {
2733
2733
  const firstReading = createEntry(
@@ -2772,7 +2772,7 @@ function generateAnkiNote(entry) {
2772
2772
  kanjiFormEntry.notes
2773
2773
  );
2774
2774
  }).join("")}</details>` : "";
2775
- 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>';
2776
2776
  const firstThreeTranslations = entry.translations.slice(0, 3).map(
2777
2777
  (translationEntry, index) => createEntry(
2778
2778
  `<span class="word word-translation">${translationEntry.translation}</span>`,
@@ -2816,7 +2816,7 @@ function generateAnkiNote(entry) {
2816
2816
  ) ? true : void 0
2817
2817
  );
2818
2818
  }).filter((phrase) => phrase !== "null").join("")}</details>` : "";
2819
- 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>';
2820
2820
  const firstThreeDefinitions = entry.definitions?.slice(0, 3).map(
2821
2821
  (definitionEntry) => createEntry(
2822
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>`
@@ -2827,14 +2827,14 @@ function generateAnkiNote(entry) {
2827
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>`
2828
2828
  ) : "null"
2829
2829
  ).filter((definition) => definition !== "null").join("")}</details>` : "";
2830
- const definitionsField = firstThreeDefinitions !== void 0 ? `${firstThreeDefinitions}${otherDefinitions}` : '<span class="word word-definition">(no definitions)</span>';
2830
+ const definitionsField = firstThreeDefinitions !== void 0 ? `${firstThreeDefinitions}${otherDefinitions}` : '<span class="word word-definition" id="no-definitions">(no definitions)</span>';
2831
2831
  const searchField = `${entry.readings.map((r) => r.reading).join(" ")}${entry.kanjiForms !== void 0 ? ` ${entry.kanjiForms.map((kf) => kf.kanjiForm).join(" ")}` : ""} ${entry.id}`;
2832
2832
  fields.push(
2833
2833
  ...entry.kanjiForms !== void 0 && !entry.usuallyInKana ? [
2834
- `${kanjiFormsField}<div id="kf-pos" style="display: none" data-pos="1"></div>`,
2834
+ `${customData !== void 0 ? `<div id="custom-data" style="display: none" data-custom="${customData}"></div>` : ""}${kanjiFormsField}<div id="kf-pos" style="display: none" data-pos="1"></div>`,
2835
2835
  `${hasAudio ? readingsFieldWithoutAudio : readingsField}<div id="r-pos" style="display: none" data-pos="2"></div>`
2836
2836
  ] : [
2837
- `${kanjiFormsField}<div id="kf-pos" style="display: none" data-pos="2"></div>`,
2837
+ `${customData !== void 0 ? `<div id="custom-data" style="display: none" data-custom="${customData}"></div>` : ""}${kanjiFormsField}<div id="kf-pos" style="display: none" data-pos="2"></div>`,
2838
2838
  `${hasAudio ? readingsFieldWithoutAudio : readingsField}<div id="r-pos" style="display: none" data-pos="1"></div>`
2839
2839
  ],
2840
2840
  `${hasAudio ? readingsField : readingsFieldWithoutAudio}<div id="r-pos" style="display: none" data-pos="${entry.kanjiForms !== void 0 && !entry.usuallyInKana ? "2" : "1"}"></div>`,
@@ -2846,7 +2846,7 @@ function generateAnkiNote(entry) {
2846
2846
  `<span class="word word-kanji">${kanjiEntry.kanji}${kanjiEntry.meanings === void 0 ? " (no meanings)" : ""}</span>`,
2847
2847
  kanjiEntry.meanings
2848
2848
  )
2849
- ).join("") : '<span class="word word-kanji">(no kanji)</span>',
2849
+ ).join("") : '<span class="word word-kanji" id="no-kanji">(no kanji)</span>',
2850
2850
  searchField,
2851
2851
  ...entry.tags !== void 0 && entry.tags.length > 0 ? [
2852
2852
  entry.tags.map(
@@ -2857,9 +2857,9 @@ function generateAnkiNote(entry) {
2857
2857
  }
2858
2858
  if (isRadical(entry))
2859
2859
  fields.push(
2860
- createEntry(
2860
+ `${customData !== void 0 ? `<div id="custom-data" style="display: none" data-custom="${customData}"></div>` : ""}${createEntry(
2861
2861
  `<span class="radical radical-character">${entry.radical}</span>`
2862
- ),
2862
+ )}`,
2863
2863
  createEntry(
2864
2864
  `<span class="radical radical-reading">${entry.reading}</span>`
2865
2865
  ),
@@ -2870,16 +2870,16 @@ function generateAnkiNote(entry) {
2870
2870
  ).join(""),
2871
2871
  entry.mnemonic !== void 0 ? createEntry(
2872
2872
  `<span class="radical radical-mnemonic">${entry.mnemonic}</span>`
2873
- ) : '<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>',
2874
2874
  entry.kanji !== void 0 ? entry.kanji.map(
2875
2875
  (kanji) => createEntry(
2876
2876
  `<span class="radical radical-kanji">${kanji.kanji}${kanji.meanings !== void 0 && kanji.meanings.length > 0 ? ` - ${kanji.meanings[0]}` : ""}</span>`
2877
2877
  )
2878
- ).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>',
2879
2879
  entry.strokes !== void 0 ? createEntry(
2880
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>`
2881
- ) : '<span class="radical radical-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">(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>',
2883
2883
  ...entry.tags !== void 0 && entry.tags.length > 0 ? [
2884
2884
  entry.tags.map(
2885
2885
  (tag) => tag.trim().toLowerCase().replaceAll(" ", "::")
@@ -2888,44 +2888,44 @@ function generateAnkiNote(entry) {
2888
2888
  );
2889
2889
  if (isKanji(entry))
2890
2890
  fields.push(
2891
- createEntry(`<span class="kanji kanji-character">${entry.kanji}</span>`),
2891
+ `${customData !== void 0 ? `<div id="custom-data" style="display: none" data-custom="${customData}"></div>` : ""}${createEntry(`<span class="kanji kanji-character">${entry.kanji}</span>`)}`,
2892
2892
  entry.meanings !== void 0 ? entry.meanings.map(
2893
2893
  (meaningEntry) => createEntry(
2894
2894
  `<span class="kanji kanji-meaning">${meaningEntry}</span>`
2895
2895
  )
2896
- ).join("") : '<span class="kanji kanji-meaning">(no meanings)</span>',
2896
+ ).join("") : '<span class="kanji kanji-meaning" id="no-meanings">(no meanings)</span>',
2897
2897
  entry.onyomi !== void 0 ? entry.onyomi.map(
2898
2898
  (onyomiEntry) => createEntry(
2899
2899
  `<span class="kanji kanji-onyomi">${onyomiEntry}</span>`
2900
2900
  )
2901
- ).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>`,
2902
2902
  entry.kunyomi !== void 0 ? entry.kunyomi.map(
2903
2903
  (kunyomiEntry) => createEntry(
2904
2904
  `<span class="kanji kanji-kunyomi">${kunyomiEntry}</span>`
2905
2905
  )
2906
- ).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>`,
2907
2907
  entry.nanori !== void 0 ? entry.nanori.map(
2908
2908
  (nanoriEntry) => createEntry(
2909
2909
  `<span class="kanji kanji-nanori">${nanoriEntry}</span>`
2910
2910
  )
2911
- ).join("") : '<span class="kanji kanji-nanori">(no nanori)</span>',
2911
+ ).join("") : '<span class="kanji kanji-nanori" id="no-nanori">(no nanori)</span>',
2912
2912
  entry.components !== void 0 ? entry.components.map(
2913
2913
  (componentEntry) => createEntry(
2914
2914
  `<span class="kanji kanji-component">${componentEntry.component}${componentEntry.meaning !== void 0 ? ` - ${componentEntry.meaning}` : ""}</span>`
2915
2915
  )
2916
- ).join("") : '<span class="kanji kanji-component">(no components)</span>',
2916
+ ).join("") : '<span class="kanji kanji-component" id="no-components">(no components)</span>',
2917
2917
  entry.mnemonic !== void 0 ? createEntry(
2918
2918
  `<span class="kanji kanji-mnemonic">${entry.mnemonic}</span>`
2919
- ) : '<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>',
2920
2920
  entry.words !== void 0 ? entry.words.map(
2921
2921
  (word) => createEntry(
2922
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>`
2923
2923
  )
2924
- ).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>',
2925
2925
  entry.strokes !== void 0 ? createEntry(
2926
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>`
2927
- ) : '<span class="kanji kanji-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">(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>',
2929
2929
  ...entry.tags !== void 0 && entry.tags.length > 0 ? [
2930
2930
  entry.tags.map(
2931
2931
  (tag) => tag.trim().toLowerCase().replaceAll(" ", "::")
@@ -2934,7 +2934,7 @@ function generateAnkiNote(entry) {
2934
2934
  );
2935
2935
  if (isKana(entry))
2936
2936
  fields.push(
2937
- createEntry(`<span class="kana kana-character">${entry.kana}</span>`),
2937
+ `${customData !== void 0 ? `<div id="custom-data" style="display: none" data-custom="${customData}"></div>` : ""}${createEntry(`<span class="kana kana-character">${entry.kana}</span>`)}`,
2938
2938
  createEntry(
2939
2939
  `<span class="kana kana-reading">${entry.reading}${entry.audio !== void 0 ? `<br>[sound:${entry.audio}]` : ""}</span>`
2940
2940
  ),
@@ -2949,12 +2949,12 @@ function generateAnkiNote(entry) {
2949
2949
  );
2950
2950
  if (isGrammar(entry))
2951
2951
  fields.push(
2952
- createEntry(`<span class="grammar grammar-point">${entry.point}</span>`),
2952
+ `${customData !== void 0 ? `<div id="custom-data" style="display: none" data-custom="${customData}"></div>` : ""}${createEntry(`<span class="grammar grammar-point">${entry.point}</span>`)}`,
2953
2953
  entry.readings !== void 0 ? entry.readings.map(
2954
2954
  (readingEntry) => createEntry(
2955
2955
  `<span class="grammar grammar-reading">${readingEntry.reading}</span>`
2956
2956
  )
2957
- ).join("") : '<span class="grammar grammar-reading">(no additional readings)</span>',
2957
+ ).join("") : '<span class="grammar grammar-reading" id="no-readings">(no additional readings)</span>',
2958
2958
  createEntry(
2959
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>`
2960
2960
  ),
@@ -2962,15 +2962,15 @@ function generateAnkiNote(entry) {
2962
2962
  (usage) => createEntry(
2963
2963
  `<span class="grammar grammar-usage">${usage}</span>`
2964
2964
  )
2965
- ).join("") : '<span class="grammar grammar-usage">(no usages)</span>',
2965
+ ).join("") : '<span class="grammar grammar-usage" id="no-usages">(no usages)</span>',
2966
2966
  entry.phrases !== void 0 ? entry.phrases.map(
2967
2967
  (phraseEntry) => createEntry(
2968
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>`,
2969
2969
  [phraseEntry.translation],
2970
2970
  true
2971
2971
  )
2972
- ).join("") : '<span class="grammar grammar-phrase">(no phrases) (Search on dictionaries!)</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">(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>',
2974
2974
  ...entry.tags !== void 0 && entry.tags.length > 0 ? [
2975
2975
  entry.tags.map(
2976
2976
  (tag) => tag.trim().toLowerCase().replaceAll(" ", "::")
@@ -2979,7 +2979,7 @@ function generateAnkiNote(entry) {
2979
2979
  );
2980
2980
  return fields.map((field) => field.replaceAll("\n", "<br>"));
2981
2981
  }
2982
- function generateAnkiNotesFile(list, defaultNoteInfo) {
2982
+ function generateAnkiNotesFile(list, defaultNoteInfo, customData) {
2983
2983
  const headers = [noteHeaderKeys.separator, noteHeaderKeys.html];
2984
2984
  let ankiNotes = "";
2985
2985
  if (list.length > 0) {
@@ -3029,7 +3029,7 @@ function generateAnkiNotesFile(list, defaultNoteInfo) {
3029
3029
  headers.push(`${noteHeaderKeys.deck}${++headerCount}`);
3030
3030
  hasHeader.deckPath = true;
3031
3031
  }
3032
- const note = generateAnkiNote(result);
3032
+ const note = generateAnkiNote(result, customData);
3033
3033
  if (!hasHeader.tags) {
3034
3034
  headers.push(`${noteHeaderKeys.tags}${note.length + headerCount}`);
3035
3035
  hasHeader.tags = true;