aboutsummaryrefslogtreecommitdiff
path: root/src/template.c
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-08-29 14:10:14 -0400
committerRaghuram Subramani <raghus2247@gmail.com>2025-08-29 14:10:14 -0400
commitd9e9613782af1f0d224d73d61f48bb02ad20032f (patch)
tree11d10b1d03298810b72c1c6e76ca0bba853104ea /src/template.c
parent2d045681d02f981bd610dad0eec7e43ad7fc9f9f (diff)
engine: don't handle page source only if a template is being parsed
Diffstat (limited to 'src/template.c')
-rw-r--r--src/template.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/template.c b/src/template.c
index d325621..c228ffe 100644
--- a/src/template.c
+++ b/src/template.c
@@ -116,7 +116,7 @@ template_create(char *template_name)
char *buffer = fcontent(base, size);
fclose(base);
- engine_t *engine = engine_ingest(&buffer);
+ engine_t *engine = engine_ingest(&buffer, true);
engine_delete(engine);
template->components = lex(buffer);
@@ -198,17 +198,18 @@ template_write(engine_t *engine, FILE *f, void *doc, bool is_markdown)
case EACHDO: {
eachdo_operands_t *operands = directive->operands;
- if (!strcmp(operands->source, "page")) {
- list_t *atoms = list_create(sizeof(ptr_wrapper_t));
- list_t *directives = lex(operands->content);
+ /* must be a page loop, since resources are handled in
+ * engine_ingest() */
+ // if (!strcmp(operands->source, "page"))
- handle_page_source(
- atoms, operands, directives, engine->config);
+ list_t *atoms = list_create(sizeof(ptr_wrapper_t));
+ list_t *directives = lex(operands->content);
- for (size_t i = 0; i < atoms->size; i++) {
- atom_t *atom = list_get(atoms, i);
- fprintf(f, "%s", atom->content);
- }
+ handle_page_source(atoms, operands, directives, engine->config);
+
+ for (size_t i = 0; i < atoms->size; i++) {
+ atom_t *atom = list_get(atoms, i);
+ fprintf(f, "%s", atom->content);
}
}