aboutsummaryrefslogtreecommitdiff
path: root/src/gemtext/blockquote.gleam
blob: 94aa937d95b2c23486a2e6163172bd8a24189c9a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import gemtext/gemtext.{type Gemtext}
import gleam/list
import gleam/string

pub fn combine_adjacent_blockquote_lines(lines: List(Gemtext)) -> List(Gemtext) {
  case lines {
    [gemtext.BlockquoteLine(a), gemtext.BlockquoteLine(b), ..rest] ->
      combine_adjacent_blockquote_lines([
        gemtext.Blockquote(string.join([a, b], "\n")),
        ..rest
      ])
    [gemtext.Blockquote(a), gemtext.BlockquoteLine(b), ..rest] ->
      combine_adjacent_blockquote_lines([
        gemtext.Blockquote(string.join([a, b], "\n")),
        ..rest
      ])
    [g, ..rest] -> list.append([g], combine_adjacent_blockquote_lines(rest))
    [] -> []
  }
}