From b378012aa20d0a8a5a3ada5918f4e732d5cd24aa Mon Sep 17 00:00:00 2001 From: "N0\\A" Date: Sat, 11 Jul 2026 18:32:39 +0200 Subject: [PATCH] Fix header and newline parsing --- src/parser.v | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/parser.v b/src/parser.v index d6aaec9..65fd56f 100644 --- a/src/parser.v +++ b/src/parser.v @@ -8,10 +8,10 @@ fn parse_header(line string) (int, string) { } mut lvl := 0 - for line[lvl] == '!'[0] { // Jestem geniuszem programowania + for lvl < line.len && line[lvl] == '!'.bytes()[0] { lvl++ } - if line[lvl + 1] != ' '[0] { // String to u8 converter xd + if lvl == 0 || lvl >= line.len || line[lvl] != ' '.bytes()[0] { return 0, line } return lvl, line[lvl + 1..] @@ -20,21 +20,35 @@ fn parse_header(line string) (int, string) { fn parse(lines []string) string { mut output := '

' for line in lines { - lvl, text := parse_header(line) + mut trimmed := line.trim_space() + + if trimmed.len == 0 { + output += '
\n' + continue + } + + lvl, mut text := parse_header(trimmed) + if lvl > 0 { output += '' } if idx := text.index('2') { - output += replace(text, idx, 1, 'foferk') + '
\n' + text = replace(text, idx, 1, 'foferk') } if lvl > 0 { - output += '
' + output += text + '' + } else { + output += text } - output += text + '
\n' + if lvl == 0 { + output += '
' + } + output += '\n' } + output += '

' return output }