BreakLine token
This commit is contained in:
+18
-22
@@ -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")
|
return token_tree
|
||||||
}
|
|
||||||
|
|
||||||
strings.write_string(&builder, "</p>")
|
|
||||||
return strings.to_string(builder)
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user