From 0395ddcede19f87441a79fbbe29872f24ac3a29b Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 23 Jun 2024 10:51:58 +0000 Subject: fix(gopher): common line endings --- src/gemini.gleam | 2 +- src/gopher.gleam | 38 +++++++++++++++++++++----------------- 2 files changed, 22 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/gemini.gleam b/src/gemini.gleam index ad04079..02a6a75 100644 --- a/src/gemini.gleam +++ b/src/gemini.gleam @@ -43,6 +43,6 @@ pub fn get_gemtext_from_capsule(message) { let assert Ok(response) = httpc.send(request) bytes_builder.from_string( - gopher.gemtext_to_gopher(parse.parse_gemtext_raw(response.body)) <> "\r\n", + gopher.gemtext_to_gopher(parse.parse_gemtext_raw(response.body)), ) } diff --git a/src/gopher.gleam b/src/gopher.gleam index 01ecc9a..5ff02aa 100644 --- a/src/gopher.gleam +++ b/src/gopher.gleam @@ -8,23 +8,27 @@ pub fn trim_gopher_line_ending(line) { } pub fn gemtext_to_gopher(gemtext: List(Gemtext)) -> String { - gemtext - |> list.map(fn(line) { - case line { - gemtext.PreformattedLine(content) -> - content - |> string.split("\n") - |> list.map(fn(line) { - case line { - "```" -> "" - _ -> "i`` " <> line - } - }) - |> string.join("\n") - _ -> gemtext_line_to_gopher_line(line) - } - }) - |> string.join("\n") + { + gemtext + |> list.map(fn(line) { + case line { + gemtext.PreformattedLine(content) -> + content + |> string.split("\n") + |> list.map(fn(line) { + case line { + "```" -> "" + _ -> "i`` " <> line + } + }) + |> string.join("\n") + _ -> gemtext_line_to_gopher_line(line) + } + }) + |> string.join("\r\n") + <> "." + } + |> string.replace("\r\n\r\n.", "\r\n.") } fn extract_domain_from_url(url: String) -> String { -- cgit v1.2.3