aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhgg2 <richard.garner@mq.edu.au>2024-05-21 11:58:06 +1000
committerGitHub <noreply@github.com>2024-05-21 01:58:06 +0000
commitee04cf6de3037a92524bad5c65349ca1e7b4174f (patch)
tree0950cca0af45f5f414bd3d040370c62d4a669e83
parentee0302295817a5face5a2e3e0de2cc08fbe141e8 (diff)
Add onyomi-hiragana handlebars (#960)
* Add onyomi-hiragana handlebars * Add onyomi-hiragana handlebars * Add docs * Fix typo in documentation of kunyomi/onyomi handlebars * Update ext/data/templates/anki-field-templates-upgrade-v36.handlebars Co-authored-by: StefanVukovic99 <stefanvukovic44@gmail.com> Signed-off-by: rhgg2 <richard.garner@mq.edu.au> * Update tests for onyomi-hiragana handlebars * Update tests for onyomi-hiragana handlebars * Fix typo in code --------- Signed-off-by: rhgg2 <richard.garner@mq.edu.au> Co-authored-by: StefanVukovic99 <stefanvukovic44@gmail.com>
-rw-r--r--docs/anki-integration.md5
-rw-r--r--ext/data/templates/anki-field-templates-upgrade-v36.handlebars3
-rw-r--r--ext/data/templates/default-anki-field-templates.handlebars4
-rw-r--r--ext/js/data/anki-template-util.js1
-rw-r--r--ext/js/data/options-util.js10
-rw-r--r--ext/settings.html6
-rw-r--r--test/data/anki-note-builder-test-results.json2
-rw-r--r--test/options-util.test.js2
8 files changed, 28 insertions, 5 deletions
diff --git a/docs/anki-integration.md b/docs/anki-integration.md
index f12c1268..5aa9e10c 100644
--- a/docs/anki-integration.md
+++ b/docs/anki-integration.md
@@ -87,8 +87,9 @@ Flashcard fields can be configured with the following steps:
| `{frequency-average-rank}` | The average of frequency data for the current kanji. Defaults to rank 9999999 when frequency data is not found, indicating extremely low rank-based kanji usage. |
| `{frequency-average-occurrence}` | The average of frequency data for the current kanji. Defaults to 0 occurrences when frequency data is not found, the lowest possible occurrence-based kanji usage. |
| `{glossary}` | List of definitions for the kanji. |
- | `{kunyomi}` | Kunyomi (Japanese reading) for the kanji expressed as katakana. |
- | `{onyomi}` | Onyomi (Chinese reading) for the kanji expressed as hiragana. |
+ | `{kunyomi}` | Kunyomi (Japanese reading) for the kanji expressed as hiragana. |
+ | `{onyomi}` | Onyomi (Chinese reading) for the kanji expressed as katakana. |
+ | `{onyomi-hiragana}` | Onyomi (Chinese reading) for the kanji expressed as hiragana. |
| `{screenshot}` | Screenshot of the web page taken at the time the kanji was added. |
| `{search-query}` | The full search query shown on the search page. |
| `{selection-text}` | The selected text on the search page or popup. |
diff --git a/ext/data/templates/anki-field-templates-upgrade-v36.handlebars b/ext/data/templates/anki-field-templates-upgrade-v36.handlebars
new file mode 100644
index 00000000..0b07e483
--- /dev/null
+++ b/ext/data/templates/anki-field-templates-upgrade-v36.handlebars
@@ -0,0 +1,3 @@
+{{#*inline "onyomi-hiragana"}}
+ {{~#each definition.onyomi}}{{hiragana .}}{{#unless @last}}, {{/unless}}{{/each~}}
+{{/inline}} \ No newline at end of file
diff --git a/ext/data/templates/default-anki-field-templates.handlebars b/ext/data/templates/default-anki-field-templates.handlebars
index 53dab1c1..bbeff830 100644
--- a/ext/data/templates/default-anki-field-templates.handlebars
+++ b/ext/data/templates/default-anki-field-templates.handlebars
@@ -173,6 +173,10 @@
{{~#each definition.onyomi}}{{.}}{{#unless @last}}, {{/unless}}{{/each~}}
{{/inline}}
+{{#*inline "onyomi-hiragana"}}
+ {{~#each definition.onyomi}}{{hiragana .}}{{#unless @last}}, {{/unless}}{{/each~}}
+{{/inline}}
+
{{#*inline "reading"}}
{{~#unless modeTermKana~}}
{{~#if merge~}}
diff --git a/ext/js/data/anki-template-util.js b/ext/js/data/anki-template-util.js
index 20170dae..1c74d747 100644
--- a/ext/js/data/anki-template-util.js
+++ b/ext/js/data/anki-template-util.js
@@ -83,6 +83,7 @@ export function getStandardFieldMarkers(type) {
'glossary',
'kunyomi',
'onyomi',
+ 'onyomi-hiragana',
'screenshot',
'search-query',
'selection-text',
diff --git a/ext/js/data/options-util.js b/ext/js/data/options-util.js
index 521b4c9b..e2fd2789 100644
--- a/ext/js/data/options-util.js
+++ b/ext/js/data/options-util.js
@@ -542,7 +542,8 @@ export class OptionsUtil {
this._updateVersion32,
this._updateVersion33,
this._updateVersion34,
- this._updateVersion35
+ this._updateVersion35,
+ this._updateVersion36
];
/* eslint-enable @typescript-eslint/unbound-method */
if (typeof targetVersion === 'number' && targetVersion < result.length) {
@@ -1286,6 +1287,13 @@ export class OptionsUtil {
await this._applyAnkiFieldTemplatesPatch(options, '/data/templates/anki-field-templates-upgrade-v35.handlebars');
}
+ /**
+ * - Added handlebars for onyomi reading in hiragana.
+ * @type {import('options-util').UpdateFunction}
+ */
+ async _updateVersion36(options) {
+ await this._applyAnkiFieldTemplatesPatch(options, '/data/templates/anki-field-templates-upgrade-v36.handlebars');
+ }
/**
* @param {string} url
diff --git a/ext/settings.html b/ext/settings.html
index 14342a5b..525e99b1 100644
--- a/ext/settings.html
+++ b/ext/settings.html
@@ -3088,10 +3088,14 @@
</tr>
<tr>
<td><code class="anki-field-marker">{kunyomi}</code></td>
- <td>Kunyomi (Japanese reading) for the kanji, expressed as katakana.</td>
+ <td>Kunyomi (Japanese reading) for the kanji, expressed as hiragana.</td>
</tr>
<tr>
<td><code class="anki-field-marker">{onyomi}</code></td>
+ <td>Onyomi (Chinese reading) for the kanji, expressed as katakana.</td>
+ </tr>
+ <tr>
+ <td><code class="anki-field-marker">{onyomi-hiragana}</code></td>
<td>Onyomi (Chinese reading) for the kanji, expressed as hiragana.</td>
</tr>
<tr>
diff --git a/test/data/anki-note-builder-test-results.json b/test/data/anki-note-builder-test-results.json
index 49e0d8fe..1c78c0db 100644
--- a/test/data/anki-note-builder-test-results.json
+++ b/test/data/anki-note-builder-test-results.json
@@ -19,6 +19,7 @@
"glossary": "<div style=\"text-align: left;\"><ol><li>utsu meaning 1</li><li>utsu meaning 2</li><li>utsu meaning 3</li><li>utsu meaning 4</li><li>utsu meaning 5</li></ol></div>",
"kunyomi": "う.つ, う.ち-, ぶ.つ",
"onyomi": "ダ, ダアス",
+ "onyomi-hiragana": "だ, だあす",
"screenshot": "",
"search-query": "fullQuery",
"selection-text": "",
@@ -50,6 +51,7 @@
"glossary": "<div style=\"text-align: left;\"><ol><li>komu meaning 1</li><li>komu meaning 2</li><li>komu meaning 3</li><li>komu meaning 4</li><li>komu meaning 5</li></ol></div>",
"kunyomi": "-こ.む, こ.む, こ.み, -こ.み, こ.める",
"onyomi": "",
+ "onyomi-hiragana": "",
"screenshot": "",
"search-query": "fullQuery",
"selection-text": "",
diff --git a/test/options-util.test.js b/test/options-util.test.js
index 8fb07263..70404ce5 100644
--- a/test/options-util.test.js
+++ b/test/options-util.test.js
@@ -605,7 +605,7 @@ function createOptionsUpdatedTestData1() {
}
],
profileCurrent: 0,
- version: 35,
+ version: 36,
global: {
database: {
prefixWildcardsSupported: false