aboutsummaryrefslogtreecommitdiff
path: root/src/msg.c
diff options
context:
space:
mode:
authorRaghuram Subramani <raghus2247@gmail.com>2025-08-02 16:58:52 +0530
committerRaghuram Subramani <raghus2247@gmail.com>2025-08-02 16:58:52 +0530
commit8f7e5463aa7c47ef68b9dc039d28a068d12a46e1 (patch)
tree43f707596279219b0a4326042cb9617061e90ef3 /src/msg.c
parent246a95dbd8f79033124a1c8aba8af6ee03a6af8e (diff)
msg: don't ingest markdown
Diffstat (limited to 'src/msg.c')
-rw-r--r--src/msg.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/msg.c b/src/msg.c
index d59b807..37a0604 100644
--- a/src/msg.c
+++ b/src/msg.c
@@ -96,16 +96,25 @@ handle_file(const char *path)
char *buffer = fcontent(in, size);
if (dot && strcmp(dot, ".md") == 0) {
- engine_t *engine = engine_ingest(&buffer);
+ 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("---"));
+ }
mkd_flag_t *flags = mkd_flags();
mkd_set_flag_num(flags, MKD_FENCEDCODE);
MMIOT *doc = mkd_string(buffer, strlen(buffer), flags);
free(flags);
+ template_write(&engine, out, doc, true);
- template_write(engine, out, doc, true);
-
- engine_delete(engine);
+ 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);