aboutsummaryrefslogtreecommitdiff
path: root/parse-file.c
diff options
context:
space:
mode:
Diffstat (limited to 'parse-file.c')
-rw-r--r--parse-file.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/parse-file.c b/parse-file.c
new file mode 100644
index 0000000..14a737c
--- /dev/null
+++ b/parse-file.c
@@ -0,0 +1,29 @@
+#include "parse-file.h"
+
+void _parse_file(FILE* instream, FILE* outstream) {
+ // adapted from the example section of lowdown_file(3)
+ struct lowdown_opts opts;
+ char *buf;
+ size_t bufsz;
+
+ memset(&opts, 0, sizeof(struct lowdown_opts));
+ opts.type = LOWDOWN_HTML;
+ opts.feat = LOWDOWN_FOOTNOTES |
+ LOWDOWN_AUTOLINK |
+ LOWDOWN_TABLES |
+ LOWDOWN_SUPER |
+ LOWDOWN_STRIKE |
+ LOWDOWN_FENCED |
+ LOWDOWN_COMMONMARK |
+ LOWDOWN_DEFLIST |
+ LOWDOWN_IMG_EXT |
+ LOWDOWN_METADATA;
+ opts.oflags = LOWDOWN_HTML_HEAD_IDS |
+ LOWDOWN_HTML_NUM_ENT |
+ LOWDOWN_HTML_OWASP |
+ LOWDOWN_SMARTY;
+ if (!lowdown_file(&opts, instream, &buf, &bufsz, NULL))
+ errx(1, "lowdown_file");
+ fwrite(buf, 1, bufsz, outstream);
+ free(buf);
+}