aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compromyse.xyz/posts/b.md1
-rw-r--r--src/msg.c16
2 files changed, 16 insertions, 1 deletions
diff --git a/compromyse.xyz/posts/b.md b/compromyse.xyz/posts/b.md
index 51817b8..d7d8228 100644
--- a/compromyse.xyz/posts/b.md
+++ b/compromyse.xyz/posts/b.md
@@ -1,4 +1,5 @@
title = B.md
+template = xyz.html
---
# Hi there!!!!
diff --git a/src/msg.c b/src/msg.c
index 49a4155..29566c1 100644
--- a/src/msg.c
+++ b/src/msg.c
@@ -96,8 +96,22 @@ handle_file(const char *path)
char *buffer = fcontent(in, size);
if (dot && strcmp(dot, ".md") == 0) {
+ engine_t engine = { .config = NULL, .content_headers = NULL };
+
+ char *p = strstr(buffer, "---");
+ if (p != NULL) {
+ char *config;
+ asprintf(&config, "%.*s\n", (int) (p - buffer), buffer);
+ engine.config = config_parse(config);
+ free(config);
+ strcpy(buffer, p + strlen("---"));
+ }
+
MMIOT *doc = mkd_string(buffer, size, 0);
- template_write(NULL, out, doc, true);
+ template_write(&engine, out, doc, true);
+
+ if (engine.config != NULL)
+ config_delete(engine.config);
} else if (strlen(buffer) != 0) {
engine_t *engine = engine_ingest(&buffer);
template_write(engine, out, buffer, false);