From ae3e5f375ee91a2f0e2ea94121b65a5b5ca29c49 Mon Sep 17 00:00:00 2001 From: Zef Hemel Date: Fri, 6 Oct 2023 14:40:09 +0200 Subject: [PATCH] Fixed using handlebar variables live queries and templates --- plugs/query/query.ts | 9 ++++----- plugs/query/template.ts | 9 ++++++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/plugs/query/query.ts b/plugs/query/query.ts index bf10d4c9..40593f39 100644 --- a/plugs/query/query.ts +++ b/plugs/query/query.ts @@ -12,13 +12,12 @@ export async function widget(bodyText: string): Promise { try { const queryAST = parseTreeToAST( - await language.parseLanguage("query", bodyText), - ); - const parsedQuery = astToKvQuery( - JSON.parse( - await replaceTemplateVars(JSON.stringify(queryAST[1]), pageMeta), + await language.parseLanguage( + "query", + await replaceTemplateVars(bodyText, pageMeta), ), ); + const parsedQuery = astToKvQuery(queryAST[1]); const eventName = `query:${parsedQuery.querySource}`; diff --git a/plugs/query/template.ts b/plugs/query/template.ts index 0abad251..83da1aaa 100644 --- a/plugs/query/template.ts +++ b/plugs/query/template.ts @@ -3,6 +3,7 @@ import { editor, handlebars, markdown, space, YAML } from "$sb/syscalls.ts"; import { rewritePageRefs } from "$sb/lib/resolve.ts"; import { renderMarkdownToHtml } from "../markdown/markdown_render.ts"; import { prepareJS, wrapHTML } from "./util.ts"; +import { replaceTemplateVars } from "../template/template.ts"; type TemplateConfig = { // Pull the template from a page @@ -29,11 +30,17 @@ export async function widget(bodyText: string): Promise { templateText = await space.readPage(templatePage); } + const value = config.value + ? JSON.parse( + await replaceTemplateVars(JSON.stringify(config.value), pageMeta), + ) + : undefined; + const rendered = config.raw ? templateText : await handlebars.renderTemplate( templateText, - config.value, + value, { page: pageMeta, },