diff options
| author | 2025-05-22 16:27:55 +0200 | |
|---|---|---|
| committer | 2025-05-22 16:27:55 +0200 | |
| commit | b6ff55662e0281c0d6e111f9307625ef695df2fa (patch) | |
| tree | 5f7761efa0b51a7a7d56f96fce3681c8e9b66fe9 /vendor/github.com/yuin/goldmark/parser/parser.go | |
| parent | [chore/woodpecker] don't make `test` depend on `lint` (#4189) (diff) | |
| download | gotosocial-b6ff55662e0281c0d6e111f9307625ef695df2fa.tar.xz | |
[chore] update dependencies (#4188)
Update dependencies:
- github.com/gin-gonic/gin v1.10.0 -> v1.10.1
- github.com/gin-contrib/sessions v1.10.3 -> v1.10.4
- github.com/jackc/pgx/v5 v5.7.4 -> v5.7.5
- github.com/minio/minio-go/v7 v7.0.91 -> v7.0.92
- github.com/pquerna/otp v1.4.0 -> v1.5.0
- github.com/tdewolff/minify/v2 v2.23.5 -> v2.23.8
- github.com/yuin/goldmark v1.7.11 -> v1.7.12
- go.opentelemetry.io/otel{,/*} v1.35.0 -> v1.36.0
- modernc.org/sqlite v1.37.0 -> v1.37.1
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4188
Reviewed-by: Daenney <daenney@noreply.codeberg.org>
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
Diffstat (limited to 'vendor/github.com/yuin/goldmark/parser/parser.go')
| -rw-r--r-- | vendor/github.com/yuin/goldmark/parser/parser.go | 44 |
1 files changed, 16 insertions, 28 deletions
diff --git a/vendor/github.com/yuin/goldmark/parser/parser.go b/vendor/github.com/yuin/goldmark/parser/parser.go index 7ec40b31a..78a6b2603 100644 --- a/vendor/github.com/yuin/goldmark/parser/parser.go +++ b/vendor/github.com/yuin/goldmark/parser/parser.go @@ -1030,47 +1030,35 @@ type lineStat struct { } func isBlankLine(lineNum, level int, stats []lineStat) bool { - ret := true - for i := len(stats) - 1 - level; i >= 0; i-- { - ret = false + l := len(stats) + if l == 0 { + return true + } + for i := l - 1 - level; i >= 0; i-- { s := stats[i] - if s.lineNum == lineNum { - if s.level < level && s.isBlank { - return true - } else if s.level == level { - return s.isBlank - } - } - if s.lineNum < lineNum { - return ret + if s.lineNum == lineNum && s.level <= level { + return s.isBlank + } else if s.lineNum < lineNum { + break } } - return ret + return false } func (p *parser) parseBlocks(parent ast.Node, reader text.Reader, pc Context) { - pc.SetOpenedBlocks([]Block{}) + pc.SetOpenedBlocks(nil) blankLines := make([]lineStat, 0, 128) - var isBlank bool for { // process blocks separated by blank lines - _, lines, ok := reader.SkipBlankLines() + _, _, ok := reader.SkipBlankLines() if !ok { return } - lineNum, _ := reader.Position() - if lines != 0 { - blankLines = blankLines[0:0] - l := len(pc.OpenedBlocks()) - for i := 0; i < l; i++ { - blankLines = append(blankLines, lineStat{lineNum - 1, i, lines != 0}) - } - } - isBlank = isBlankLine(lineNum-1, 0, blankLines) // first, we try to open blocks - if p.openBlocks(parent, isBlank, reader, pc) != newBlocksOpened { + if p.openBlocks(parent, true, reader, pc) != newBlocksOpened { return } reader.AdvanceLine() + blankLines = blankLines[0:0] for { // process opened blocks line by line openedBlocks := pc.OpenedBlocks() l := len(openedBlocks) @@ -1096,7 +1084,7 @@ func (p *parser) parseBlocks(parent ast.Node, reader text.Reader, pc Context) { // When current node is a container block and has no children, // we try to open new child nodes if state&HasChildren != 0 && i == lastIndex { - isBlank = isBlankLine(lineNum-1, i+1, blankLines) + isBlank := isBlankLine(lineNum-1, i+1, blankLines) p.openBlocks(be.Node, isBlank, reader, pc) break } @@ -1104,7 +1092,7 @@ func (p *parser) parseBlocks(parent ast.Node, reader text.Reader, pc Context) { } } // current node may be closed or lazy continuation - isBlank = isBlankLine(lineNum-1, i, blankLines) + isBlank := isBlankLine(lineNum-1, i, blankLines) thisParent := parent if i != 0 { thisParent = openedBlocks[i-1].Node |
