aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Logan <cody@lokken.dev>2023-11-27 15:51:28 -0800
committerCody Logan <cody@lokken.dev>2023-11-27 15:51:28 -0800
commitd0511d45d39c5de64e82a89510edc681b483df9b (patch)
treee92a0587aa0e3cf8be15815b5cd554b1e2b4027d
downloadconvert-markdown-d0511d45d39c5de64e82a89510edc681b483df9b.tar.gz
convert-markdown-d0511d45d39c5de64e82a89510edc681b483df9b.zip
Initial commit
-rw-r--r--.gitignore2
-rw-r--r--Makefile10
-rw-r--r--convert-markdown.c34
3 files changed, 46 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b73197c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+convert-markdown
+*.o
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..27dd859
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,10 @@
+CC = cc
+CFLAGS = -O2 -g -I/usr/local/include
+LDFLAGS = -L/usr/local/lib
+LIBS = -llowdown -lm -static -pie
+
+convert-markdown: convert-markdown.c
+ $(CC) $^ -o $@ $(CFLAGS) $(LDFLAGS) $(LIBS)
+
+clean:
+ rm -f convert-markdown
diff --git a/convert-markdown.c b/convert-markdown.c
new file mode 100644
index 0000000..a466071
--- /dev/null
+++ b/convert-markdown.c
@@ -0,0 +1,34 @@
+#include <err.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/queue.h>
+#include <lowdown.h>
+
+int main(void) {
+ // 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, stdin, &buf, &bufsz, NULL))
+ errx(1, "lowdown_file");
+ fwrite(buf, 1, bufsz, stdout);
+ free(buf);
+}