diff options
Diffstat (limited to 'ext/js')
| -rw-r--r-- | ext/js/data/anki-note-builder.js | 7 | ||||
| -rw-r--r-- | ext/js/templates/template-renderer.js | 7 | 
2 files changed, 8 insertions, 6 deletions
| diff --git a/ext/js/data/anki-note-builder.js b/ext/js/data/anki-note-builder.js index 85a68265..c36ad889 100644 --- a/ext/js/data/anki-note-builder.js +++ b/ext/js/data/anki-note-builder.js @@ -115,7 +115,8 @@ class AnkiNoteBuilder {      async _formatField(field, commonData, template, errors=null) {          return await this._stringReplaceAsync(field, this._markerPattern, async (g0, marker) => {              try { -                return await this._renderTemplateBatched(template, commonData, marker); +                const {result} = await this._renderTemplateBatched(template, commonData, marker); +                return result;              } catch (e) {                  if (Array.isArray(errors)) {                      const error = new Error(`Template render error for {${marker}}`); @@ -142,10 +143,6 @@ class AnkiNoteBuilder {          return (await Promise.all(parts)).join('');      } -    async _renderTemplate(template, marker, commonData) { -        return await this._templateRenderer.render(template, {marker, commonData}, 'ankiNote'); -    } -      _getBatchedTemplateGroup(template) {          for (const item of this._batchedRequests) {              if (item.template === template) { diff --git a/ext/js/templates/template-renderer.js b/ext/js/templates/template-renderer.js index 07b2849c..e27ad03c 100644 --- a/ext/js/templates/template-renderer.js +++ b/ext/js/templates/template-renderer.js @@ -28,6 +28,7 @@ class TemplateRenderer {          this._helpersRegistered = false;          this._stateStack = null;          this._dataTypes = new Map(); +        this._requirements = null;      }      registerDataType(name, {modifier=null, composeData=null}) { @@ -85,10 +86,14 @@ class TemplateRenderer {      _renderTemplate(instance, data) {          try { +            const requirements = [];              this._stateStack = [new Map()]; -            return instance(data).trim(); +            this._requirements = requirements; +            const result = instance(data).trim(); +            return {result, requirements};          } finally {              this._stateStack = null; +            this._requirements = null;          }      } |