diff options
| -rw-r--r-- | ext/bg/js/search-query-parser.js | 26 | 
1 files changed, 20 insertions, 6 deletions
| diff --git a/ext/bg/js/search-query-parser.js b/ext/bg/js/search-query-parser.js index c3a3900b..9bea6508 100644 --- a/ext/bg/js/search-query-parser.js +++ b/ext/bg/js/search-query-parser.js @@ -59,25 +59,39 @@ class QueryParser {      }      async setText(text) { +        this.queryParser.innerHTML = '';          this.search.setSpinnerVisible(true); +        let previewText = text; +        while (previewText) { +            const tempText = previewText.slice(0, 2); +            previewText = previewText.slice(2); + +            const tempRuby = document.createElement('ruby'); +            const tempFurigana = document.createElement('rt'); +            tempRuby.appendChild(document.createTextNode(tempText)); +            tempRuby.appendChild(tempFurigana); +            this.queryParser.appendChild(tempRuby); +        } +          const results = await apiTextParse(text, this.search.getOptionsContext()); -        const tempContainer = document.createElement('div'); +        const textContainer = document.createElement('div');          for (const {text, furigana} of results) { +            const rubyElement = document.createElement('ruby'); +            const furiganaElement = document.createElement('rt');              if (furigana) { -                const rubyElement = document.createElement('ruby'); -                const furiganaElement = document.createElement('rt');                  furiganaElement.innerText = furigana;                  rubyElement.appendChild(document.createTextNode(text));                  rubyElement.appendChild(furiganaElement); -                tempContainer.appendChild(rubyElement);              } else { -                tempContainer.appendChild(document.createTextNode(text)); +                rubyElement.appendChild(document.createTextNode(text)); +                rubyElement.appendChild(furiganaElement);              } +            textContainer.appendChild(rubyElement);          }          this.queryParser.innerHTML = ''; -        this.queryParser.appendChild(tempContainer); +        this.queryParser.appendChild(textContainer);          this.search.setSpinnerVisible(false);      } |