From a81787c55b10b43344a9506b62d90c317b329667 Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Thu, 28 Jan 2021 21:33:30 -0500 Subject: Remove the dictionary tag from the definitionTags (#1324) * Remove dictionary tag from term definitionTags and kanji tags * Update test data * Update templates * Update tests * Update information --- ext/bg/data/anki-field-templates-upgrade-v8.handlebars | 18 +++++++++++++++--- ext/bg/data/default-anki-field-templates.handlebars | 18 +++++++++++++++--- ext/bg/js/settings/anki-controller.js | 1 + ext/bg/js/translator.js | 15 +++------------ ext/bg/settings2.html | 4 ++++ 5 files changed, 38 insertions(+), 18 deletions(-) (limited to 'ext/bg') diff --git a/ext/bg/data/anki-field-templates-upgrade-v8.handlebars b/ext/bg/data/anki-field-templates-upgrade-v8.handlebars index 32c61343..b3aed45f 100644 --- a/ext/bg/data/anki-field-templates-upgrade-v8.handlebars +++ b/ext/bg/data/anki-field-templates-upgrade-v8.handlebars @@ -52,6 +52,13 @@ {{~#set "any" true}}{{/set~}} {{~/if~}} {{~/each~}} + {{~#unless noDictionaryTag~}} + {{~#if (op "||" (op "!" @root.compactTags) (op "!==" dictionary (get "previousDictionary")))~}} + {{~#if (get "any")}}, {{else}}({{/if~}} + {{dictionary}} + {{~#set "any" true}}{{/set~}} + {{~/if~}} + {{~/unless~}} {{~#if (get "any")}}) {{/if~}} {{~/scope~}} {{~#if only~}}({{#each only}}{{.}}{{#unless @last}}, {{/unless}}{{/each}} only) {{/if~}} @@ -63,6 +70,7 @@ {{~else~}} {{~/if~}} + {{~#set "previousDictionary" dictionary~}}{{~/set~}} {{/inline}} {{>>>>>>>}} @@ -99,12 +107,12 @@
{{~#scope~}} {{~#if (op "===" definition.type "term")~}} - {{~> glossary-single definition brief=brief ~}} + {{~> glossary-single definition brief=brief noDictionaryTag=noDictionaryTag ~}} {{~else if (op "||" (op "===" definition.type "termGrouped") (op "===" definition.type "termMerged"))~}} {{~#if (op ">" definition.definitions.length 1)~}} -
    {{~#each definition.definitions~}}
  1. {{~> glossary-single . brief=../brief ~}}
  2. {{~/each~}}
+
    {{~#each definition.definitions~}}
  1. {{~> glossary-single . brief=../brief noDictionaryTag=../noDictionaryTag ~}}
  2. {{~/each~}}
{{~else~}} - {{~#each definition.definitions~}}{{~> glossary-single . brief=../brief ~}}{{~/each~}} + {{~#each definition.definitions~}}{{~> glossary-single . brief=../brief noDictionaryTag=../noDictionaryTag ~}}{{~/each~}} {{~/if~}} {{~else if (op "===" definition.type "kanji")~}} {{~#if (op ">" definition.glossary.length 1)~}} @@ -116,4 +124,8 @@ {{~/scope~}}
{{~/inline~}} + +{{#*inline "glossary-no-dictionary"}} + {{~> glossary noDictionaryTag=true ~}} +{{/inline}} {{>>>>>>>}} diff --git a/ext/bg/data/default-anki-field-templates.handlebars b/ext/bg/data/default-anki-field-templates.handlebars index 94553183..8ee2e00d 100644 --- a/ext/bg/data/default-anki-field-templates.handlebars +++ b/ext/bg/data/default-anki-field-templates.handlebars @@ -9,6 +9,13 @@ {{~#set "any" true}}{{/set~}} {{~/if~}} {{~/each~}} + {{~#unless noDictionaryTag~}} + {{~#if (op "||" (op "!" @root.compactTags) (op "!==" dictionary (get "previousDictionary")))~}} + {{~#if (get "any")}}, {{else}}({{/if~}} + {{dictionary}} + {{~#set "any" true}}{{/set~}} + {{~/if~}} + {{~/unless~}} {{~#if (get "any")}}) {{/if~}} {{~/scope~}} {{~#if only~}}({{#each only}}{{.}}{{#unless @last}}, {{/unless}}{{/each}} only) {{/if~}} @@ -20,6 +27,7 @@ {{~else~}} {{~/if~}} + {{~#set "previousDictionary" dictionary~}}{{~/set~}} {{/inline}} {{#*inline "audio"}} @@ -93,12 +101,12 @@
{{~#scope~}} {{~#if (op "===" definition.type "term")~}} - {{~> glossary-single definition brief=brief ~}} + {{~> glossary-single definition brief=brief noDictionaryTag=noDictionaryTag ~}} {{~else if (op "||" (op "===" definition.type "termGrouped") (op "===" definition.type "termMerged"))~}} {{~#if (op ">" definition.definitions.length 1)~}} -
    {{~#each definition.definitions~}}
  1. {{~> glossary-single . brief=../brief ~}}
  2. {{~/each~}}
+
    {{~#each definition.definitions~}}
  1. {{~> glossary-single . brief=../brief noDictionaryTag=../noDictionaryTag ~}}
  2. {{~/each~}}
{{~else~}} - {{~#each definition.definitions~}}{{~> glossary-single . brief=../brief ~}}{{~/each~}} + {{~#each definition.definitions~}}{{~> glossary-single . brief=../brief noDictionaryTag=../noDictionaryTag ~}}{{~/each~}} {{~/if~}} {{~else if (op "===" definition.type "kanji")~}} {{~#if (op ">" definition.glossary.length 1)~}} @@ -111,6 +119,10 @@
{{~/inline~}} +{{#*inline "glossary-no-dictionary"}} + {{~> glossary2 noDictionaryTag=true ~}} +{{/inline}} + {{#*inline "glossary-brief"}} {{~> glossary brief=true ~}} {{/inline}} diff --git a/ext/bg/js/settings/anki-controller.js b/ext/bg/js/settings/anki-controller.js index c2292bc9..e7c8db15 100644 --- a/ext/bg/js/settings/anki-controller.js +++ b/ext/bg/js/settings/anki-controller.js @@ -94,6 +94,7 @@ class AnkiController { 'furigana-plain', 'glossary', 'glossary-brief', + 'glossary-no-dictionary', 'pitch-accents', 'pitch-accent-graphs', 'pitch-accent-positions', diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js index 7242ec56..729c8294 100644 --- a/ext/bg/js/translator.js +++ b/ext/bg/js/translator.js @@ -133,7 +133,6 @@ class Translator { for (const {character, onyomi, kunyomi, tags, glossary, stats, dictionary} of databaseDefinitions) { const expandedStats = await this._expandStats(stats, dictionary); const expandedTags = await this._expandTags(tags, dictionary); - expandedTags.push(this._createDictionaryTag(dictionary)); this._sortTags(expandedTags); const definition = this._createKanjiDefinition(character, dictionary, onyomi, kunyomi, glossary, expandedTags, expandedStats); @@ -541,17 +540,14 @@ class Translator { } _flagRedundantDefinitionTags(definitions) { - let lastDictionary = ''; + let lastDictionary = null; let lastPartOfSpeech = ''; const removeCategoriesSet = new Set(); - for (const {definitionTags} of definitions) { - const dictionary = this._createMapKey(this._getTagNamesWithCategory(definitionTags, 'dictionary')); + for (const {dictionary, definitionTags} of definitions) { const partOfSpeech = this._createMapKey(this._getTagNamesWithCategory(definitionTags, 'partOfSpeech')); - if (lastDictionary === dictionary) { - removeCategoriesSet.add('dictionary'); - } else { + if (lastDictionary !== dictionary) { lastDictionary = dictionary; lastPartOfSpeech = ''; } @@ -1054,10 +1050,6 @@ class Translator { return JSON.stringify(array); } - _createDictionaryTag(name) { - return this._createTag(name, 'dictionary', '', 100, 0, name, false); - } - _createTag(name, category, notes, order, score, dictionary, redundant) { return { name, @@ -1101,7 +1093,6 @@ class Translator { const dictionaryPriority = this._getDictionaryPriority(dictionary, enabledDictionaryMap); const termTagsExpanded = await this._expandTags(termTags, dictionary); const definitionTagsExpanded = await this._expandTags(definitionTags, dictionary); - definitionTagsExpanded.push(this._createDictionaryTag(dictionary)); this._sortTags(definitionTagsExpanded); this._sortTags(termTagsExpanded); diff --git a/ext/bg/settings2.html b/ext/bg/settings2.html index d557d366..d29bd4a1 100644 --- a/ext/bg/settings2.html +++ b/ext/bg/settings2.html @@ -2626,6 +2626,10 @@ {glossary-brief} List of definitions for the term in a more compact format. + + {glossary-no-dictionary} + List of definitions for the term, except the dictionary tag is omitted. + {pitch-accents} List of pitch accent downstep notations for the term. -- cgit v1.2.3