Fixes #542: render each and render all

This commit is contained in:
Zef Hemel
2023-10-30 14:15:12 +01:00
parent 1d8e7d5c35
commit 8f4d6e5d23
13 changed files with 74 additions and 17 deletions
+4 -1
View File
@@ -74,7 +74,10 @@ export function astToKvQuery(
break;
}
case "RenderClause": {
query.render = (clause[2][1] as string).slice(2, -2);
// console.log("Render clause", clause);
const pageRef = (clause as any[]).find((c) => c[0] === "PageRef");
query.render = pageRef[1].slice(2, -2);
query.renderAll = !!(clause as any[]).find((c) => c[0] === "all");
break;
}
default:
+23
View File
@@ -149,6 +149,29 @@ Deno.test("Test directive parser", () => {
{
querySource: "task",
render: "my/page",
renderAll: false,
},
);
assertEquals(
astToKvQuery(
wrapQueryParse(`task render each [[my/page]]`)!,
),
{
querySource: "task",
render: "my/page",
renderAll: false,
},
);
assertEquals(
astToKvQuery(
wrapQueryParse(`task render all [[my/page]]`)!,
),
{
querySource: "task",
render: "my/page",
renderAll: true,
},
);
+1
View File
@@ -66,6 +66,7 @@ export type Query = {
select?: Select[];
limit?: QueryExpression;
render?: string;
renderAll?: boolean;
distinct?: boolean;
};