diff options
author | siikamiika <siikamiika@users.noreply.github.com> | 2020-05-23 03:03:34 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-22 20:03:34 -0400 |
commit | 39df44eca40d00242d99e8121179ae8aeffce961 (patch) | |
tree | d7bbc8f6d1c30aa80526482b6aaad6e442adf85a /ext/bg/js/options.js | |
parent | 96ea941fa820a46c147bf9b494ab4710c69ecd9c (diff) |
Fix "tags" template (#539)
* fix tag templates for merge and group modes
* update version upgrade
* adjust upgrade replacement order
Diffstat (limited to 'ext/bg/js/options.js')
-rw-r--r-- | ext/bg/js/options.js | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index 10df033c..35fdde82 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -111,19 +111,31 @@ const profileOptionsVersionUpdates = [ }, (options) => { // Version 14 changes: - // Changed template for Anki audio. + // Changed template for Anki audio and tags. let fieldTemplates = options.anki.fieldTemplates; if (typeof fieldTemplates !== 'string') { return; } - const replacement = '{{#*inline "audio"}}\n {{~#if definition.audioFileName~}}\n [sound:{{definition.audioFileName}}]\n {{~/if~}}\n{{/inline}}'; - let replaced = false; - fieldTemplates = fieldTemplates.replace(/\{\{#\*inline "audio"\}\}\{\{\/inline\}\}/g, () => { - replaced = true; - return replacement; - }); - - if (!replaced) { - fieldTemplates += '\n\n' + replacement; + const replacements = [ + [ + '{{#*inline "audio"}}{{/inline}}', + '{{#*inline "audio"}}\n {{~#if definition.audioFileName~}}\n [sound:{{definition.audioFileName}}]\n {{~/if~}}\n{{/inline}}' + ], + [ + '{{#*inline "tags"}}\n {{~#each definition.definitionTags}}{{name}}{{#unless @last}}, {{/unless}}{{/each~}}\n{{/inline}}', + '{{#*inline "tags"}}\n {{~#mergeTags definition group merge}}{{this}}{{/mergeTags~}}\n{{/inline}}' + ] + ]; + + for (const [pattern, replacement] of replacements) { + let replaced = false; + fieldTemplates = fieldTemplates.replace(new RegExp(escapeRegExp(pattern), 'g'), () => { + replaced = true; + return replacement; + }); + + if (!replaced) { + fieldTemplates += '\n\n' + replacement; + } } options.anki.fieldTemplates = fieldTemplates; |