aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/bg/js/dictionary.js3
-rw-r--r--ext/bg/js/options.js81
-rw-r--r--ext/bg/js/translator.js5
3 files changed, 72 insertions, 17 deletions
diff --git a/ext/bg/js/dictionary.js b/ext/bg/js/dictionary.js
index 6df77d73..97716e65 100644
--- a/ext/bg/js/dictionary.js
+++ b/ext/bg/js/dictionary.js
@@ -368,7 +368,8 @@ async function dictFieldFormat(field, definition, mode, options) {
merge: options.general.resultOutputMode === 'merge',
modeTermKanji: mode === 'term-kanji',
modeTermKana: mode === 'term-kana',
- modeKanji: mode === 'kanji'
+ modeKanji: mode === 'kanji',
+ compactGlossaries: options.general.compactGlossaries
};
const html = await apiTemplateRender(options.anki.fieldTemplates, data, true);
diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js
index 86c4e27c..34cb1240 100644
--- a/ext/bg/js/options.js
+++ b/ext/bg/js/options.js
@@ -21,10 +21,15 @@ function optionsFieldTemplates() {
return `
{{#*inline "glossary-single"}}
{{~#unless brief~}}
- {{~#if tags~}}<i>({{#each tags}}{{name}}{{#unless @last}}, {{/unless}}{{/each}})</i> {{/if~}}
+ {{~#if definitionTags~}}<i>({{#each definitionTags}}{{name}}{{#unless @last}}, {{/unless}}{{/each}})</i> {{/if~}}
+ {{~#if only~}}({{#each only}}{{{.}}}{{#unless @last}}, {{/unless}}{{/each}} only) {{/if~}}
{{~/unless~}}
{{~#if glossary.[1]~}}
- <ul>{{#each glossary}}<li>{{#multiLine}}{{.}}{{/multiLine}}</li>{{/each}}</ul>
+ {{~#if compactGlossaries~}}
+ {{#each glossary}}{{#multiLine}}{{.}}{{/multiLine}}{{#unless @last}} | {{/unless}}{{/each}}
+ {{~else~}}
+ <ul>{{#each glossary}}<li>{{#multiLine}}{{.}}{{/multiLine}}</li>{{/each}}</ul>
+ {{~/if~}}
{{~else~}}
{{~#multiLine}}{{glossary.[0]}}{{/multiLine~}}
{{~/if~}}
@@ -41,23 +46,56 @@ function optionsFieldTemplates() {
{{/inline}}
{{#*inline "expression"}}
- {{~#if modeTermKana~}}
- {{~#if definition.reading~}}
- {{definition.reading}}
+ {{~#if merge~}}
+ {{~#if modeTermKana~}}
+ {{~#each definition.reading~}}
+ {{{.}}}
+ {{~#unless @last}}, {{/unless~}}
+ {{~else~}}
+ {{~#each definition.expression~}}
+ {{{.}}}
+ {{~#unless @last}}, {{/unless~}}
+ {{~/each~}}
+ {{~/each~}}
{{~else~}}
- {{definition.expression}}
+ {{~#each definition.expression~}}
+ {{{.}}}
+ {{~#unless @last}}, {{/unless~}}
+ {{~/each~}}
{{~/if~}}
{{~else~}}
- {{definition.expression}}
+ {{~#if modeTermKana~}}
+ {{~#if definition.reading~}}
+ {{definition.reading}}
+ {{~else~}}
+ {{definition.expression}}
+ {{~/if~}}
+ {{~else~}}
+ {{definition.expression}}
+ {{~/if~}}
{{~/if~}}
{{/inline}}
{{#*inline "furigana"}}
- {{#furigana}}{{{definition}}}{{/furigana}}
+ {{~#if merge~}}
+ {{~#each definition.expressions~}}
+ {{~#furigana}}{{{.}}}{{/furigana~}}
+ {{~#unless @last}}, {{/unless~}}
+ {{~/each~}}
+ {{~else~}}
+ {{#furigana}}{{{definition}}}{{/furigana}}
+ {{~/if~}}
{{/inline}}
{{#*inline "furigana-plain"}}
- {{#furiganaPlain}}{{{definition}}}{{/furiganaPlain}}
+ {{~#if merge~}}
+ {{~#each definition.expressions~}}
+ {{~#furiganaPlain}}{{{.}}}{{/furiganaPlain~}}
+ {{~#unless @last}}, {{/unless~}}
+ {{~/each~}}
+ {{~else~}}
+ {{#furiganaPlain}}{{{definition}}}{{/furiganaPlain}}
+ {{~/if~}}
{{/inline}}
{{#*inline "glossary"}}
@@ -71,12 +109,18 @@ function optionsFieldTemplates() {
{{~else~}}
{{~#if group~}}
{{~#if definition.definitions.[1]~}}
- <ol>{{#each definition.definitions}}<li>{{> glossary-single brief=../brief}}</li>{{/each}}</ol>
+ <ol>{{#each definition.definitions}}<li>{{> glossary-single brief=../brief compactGlossaries=../compactGlossaries}}</li>{{/each}}</ol>
{{~else~}}
- {{~> glossary-single definition.definitions.[0] brief=brief~}}
+ {{~> glossary-single definition.definitions.[0] brief=brief compactGlossaries=compactGlossaries~}}
+ {{~/if~}}
+ {{~else if merge~}}
+ {{~#if definition.definitions.[1]~}}
+ <ol>{{#each definition.definitions}}<li>{{> glossary-single brief=../brief compactGlossaries=../compactGlossaries}}</li>{{/each}}</ol>
+ {{~else~}}
+ {{~> glossary-single definition.definitions.[0] brief=brief compactGlossaries=compactGlossaries~}}
{{~/if~}}
{{~else~}}
- {{~> glossary-single definition brief=brief~}}
+ {{~> glossary-single definition brief=brief compactGlossaries=compactGlossaries~}}
{{~/if~}}
{{~/if~}}
</div>
@@ -95,7 +139,16 @@ function optionsFieldTemplates() {
{{/inline}}
{{#*inline "reading"}}
- {{~#unless modeTermKana}}{{definition.reading}}{{/unless~}}
+ {{~#unless modeTermKana~}}
+ {{~#if merge~}}
+ {{~#each definition.reading~}}
+ {{{.}}}
+ {{~#unless @last}}, {{/unless~}}
+ {{~/each~}}
+ {{~else~}}
+ {{~definition.reading~}}
+ {{~/if~}}
+ {{~/unless~}}
{{/inline}}
{{#*inline "sentence"}}
@@ -115,7 +168,7 @@ function optionsFieldTemplates() {
{{/inline}}
{{#*inline "tags"}}
- {{~#each definition.tags}}{{name}}{{#unless @last}}, {{/unless}}{{/each~}}
+ {{~#each definition.definitionTags}}{{name}}{{#unless @last}}, {{/unless}}{{/each~}}
{{/inline}}
{{#*inline "url"}}
diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js
index bf347343..70b01ce3 100644
--- a/ext/bg/js/translator.js
+++ b/ext/bg/js/translator.js
@@ -128,8 +128,9 @@ class Translator {
result.expressions = expressions;
- // result.expression = Array.from(result.expression).join(', ');
- // result.reading = Array.from(result.reading).join(', ');
+ result.expression = Array.from(result.expression);
+ result.reading = Array.from(result.reading);
+
definitionsMerged.push(result);
}