aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-06-23 10:51:58 +0000
committerFuwn <[email protected]>2024-06-23 10:51:58 +0000
commit0395ddcede19f87441a79fbbe29872f24ac3a29b (patch)
treee9e13bfee833ac5f469a5afc89bea194c1fd420d
parentrefactor(gopher): line ending trimmer as function (diff)
downloadmomoka-0395ddcede19f87441a79fbbe29872f24ac3a29b.tar.xz
momoka-0395ddcede19f87441a79fbbe29872f24ac3a29b.zip
fix(gopher): common line endings
-rw-r--r--src/gemini.gleam2
-rw-r--r--src/gopher.gleam38
2 files changed, 22 insertions, 18 deletions
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 {