diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-05-17 20:18:37 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-17 20:18:37 -0400 | 
| commit | 76276e78dac387df66384a10bc1179c90ebd93fe (patch) | |
| tree | ba11d7bf4375aa76ae45646b45953df9e71f1d78 /ext | |
| parent | 12451eaf61281e588fb8ef5f911d604ba34aca92 (diff) | |
Expose search query to anki template renderer (#1686)
* Expose query and fullQuery to Anki context
* Add {search-query} marker
* Update test data
* Update tests
* Wrap search query in multiLine
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/data/templates/anki-field-templates-upgrade-v12.handlebars | 3 | ||||
| -rw-r--r-- | ext/data/templates/default-anki-field-templates.handlebars | 4 | ||||
| -rw-r--r-- | ext/js/data/anki-note-data-creator.js | 4 | ||||
| -rw-r--r-- | ext/js/data/options-util.js | 6 | ||||
| -rw-r--r-- | ext/js/display/display.js | 4 | ||||
| -rw-r--r-- | ext/js/pages/settings/anki-controller.js | 2 | ||||
| -rw-r--r-- | ext/js/pages/settings/anki-templates-controller.js | 4 | ||||
| -rw-r--r-- | ext/settings.html | 4 | 
8 files changed, 26 insertions, 5 deletions
| diff --git a/ext/data/templates/anki-field-templates-upgrade-v12.handlebars b/ext/data/templates/anki-field-templates-upgrade-v12.handlebars new file mode 100644 index 00000000..9fe3c9d0 --- /dev/null +++ b/ext/data/templates/anki-field-templates-upgrade-v12.handlebars @@ -0,0 +1,3 @@ +{{#*inline "search-query"}} +    {{~#multiLine}}{{context.fullQuery}}{{/multiLine~}} +{{/inline}} diff --git a/ext/data/templates/default-anki-field-templates.handlebars b/ext/data/templates/default-anki-field-templates.handlebars index ec57a826..97359aa0 100644 --- a/ext/data/templates/default-anki-field-templates.handlebars +++ b/ext/data/templates/default-anki-field-templates.handlebars @@ -372,4 +372,8 @@      {{~/scope~}}  {{/inline}} +{{#*inline "search-query"}} +    {{~#multiLine}}{{context.fullQuery}}{{/multiLine~}} +{{/inline}} +  {{~> (lookup . "marker") ~}} diff --git a/ext/js/data/anki-note-data-creator.js b/ext/js/data/anki-note-data-creator.js index d1bbec18..4cf62788 100644 --- a/ext/js/data/anki-note-data-creator.js +++ b/ext/js/data/anki-note-data-creator.js @@ -141,9 +141,11 @@ class AnkiNoteDataCreator {      }      _getPublicContext(context) { -        let {documentTitle} = this._asObject(context); +        let {documentTitle, query, fullQuery} = this._asObject(context);          if (typeof documentTitle !== 'string') { documentTitle = ''; }          return { +            query, +            fullQuery,              document: {                  title: documentTitle              } diff --git a/ext/js/data/options-util.js b/ext/js/data/options-util.js index cb58206f..00ad890d 100644 --- a/ext/js/data/options-util.js +++ b/ext/js/data/options-util.js @@ -461,7 +461,7 @@ class OptionsUtil {              {async: false, update: this._updateVersion9.bind(this)},              {async: true,  update: this._updateVersion10.bind(this)},              {async: false, update: this._updateVersion11.bind(this)}, -            {async: false, update: this._updateVersion12.bind(this)} +            {async: true,  update: this._updateVersion12.bind(this)}          ];      } @@ -813,9 +813,11 @@ class OptionsUtil {          return options;      } -    _updateVersion12(options) { +    async _updateVersion12(options) {          // Version 12 changes:          //  Changed sentenceParsing.enableTerminationCharacters to sentenceParsing.terminationCharacterMode. +        //  Added {search-query} field marker. +        await this._applyAnkiFieldTemplatesPatch(options, '/data/templates/anki-field-templates-upgrade-v12.handlebars');          for (const profile of options.profiles) {              const {sentenceParsing} = profile.options;              sentenceParsing.terminationCharacterMode = sentenceParsing.enableTerminationCharacters ? 'custom' : 'newlines'; diff --git a/ext/js/display/display.js b/ext/js/display/display.js index 7bfe3add..fe5b5c9a 100644 --- a/ext/js/display/display.js +++ b/ext/js/display/display.js @@ -1400,7 +1400,9 @@ class Display extends EventDispatcher {          return {              url,              sentence, -            documentTitle +            documentTitle, +            query: this._query, +            fullQuery: this._fullQuery          };      } diff --git a/ext/js/pages/settings/anki-controller.js b/ext/js/pages/settings/anki-controller.js index 91cd4641..28bb21a3 100644 --- a/ext/js/pages/settings/anki-controller.js +++ b/ext/js/pages/settings/anki-controller.js @@ -101,6 +101,7 @@ class AnkiController {                      'pitch-accent-positions',                      'reading',                      'screenshot', +                    'search-query',                      'sentence',                      'tags',                      'url' @@ -119,6 +120,7 @@ class AnkiController {                      'kunyomi',                      'onyomi',                      'screenshot', +                    'search-query',                      'sentence',                      'stroke-count',                      'tags', diff --git a/ext/js/pages/settings/anki-templates-controller.js b/ext/js/pages/settings/anki-templates-controller.js index eab0681f..9502a2fd 100644 --- a/ext/js/pages/settings/anki-templates-controller.js +++ b/ext/js/pages/settings/anki-templates-controller.js @@ -161,7 +161,9 @@ class AnkiTemplatesController {                          text: sentenceText,                          offset: 0                      }, -                    documentTitle: document.title +                    documentTitle: document.title, +                    query: sentenceText, +                    fullQuery: sentenceText                  };                  let template = options.anki.fieldTemplates;                  if (typeof template !== 'string') { template = this._defaultFieldTemplates; } diff --git a/ext/settings.html b/ext/settings.html index 1b167e22..aade3345 100644 --- a/ext/settings.html +++ b/ext/settings.html @@ -2878,6 +2878,10 @@                      <td>Screenshot of the web page taken at the time the term or kanji was added.</td>                  </tr>                  <tr> +                    <td><code class="anki-field-marker">{search-query}</code></td> +                    <td>The full search query shown on the search page.</td> +                </tr> +                <tr>                      <td><code class="anki-field-marker">{sentence}</code></td>                      <td>Sentence, quote, or phrase that the term or kanji appears in from the source content.</td>                  </tr> |