BreakLine token

This commit is contained in:
2026-07-13 14:26:07 +02:00
parent 66145f516e
commit 36e95f2568
+17 -21
View File
@@ -53,33 +53,29 @@ parse_header :: proc(line: string) -> (int, string) {
return lvl, line[lvl + 1:] return lvl, line[lvl + 1:]
} }
parse :: proc(lines: []string, allocator := context.allocator) -> string { parse :: proc(lines: []string, allocator := context.allocator) -> [dynamic]Token {
builder := strings.builder_make(allocator) for untrimmed_line in lines {
strings.write_string(&builder, "<p>") line := strings.trim_space(untrimmed_line)
for line in lines { if len(line) == 0 {
trimmed := strings.trim_space(line) append(&token_tree, Token{TokenType.BreakLine, TokenMode.Start, nil})
if len(trimmed) == 0 {
strings.write_string(&builder, "<br>\n")
continue continue
} }
lvl, text := parse_header(trimmed) // lvl, text := parse_header(trimmed)
is_header := lvl > 0 // is_header := lvl > 0
if is_header { // if is_header {
fmt.sbprintf(&builder, "<h%d>", lvl) // fmt.sbprintf(&builder, "<h%d>", lvl)
strings.write_string(&builder, text) // strings.write_string(&builder, text)
fmt.sbprintf(&builder, "</h%d>", lvl) // fmt.sbprintf(&builder, "</h%d>", lvl)
} else { // } else {
strings.write_string(&builder, text) // strings.write_string(&builder, text)
strings.write_string(&builder, "<br>") // strings.write_string(&builder, "<br>")
} // }
strings.write_string(&builder, "\n") // strings.write_string(&builder, "\n")
} }
strings.write_string(&builder, "</p>") return token_tree
return strings.to_string(builder)
} }