diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-07-09 20:14:05 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-09 20:14:05 -0400 | 
| commit | 7a1570885e7310e5b1e15ab798c9eb66694a96fb (patch) | |
| tree | b44ee8498a55a0ab3866e0bd67600283d6fbae29 /ext/js | |
| parent | 22f048e527552cf0451ea03e0e9bd869b6ad240b (diff) | |
Simplify get media structure (#1817)
* Remove format argument of getMedia
* Implement escaping
Diffstat (limited to 'ext/js')
| -rw-r--r-- | ext/js/data/anki-note-builder.js | 16 | ||||
| -rw-r--r-- | ext/js/templates/template-renderer-media-provider.js | 16 | 
2 files changed, 20 insertions, 12 deletions
| diff --git a/ext/js/data/anki-note-builder.js b/ext/js/data/anki-note-builder.js index 02aa7969..621816d4 100644 --- a/ext/js/data/anki-note-builder.js +++ b/ext/js/data/anki-note-builder.js @@ -362,14 +362,14 @@ class AnkiNoteBuilder {                  (dictionaryMedia[dictionary]) :                  (dictionaryMedia[dictionary] = {})              ); -            dictionaryMedia2[path] = {fileName}; +            dictionaryMedia2[path] = {value: fileName};          }          const media = { -            audio: (typeof audioFileName === 'string' ? {fileName: audioFileName} : null), -            screenshot: (typeof screenshotFileName === 'string' ? {fileName: screenshotFileName} : null), -            clipboardImage: (typeof clipboardImageFileName === 'string' ? {fileName: clipboardImageFileName} : null), -            clipboardText: (typeof clipboardText === 'string' ? {text: clipboardText} : null), -            selectionText: (typeof selectionText === 'string' ? {text: selectionText} : null), +            audio: (typeof audioFileName === 'string' ? {value: audioFileName} : null), +            screenshot: (typeof screenshotFileName === 'string' ? {value: screenshotFileName} : null), +            clipboardImage: (typeof clipboardImageFileName === 'string' ? {value: clipboardImageFileName} : null), +            clipboardText: (typeof clipboardText === 'string' ? {value: clipboardText} : null), +            selectionText: (typeof selectionText === 'string' ? {value: selectionText} : null),              textFurigana,              dictionaryMedia          }; @@ -391,8 +391,8 @@ class AnkiNoteBuilder {                  break;              }              if (data !== null) { -                const html = this._createFuriganaHtml(data, readingMode); -                results.push({text, readingMode, details: {html}}); +                const value = this._createFuriganaHtml(data, readingMode); +                results.push({text, readingMode, details: {value}});              }          }          return results; diff --git a/ext/js/templates/template-renderer-media-provider.js b/ext/js/templates/template-renderer-media-provider.js index 604b5331..114d3387 100644 --- a/ext/js/templates/template-renderer-media-provider.js +++ b/ext/js/templates/template-renderer-media-provider.js @@ -15,6 +15,10 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ +/* global + * Handlebars + */ +  class TemplateRendererMediaProvider {      constructor() {          this._requirements = null; @@ -38,8 +42,7 @@ class TemplateRendererMediaProvider {          const {media} = root;          const data = this._getMediaData(media, args, namedArgs);          if (data !== null) { -            const {format} = namedArgs; -            const result = this._getFormattedValue(data, format); +            const result = this._getFormattedValue(data, namedArgs);              if (typeof result === 'string') { return result; }          }          const defaultValue = namedArgs.default; @@ -53,8 +56,13 @@ class TemplateRendererMediaProvider {          this._requirements.push(value);      } -    _getFormattedValue(data, format) { -        return Object.prototype.hasOwnProperty.call(data, format) ? data[format] : null; +    _getFormattedValue(data, namedArgs) { +        let {value} = data; +        const {escape=true} = namedArgs; +        if (escape) { +            value = Handlebars.Utils.escapeExpression(value); +        } +        return value;      }      _getMediaData(media, args, namedArgs) { |