From f9167c8fddbb757d314e1545c9dc788415a1fbf7 Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Sat, 26 Jun 2021 17:05:55 -0400 Subject: [PATCH] Template rendering updates (#1762) * Remove unused function * Update template rendering return value --- ext/js/data/anki-note-builder.js | 7 ++----- 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; } }