summaryrefslogtreecommitdiffstats
path: root/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'parser.c')
-rw-r--r--parser.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/parser.c b/parser.c
new file mode 100644
index 0000000..abb8ca6
--- /dev/null
+++ b/parser.c
@@ -0,0 +1,47 @@
+#include <stdio.h>
+#include "parser.h"
+
+
+/* Return the level of title */
+int parse_title(struct md_token* mt){
+
+ int level = 0;
+ if (mt->idx >= mt->line_len) {
+ return -1;
+ }
+
+ if (mt->line[mt->idx] == '\0' || mt->line[mt->idx] == '\n') {
+ return -1;
+ }
+
+ while(mt->idx < mt->line_len && mt->line[mt->idx] == '#') {
+ level++;
+ mt->idx++;
+ }
+
+ mt->start_pos = mt->idx + 1;
+ char tmp[1024] = "";
+ size_t mt_idx = mt->start_pos;
+ int idx = 0;
+ while (mt_idx < mt->line_len && mt->line[mt_idx] != '\0' && mt->line[mt_idx] != '\n') {
+ tmp[idx] = mt->line[mt_idx];
+ mt_idx++;
+ idx++;
+ }
+ printf("<h%d>%s</h%d>", level, tmp, level);
+ return level;
+}
+
+
+int parse_content(struct md_token* mt) {
+ if (mt->idx >= mt->line_len) {
+ return -1;
+ }
+
+ if (mt->line[mt->idx] == '\0' || mt->line[mt->idx] == '\n') {
+ return -1;
+ }
+
+ printf("<p>%s</p>",mt->line);
+ return 0;
+}