From 4aafb0de729aaf9c8bc2658b4992ac6a3536d471 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Thu, 2 Oct 2025 15:14:01 +0200 Subject: fix(markdown): no error on bad code block pos --- mardown/ast_paragraph.go | 3 +++ mardown/error.go | 15 +++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'mardown') diff --git a/mardown/ast_paragraph.go b/mardown/ast_paragraph.go index 15d9bb8..21dc1ef 100644 --- a/mardown/ast_paragraph.go +++ b/mardown/ast_paragraph.go @@ -76,6 +76,9 @@ func paragraph(lxs *lexers, oneLine bool) (*astParagraph, *ParseError) { tree.content = append(tree.content, ext) } case lexerCode: + if len(lxs.Current().Value) > 1 { + return nil, &ParseError{lxs: *lxs, internal: ErrInvalidCodeBlockPosition} + } n = 0 b, err := code(lxs) if err != nil { diff --git a/mardown/error.go b/mardown/error.go index f85dfbb..bdcd9df 100644 --- a/mardown/error.go +++ b/mardown/error.go @@ -24,14 +24,13 @@ func (e *ParseError) Pretty() string { ind := "" for lxs.Next() && lxs.Current().Type != lexerBreak { contxt += lxs.Current().Value - if lxs.current < current { - if lxs.current == current-2 { - ind += "^" - } else { - for range len(lxs.Current().Value) { - ind += "~" - } - } + ln := len(lxs.Current().Value) + if lxs.current == current-1 { + ln-- + ind += "^" + } + for range ln { + ind += "~" } } return fmt.Sprintf("%v\n\n%s\n%s", e, contxt, ind) -- cgit v1.2.3