Call the HR

This commit is contained in:
2026-07-14 19:26:54 +02:00
parent 5c35ce4408
commit fd8bf59cd9
4 changed files with 29 additions and 0 deletions
+2
View File
@@ -47,5 +47,7 @@ main :: proc() {
}
```
---
[&1] Ordered list item 2 not included
[&named] This is the definition for a named footnote
+3
View File
@@ -210,6 +210,9 @@ print_html :: proc(token: ^Token) {
fmt.printf("<code>%s</code>", code)
}
case TokenType.HorizontalRule:
fmt.print("<hr>\n")
case TokenType.BreakLine:
fmt.print("<br>\n")
+2
View File
@@ -63,6 +63,8 @@ print_token :: proc(token: ^Token, depth: int = 0) {
type_str = "CodeBlock"
case TokenType.InlineCode:
type_str = "InlineCode"
case TokenType.HorizontalRule:
type_str = "HorizontalRule"
}
value_str := ""
+22
View File
@@ -28,6 +28,7 @@ TokenType :: enum {
FootnoteRef,
CodeBlock,
InlineCode,
HorizontalRule,
}
TokenValue :: union {
@@ -407,6 +408,27 @@ parse :: proc(lines: []string, allocator := context.allocator) -> Token {
continue
}
if len(line) >= 3 {
is_hr := true
ch := line[0]
if ch == '-' || ch == '_' || ch == '=' {
for i := 1; i < len(line); i += 1 {
if line[i] != ch {
is_hr = false
break
}
}
} else {
is_hr = false
}
if is_hr {
push_token(&root, TokenType.HorizontalRule, nil)
current_token = &root
continue
}
}
if len(line) == 0 {
current_token = &root
continue