aboutsummaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/js/data/anki-note-builder.js7
-rw-r--r--ext/js/templates/template-renderer.js7
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;
}
}