diff options
author | wrmr | 2025-09-23 22:27:01 -0400 |
---|---|---|
committer | wrmr | 2025-09-23 22:27:01 -0400 |
commit | bd3098691458c5747aaf32df5d07921350f9d7e9 (patch) | |
tree | 43a7d0cc0b66ebd067f844d60daf1fdd7f14924e | |
parent | 56be29a4d0987efe0de2e66ebe53ccc50d5f8962 (diff) |
add h4
-rw-r--r-- | main.c | 29 |
1 files changed, 11 insertions, 18 deletions
@@ -142,6 +142,7 @@ typedef enum { LN_HDR1, LN_HDR2, LN_HDR3, + LN_HDR4, LN_NONE } LineType; @@ -173,6 +174,8 @@ int is_ol_item(Str s) { LineType classify_line(Str line, LineType prev) { if (line.n == 0) { return LN_NONE; + } else if (str_starts(line, S("####"))) { + return LN_HDR4; } else if (str_starts(line, S("###"))) { return LN_HDR3; } else if (str_starts(line, S("##"))) { @@ -213,15 +216,10 @@ LineType line_init(Line *l, Str txt, LineType t) { l->url = c.head; l->txt = c.tail; return has_image_ext(l->url) ? LN_IMG : LN_LINK; - case LN_HDR1: - l->txt = str_trim(str_skip(txt, 1)); - break; - case LN_HDR2: - l->txt = str_trim(str_skip(txt, 2)); - break; - case LN_HDR3: - l->txt = str_trim(str_skip(txt, 3)); - break; + case LN_HDR1: l->txt = str_trim(str_skip(txt, 1)); break; + case LN_HDR2: l->txt = str_trim(str_skip(txt, 2)); break; + case LN_HDR3: l->txt = str_trim(str_skip(txt, 3)); break; + case LN_HDR4: l->txt = str_trim(str_skip(txt, 4)); break; case LN_ULIST: l->txt = str_skip(txt, 2); break; @@ -474,15 +472,10 @@ void markup_block(Str *out, Block *blk, Arena *perm, Arena *scratch) { Otl("<li>", l->txt, "</li>\n"); Os("<ol>"); break; - case LN_HDR1: - Otl("<h1>", l->txt, "</h1>"); - break; - case LN_HDR2: - Otl("<h2>", l->txt, "</h2>"); - break; - case LN_HDR3: - Otl("<h3>", l->txt, "</h3>"); - break; + case LN_HDR1: Otl("<h1>", l->txt, "</h1>"); break; + case LN_HDR2: Otl("<h2>", l->txt, "</h2>"); break; + case LN_HDR3: Otl("<h3>", l->txt, "</h3>"); break; + case LN_HDR4: Otl("<h4>", l->txt, "</h4>"); break; default: case LN_PAR: Os("<p>"); |