Fixes #542: render each and render all
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { handlebars, space } from "$sb/syscalls.ts";
|
||||
import { handlebarHelpers } from "../../common/syscalls/handlebar_helpers.ts";
|
||||
import { PageMeta } from "$sb/types.ts";
|
||||
import { render } from "preact";
|
||||
|
||||
export function defaultJsonTransformer(_k: string, v: any) {
|
||||
if (v === undefined) {
|
||||
@@ -57,9 +58,12 @@ export async function renderTemplate(
|
||||
pageMeta: PageMeta,
|
||||
renderTemplate: string,
|
||||
data: any[],
|
||||
renderAll: boolean,
|
||||
): Promise<string> {
|
||||
let templateText = await space.readPage(renderTemplate);
|
||||
templateText = `{{#each .}}\n${templateText}\n{{/each}}`;
|
||||
if (!renderAll) {
|
||||
templateText = `{{#each .}}\n${templateText}\n{{/each}}`;
|
||||
}
|
||||
return handlebars.renderTemplate(templateText, data, { page: pageMeta });
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import { parseTreeToAST } from "$sb/lib/tree.ts";
|
||||
import { astToKvQuery } from "$sb/lib/parse-query.ts";
|
||||
import { jsonToMDTable, renderTemplate } from "../directive/util.ts";
|
||||
import { replaceTemplateVars } from "../template/template.ts";
|
||||
import { parse } from "../../common/markdown_parser/parse_tree.ts";
|
||||
|
||||
export async function widget(bodyText: string): Promise<WidgetContent> {
|
||||
const pageMeta = await space.getPageMeta(await editor.getCurrentPage());
|
||||
@@ -45,6 +46,7 @@ export async function widget(bodyText: string): Promise<WidgetContent> {
|
||||
pageMeta,
|
||||
parsedQuery.render,
|
||||
allResults,
|
||||
parsedQuery.renderAll!,
|
||||
);
|
||||
resultMarkdown = rendered.trim();
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user