diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/msg.c | 17 |
1 files changed, 4 insertions, 13 deletions
@@ -96,24 +96,15 @@ 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("---")); - } + engine_t *engine = engine_ingest(&buffer); mkd_flag_t *flags = mkd_flags(); mkd_set_flag_num(flags, MKD_FENCEDCODE); MMIOT *doc = mkd_string(buffer, strlen(buffer), flags); - template_write(&engine, out, doc, true); - if (engine.config != NULL) - config_delete(engine.config); + template_write(engine, out, doc, true); + + engine_delete(engine); } else if (strlen(buffer) != 0) { engine_t *engine = engine_ingest(&buffer); template_write(engine, out, buffer, false); |