aboutsummaryrefslogtreecommitdiff
path: root/ext/bg/js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/bg/js')
-rw-r--r--ext/bg/js/options.js6
-rw-r--r--ext/bg/js/settings/anki-controller.js1
-rw-r--r--ext/bg/js/template-renderer.js9
3 files changed, 13 insertions, 3 deletions
diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js
index 026d75c5..a8cdd885 100644
--- a/ext/bg/js/options.js
+++ b/ext/bg/js/options.js
@@ -487,7 +487,7 @@ class OptionsUtil {
update: this._updateVersion7.bind(this)
},
{
- async: false,
+ async: true,
update: this._updateVersion8.bind(this)
}
];
@@ -680,7 +680,7 @@ class OptionsUtil {
return options;
}
- _updateVersion8(options) {
+ async _updateVersion8(options) {
// Version 8 changes:
// Added translation.textReplacements.
// Moved anki.sentenceExt to sentenceParsing.scanExtent.
@@ -690,6 +690,8 @@ class OptionsUtil {
// Added inputs.hotkeys.
// Added anki.suspendNewCards.
// Added popupWindow.
+ // Updated handlebars templates to include "stroke-count" definition.
+ await this._addFieldTemplatesToOptions(options, '/bg/data/anki-field-templates-upgrade-v8.handlebars');
for (const profile of options.profiles) {
profile.options.translation.textReplacements = {
searchOriginal: true,
diff --git a/ext/bg/js/settings/anki-controller.js b/ext/bg/js/settings/anki-controller.js
index fbd058ee..49bdea60 100644
--- a/ext/bg/js/settings/anki-controller.js
+++ b/ext/bg/js/settings/anki-controller.js
@@ -118,6 +118,7 @@ class AnkiController {
'onyomi',
'screenshot',
'sentence',
+ 'stroke-count',
'tags',
'url'
];
diff --git a/ext/bg/js/template-renderer.js b/ext/bg/js/template-renderer.js
index 4bf9448e..ae39e478 100644
--- a/ext/bg/js/template-renderer.js
+++ b/ext/bg/js/template-renderer.js
@@ -107,7 +107,8 @@ class TemplateRenderer {
['property', this._property.bind(this)],
['noop', this._noop.bind(this)],
['isMoraPitchHigh', this._isMoraPitchHigh.bind(this)],
- ['getKanaMorae', this._getKanaMorae.bind(this)]
+ ['getKanaMorae', this._getKanaMorae.bind(this)],
+ ['typeof', this._getTypeof.bind(this)]
];
for (const [name, helper] of helpers) {
@@ -406,4 +407,10 @@ class TemplateRenderer {
_getKanaMorae(context, text) {
return this._japaneseUtil.getKanaMorae(`${text}`);
}
+
+ _getTypeof(context, ...args) {
+ const ii = args.length - 1;
+ const value = (ii > 0 ? args[0] : args[ii].fn(context));
+ return typeof value;
+ }
}