diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/mixed/css/display-dark.css | 1 | ||||
| -rw-r--r-- | ext/mixed/css/display-default.css | 1 | ||||
| -rw-r--r-- | ext/mixed/css/display.css | 21 | ||||
| -rw-r--r-- | ext/mixed/js/display-generator.js | 17 | 
4 files changed, 33 insertions, 7 deletions
| diff --git a/ext/mixed/css/display-dark.css b/ext/mixed/css/display-dark.css index 7f49ca40..67fdb797 100644 --- a/ext/mixed/css/display-dark.css +++ b/ext/mixed/css/display-dark.css @@ -62,6 +62,7 @@ h2 { border-bottom-color: #2f2f2f; }  .term-definition-list,  .term-pitch-accent-group-list, +.term-pitch-accent-expression-list,  .kanji-glossary-list {      color: #888888;  } diff --git a/ext/mixed/css/display-default.css b/ext/mixed/css/display-default.css index 38e1bf19..be7a37a9 100644 --- a/ext/mixed/css/display-default.css +++ b/ext/mixed/css/display-default.css @@ -62,6 +62,7 @@ h2 { border-bottom-color: #eeeeee; }  .term-definition-list,  .term-pitch-accent-group-list, +.term-pitch-accent-expression-list,  .kanji-glossary-list {      color: #777777;  } diff --git a/ext/mixed/css/display.css b/ext/mixed/css/display.css index aeb88a1a..c150b12e 100644 --- a/ext/mixed/css/display.css +++ b/ext/mixed/css/display.css @@ -488,14 +488,25 @@ button.action-button {  .term-pitch-accent-group-tag-list {      margin-right: 0.375em;  } -.entry[data-unique-expression-count="1"] .term-pitch-accent-expression-list { + +.term-pitch-accent-expression-list { +    padding-right: 0.25em; +} + +.term-pitch-accent-expression-list[data-count="0"] {      display: none;  } -.term-pitch-accent-expression:not(:last-of-type):after { -    content: "\3001"; + +.term-pitch-accent-expression-list:before { +    content: "(";  } -.term-pitch-accent-expression:last-of-type:after { -    content: "\FF1A"; + +.term-pitch-accent-expression-list:after { +    content: " only)"; +} + +.term-pitch-accent-expression+.term-pitch-accent-expression:before { +    content: ", ";  }  .term-pitch-accent-tag-list:not([data-count="0"]) { diff --git a/ext/mixed/js/display-generator.js b/ext/mixed/js/display-generator.js index 30c82472..8177c31c 100644 --- a/ext/mixed/js/display-generator.js +++ b/ext/mixed/js/display-generator.js @@ -304,7 +304,7 @@ class DisplayGenerator {      }      createPitch(details) { -        const {expressions, reading, position, tags} = details; +        const {exclusiveExpressions, reading, position, tags} = details;          const morae = jp.getKanaMorae(reading);          const node = this._templateHandler.instantiate('term-pitch-accent'); @@ -319,7 +319,7 @@ class DisplayGenerator {          DisplayGenerator._appendMultiple(n, this.createTag.bind(this), tags);          n = node.querySelector('.term-pitch-accent-expression-list'); -        DisplayGenerator._appendMultiple(n, this.createPitchExpression.bind(this), expressions); +        DisplayGenerator._appendMultiple(n, this.createPitchExpression.bind(this), exclusiveExpressions);          n = node.querySelector('.term-pitch-accent-characters');          for (let i = 0, ii = morae.length; i < ii; ++i) { @@ -481,6 +481,7 @@ class DisplayGenerator {      static _getPitchInfos(definition) {          const results = new Map(); +        const allExpressions = new Set();          const expressions = definition.expressions;          const sources = Array.isArray(expressions) ? expressions : [definition];          for (const {pitches: expressionPitches, expression} of sources) { @@ -498,10 +499,22 @@ class DisplayGenerator {                          dictionaryResults.push(pitchInfo);                      }                      pitchInfo.expressions.add(expression); +                    allExpressions.add(expression);                  }              }          } +        for (const dictionaryResults of results.values()) { +            for (const result of dictionaryResults) { +                const exclusiveExpressions = []; +                const resultExpressions = result.expressions; +                if (!areSetsEqual(resultExpressions, allExpressions)) { +                    exclusiveExpressions.push(...getSetIntersection(resultExpressions, allExpressions)); +                } +                result.exclusiveExpressions = exclusiveExpressions; +            } +        } +          return [...results.entries()];      } |