diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 0501d09..0000000 --- a/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -fly.toml diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index ba96b9d..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "pages"] - path = pages - url = git@codeberg.org:naomi/pages diff --git a/Caddyfile b/Caddyfile deleted file mode 100644 index 6f1c565..0000000 --- a/Caddyfile +++ /dev/null @@ -1,6 +0,0 @@ -:8080 { - root * /srv - encode gzip - try_files {path} /index.html - file_server -} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index f48ba92..0000000 --- a/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM caddy:2.8-alpine -COPY ./Caddyfile /etc/caddy/Caddyfile -COPY ./index.html /srv/index.html -COPY ./priv/ /srv/priv/ diff --git a/fly.toml b/fly.toml deleted file mode 100644 index ca0c459..0000000 --- a/fly.toml +++ /dev/null @@ -1,22 +0,0 @@ -# fly.toml app configuration file generated for naomieow-xyz on 2024-05-29T21:30:13+01:00 -# -# See https://fly.io/docs/reference/configuration/ for information about how to use this file. -# - -app = 'naomieow-xyz' -primary_region = 'lhr' - -[build] - -[http_service] - internal_port = 8080 - force_https = true - auto_stop_machines = true - auto_start_machines = true - min_machines_running = 0 - processes = ['app'] - -[[vm]] - memory = '1gb' - cpu_kind = 'shared' - cpus = 1 diff --git a/gleam.toml b/gleam.toml index 1c58a0f..d218f16 100644 --- a/gleam.toml +++ b/gleam.toml @@ -1,15 +1,14 @@ name = "website" -target = "javascript" version = "1.0.0" [dependencies] gleam_stdlib = ">= 0.34.0 and < 2.0.0" lustre = ">= 4.2.0 and < 5.0.0" -modem = ">= 1.1.0 and < 2.0.0" -lustre_ui = ">= 0.6.0 and < 1.0.0" -birl = ">= 1.7.0 and < 2.0.0" -lustre_http = ">= 0.5.2 and < 1.0.0" +tom = ">= 0.3.0 and < 1.0.0" +simplifile = ">= 1.7.0 and < 2.0.0" +commonmark = ">= 0.1.8 and < 1.0.0" +glailglind = ">= 1.1.2 and < 2.0.0" +lustre_ssg = ">= 0.8.0 and < 1.0.0" [dev-dependencies] gleeunit = ">= 1.0.0 and < 2.0.0" -lustre_dev_tools = ">= 1.3.2 and < 2.0.0" diff --git a/ls.json b/ls.json new file mode 100644 index 0000000..4833eb1 --- /dev/null +++ b/ls.json @@ -0,0 +1,6 @@ +{ + "serve": "priv", + "serveRedirect": true, + "port": 1234, + "bind": "localhost" +} diff --git a/manifest.toml b/manifest.toml index fffb9c8..c2e3cc8 100644 --- a/manifest.toml +++ b/manifest.toml @@ -2,54 +2,31 @@ # You typically do not need to edit this file packages = [ - { name = "argv", version = "1.0.2", build_tools = ["gleam"], requirements = [], otp_app = "argv", source = "hex", outer_checksum = "BA1FF0929525DEBA1CE67256E5ADF77A7CDDFE729E3E3F57A5BDCAA031DED09D" }, - { name = "birl", version = "1.7.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "ranger"], otp_app = "birl", source = "hex", outer_checksum = "B1FA529E7BE3FF12CADF32814AB8EC7294E74CEDEE8CC734505707B929A98985" }, - { name = "exception", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "exception", source = "hex", outer_checksum = "F5580D584F16A20B7FCDCABF9E9BE9A2C1F6AC4F9176FA6DD0B63E3B20D450AA" }, + { name = "commonmark", version = "0.1.8", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "commonmark", source = "hex", outer_checksum = "D20FD8F1B147C3F9288FDB84CC790B5136FFD9D4BD04E121BE851B7EB02A6566" }, { name = "filepath", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "EFB6FF65C98B2A16378ABC3EE2B14124168C0CE5201553DE652E2644DCFDB594" }, - { name = "fs", version = "8.6.1", build_tools = ["rebar3"], requirements = [], otp_app = "fs", source = "hex", outer_checksum = "61EA2BDAEDAE4E2024D0D25C63E44DCCF65622D4402DB4A2DF12868D1546503F" }, - { name = "gleam_community_ansi", version = "1.4.0", build_tools = ["gleam"], requirements = ["gleam_community_colour", "gleam_stdlib"], otp_app = "gleam_community_ansi", source = "hex", outer_checksum = "FE79E08BF97009729259B6357EC058315B6FBB916FAD1C2FF9355115FEB0D3A4" }, - { name = "gleam_community_colour", version = "1.4.0", build_tools = ["gleam"], requirements = ["gleam_json", "gleam_stdlib"], otp_app = "gleam_community_colour", source = "hex", outer_checksum = "795964217EBEDB3DA656F5EB8F67D7AD22872EB95182042D3E7AFEF32D3FD2FE" }, - { name = "gleam_crypto", version = "1.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_crypto", source = "hex", outer_checksum = "ADD058DEDE8F0341F1ADE3AAC492A224F15700829D9A3A3F9ADF370F875C51B7" }, + { name = "glailglind", version = "1.1.2", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_http", "gleam_httpc", "gleam_stdlib", "shellout", "simplifile", "tom"], otp_app = "glailglind", source = "hex", outer_checksum = "DD037D129592B871E943EAB9C137CE3B017C784D3DEB8180A2954D113D4EE479" }, { name = "gleam_erlang", version = "0.25.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "054D571A7092D2A9727B3E5D183B7507DAB0DA41556EC9133606F09C15497373" }, - { name = "gleam_fetch", version = "0.4.0", build_tools = ["gleam"], requirements = ["gleam_http", "gleam_javascript", "gleam_stdlib"], otp_app = "gleam_fetch", source = "hex", outer_checksum = "7446410A44A1D1328F5BC1FF4FC9CBD1570479EA69349237B3F82E34521CCC10" }, { name = "gleam_http", version = "3.6.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "8C07DF9DF8CC7F054C650839A51C30A7D3C26482AC241C899C1CEA86B22DBE51" }, { name = "gleam_httpc", version = "2.2.0", build_tools = ["gleam"], requirements = ["gleam_http", "gleam_stdlib"], otp_app = "gleam_httpc", source = "hex", outer_checksum = "CF76C71002DEECF6DC5D9CA83D962728FAE166B57926BE442D827004D3C7DF1B" }, - { name = "gleam_javascript", version = "0.8.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_javascript", source = "hex", outer_checksum = "14D5B7E1A70681E0776BF0A0357F575B822167960C844D3D3FA114D3A75F05A8" }, { name = "gleam_json", version = "1.0.1", build_tools = ["gleam"], requirements = ["gleam_stdlib", "thoas"], otp_app = "gleam_json", source = "hex", outer_checksum = "9063D14D25406326C0255BDA0021541E797D8A7A12573D849462CAFED459F6EB" }, { name = "gleam_otp", version = "0.10.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "0B04FE915ACECE539B317F9652CAADBBC0F000184D586AAAF2D94C100945D72B" }, - { name = "gleam_package_interface", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_json", "gleam_stdlib"], otp_app = "gleam_package_interface", source = "hex", outer_checksum = "52A721BCA972C8099BB881195D821AAA64B9F2655BECC102165D5A1097731F01" }, { name = "gleam_stdlib", version = "0.37.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "5398BD6C2ABA17338F676F42F404B9B7BABE1C8DC7380031ACB05BBE1BCF3742" }, - { name = "glearray", version = "0.2.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "glearray", source = "hex", outer_checksum = "9C207E05F38D724F464FA921378DB3ABC2B0A2F5821116D8BC8B2CACC68930D5" }, { name = "gleeunit", version = "1.1.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "72CDC3D3F719478F26C4E2C5FED3E657AC81EC14A47D2D2DEBB8693CA3220C3B" }, - { name = "glint", version = "0.18.1", build_tools = ["gleam"], requirements = ["gleam_community_ansi", "gleam_community_colour", "gleam_stdlib", "snag"], otp_app = "glint", source = "hex", outer_checksum = "5FB54D7732B4105E4AF4D89A7EE6D5E8CF33DA13A3575D0C6ECE470B97958454" }, - { name = "glisten", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib"], otp_app = "glisten", source = "hex", outer_checksum = "CF3A9383E9BA4A8CBAF2F7B799716290D02F2AC34E7A77556B49376B662B9314" }, - { name = "gramps", version = "2.0.1", build_tools = ["gleam"], requirements = ["gleam_crypto", "gleam_erlang", "gleam_http", "gleam_stdlib"], otp_app = "gramps", source = "hex", outer_checksum = "FBB7EA641C8A1EF02C0E938B6045A1360B925E5E65BAD0E228C4AEF6C6933722" }, - { name = "hpack_erl", version = "0.3.0", build_tools = ["rebar3"], requirements = [], otp_app = "hpack", source = "hex", outer_checksum = "D6137D7079169D8C485C6962DFE261AF5B9EF60FBC557344511C1E65E3D95FB0" }, - { name = "logging", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "logging", source = "hex", outer_checksum = "A996064F04EF6E67F0668FD0ACFB309830B05D0EE3A0C11BBBD2D4464334F792" }, + { name = "jot", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "jot", source = "hex", outer_checksum = "A929403A34DC43422BA50D9BE0B61447DE4F0AD62215BB8C640445370C02EC8B" }, { name = "lustre", version = "4.2.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_json", "gleam_otp", "gleam_stdlib"], otp_app = "lustre", source = "hex", outer_checksum = "258F876CD7AB12C2C773F1A30F76DFC0A0ED989B720070DF32FC0717A6A0E60C" }, - { name = "lustre_dev_tools", version = "1.3.2", build_tools = ["gleam"], requirements = ["argv", "filepath", "fs", "gleam_community_ansi", "gleam_erlang", "gleam_http", "gleam_httpc", "gleam_json", "gleam_otp", "gleam_package_interface", "gleam_stdlib", "glint", "glisten", "mist", "simplifile", "spinner", "term_size", "tom", "wisp"], otp_app = "lustre_dev_tools", source = "hex", outer_checksum = "CC8F46BCE51C1349862C5F6BA0075B0C68096B866ED1C520B60358FAAB398B60" }, - { name = "lustre_http", version = "0.5.2", build_tools = ["gleam"], requirements = ["gleam_fetch", "gleam_http", "gleam_javascript", "gleam_json", "gleam_stdlib", "lustre"], otp_app = "lustre_http", source = "hex", outer_checksum = "FB0478CBFA6B16DBE8ECA326DAE2EC15645E04900595EF2C4F039ABFA0512ABA" }, - { name = "lustre_ui", version = "0.6.0", build_tools = ["gleam"], requirements = ["gleam_community_colour", "gleam_json", "gleam_stdlib", "lustre"], otp_app = "lustre_ui", source = "hex", outer_checksum = "FA1F9E89D89CDD5DF376ED86ABA8A38441CB2E664CD4D402F22A49DA4D7BB56D" }, - { name = "marceau", version = "1.1.0", build_tools = ["gleam"], requirements = [], otp_app = "marceau", source = "hex", outer_checksum = "1AAD727A30BE0F95562C3403BB9B27C823797AD90037714255EEBF617B1CDA81" }, - { name = "mist", version = "1.2.0", build_tools = ["gleam"], requirements = ["birl", "gleam_erlang", "gleam_http", "gleam_otp", "gleam_stdlib", "glisten", "gramps", "hpack_erl", "logging"], otp_app = "mist", source = "hex", outer_checksum = "109B4D64E68C104CC23BB3CC5441ECD479DD7444889DA01113B75C6AF0F0E17B" }, - { name = "modem", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "lustre"], otp_app = "modem", source = "hex", outer_checksum = "4C6E448089B09A57C179455D44526A717E4E217D4000B91201617FD2D9F18E68" }, - { name = "ranger", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "ranger", source = "hex", outer_checksum = "1566C272B1D141B3BBA38B25CB761EF56E312E79EC0E2DFD4D3C19FB0CC1F98C" }, - { name = "repeatedly", version = "2.1.1", build_tools = ["gleam"], requirements = [], otp_app = "repeatedly", source = "hex", outer_checksum = "38808C3EC382B0CD981336D5879C24ECB37FCB9C1D1BD128F7A80B0F74404D79" }, + { name = "lustre_ssg", version = "0.8.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "jot", "lustre", "simplifile", "tom"], otp_app = "lustre_ssg", source = "hex", outer_checksum = "46BC70203D7730314E2CB78A3F7237F1753D86B05F4B7B26722F7FAB7345047C" }, + { name = "shellout", version = "1.6.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "shellout", source = "hex", outer_checksum = "E2FCD18957F0E9F67E1F497FC9FF57393392F8A9BAEAEA4779541DE7A68DD7E0" }, { name = "simplifile", version = "1.7.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "1D5DFA3A2F9319EC85825F6ED88B8E449F381B0D55A62F5E61424E748E7DDEB0" }, - { name = "snag", version = "0.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "snag", source = "hex", outer_checksum = "54D32E16E33655346AA3E66CBA7E191DE0A8793D2C05284E3EFB90AD2CE92BCC" }, - { name = "spinner", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_community_ansi", "gleam_erlang", "gleam_stdlib", "glearray", "repeatedly"], otp_app = "spinner", source = "hex", outer_checksum = "200BA3D4A04D468898E63C0D316E23F526E02514BC46454091975CB5BAE41E8F" }, - { name = "term_size", version = "1.0.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "term_size", source = "hex", outer_checksum = "D00BD2BC8FB3EBB7E6AE076F3F1FF2AC9D5ED1805F004D0896C784D06C6645F1" }, { name = "thoas", version = "1.2.0", build_tools = ["rebar3"], requirements = [], otp_app = "thoas", source = "hex", outer_checksum = "540C8CB7D9257F2AD0A14145DC23560F91ACDCA995F0CCBA779EB33AF5D859D1" }, { name = "tom", version = "0.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "tom", source = "hex", outer_checksum = "0831C73E45405A2153091226BF98FB485ED16376988602CC01A5FD086B82D577" }, - { name = "wisp", version = "0.14.0", build_tools = ["gleam"], requirements = ["exception", "gleam_crypto", "gleam_erlang", "gleam_http", "gleam_json", "gleam_stdlib", "logging", "marceau", "mist", "simplifile"], otp_app = "wisp", source = "hex", outer_checksum = "9F5453AF1F9275E6F8707BC815D6A6A9DF41551921B16FBDBA52883773BAE684" }, ] [requirements] -birl = { version = ">= 1.7.0 and < 2.0.0" } +commonmark = { version = ">= 0.1.8 and < 1.0.0" } +glailglind = { version = ">= 1.1.2 and < 2.0.0" } gleam_stdlib = { version = ">= 0.34.0 and < 2.0.0" } gleeunit = { version = ">= 1.0.0 and < 2.0.0" } lustre = { version = ">= 4.2.0 and < 5.0.0" } -lustre_dev_tools = { version = ">= 1.3.2 and < 2.0.0" } -lustre_http = { version = ">= 0.5.2 and < 1.0.0"} -lustre_ui = { version = ">= 0.6.0 and < 1.0.0" } -modem = { version = ">= 1.1.0 and < 2.0.0" } +lustre_ssg = { version = ">= 0.8.0 and < 1.0.0" } +simplifile = { version = ">= 1.7.0 and < 2.0.0" } +tom = { version = ">= 0.3.0 and < 1.0.0" } diff --git a/src/build.gleam b/src/build.gleam new file mode 100644 index 0000000..45bcc7b --- /dev/null +++ b/src/build.gleam @@ -0,0 +1,65 @@ +import gleam/dict +import gleam/io +import gleam/list +import gleam/result +import gleam/string +import lustre/ssg +import tailwind +import website/common + +import website/page/index +import website/page/post +import website/page/project + +import website/data/posts +import website/data/projects + +pub fn main() { + let projects = + dict.from_list( + projects.all() + |> list.map(fn(project) { #(project.id, project) }), + ) + let posts = + dict.from_list( + posts.all() + |> list.map(fn(post) { #(post.id, post) }), + ) + + let build = + ssg.new("./priv") + |> ssg.add_static_route("/", index.view() |> common.wrapper("Home", _)) + |> ssg.add_static_route( + "/projects", + project.view_all(projects.all()) |> common.wrapper("Projects", _), + ) + |> ssg.add_dynamic_route("/projects", projects, fn(p) { + project.view(p) |> common.wrapper(p.title, _) + }) + |> ssg.add_static_route( + "/posts", + post.view_all(posts.all()) |> common.wrapper("Posts", _), + ) + |> ssg.add_dynamic_route("/posts", posts, fn(p) { + post.view(p) |> common.wrapper(p.title, _) + }) + |> ssg.use_index_routes + |> ssg.add_static_dir("./src/static/") + |> ssg.build + |> result.map_error(string.inspect) + |> result.try(fn(_) { + [ + "--config=tailwind.config.js", "--input=./src/input.css", + "--output=./priv/style.css", + ] + |> tailwind.run + }) + + case build { + Ok(_) -> io.println("Build succeeded!") + Error(e) -> { + io.debug(e) + io.println("Build failed!") + } + } +} diff --git a/src/input.css b/src/input.css index bd6213e..6a34a4a 100644 --- a/src/input.css +++ b/src/input.css @@ -1,3 +1,14 @@ @tailwind base; @tailwind components; -@tailwind utilities; \ No newline at end of file +@tailwind utilities; + +* { + font-family: "Recursive", sans-serif; + font-optical-sizing: auto; + font-style: normal; + font-variation-settings: + "slnt" 0, + "CASL" 0, + "CRSV" 0.5, + "MONO" 0; +} diff --git a/src/static/.domains b/src/static/.domains new file mode 100644 index 0000000..8ac45cf --- /dev/null +++ b/src/static/.domains @@ -0,0 +1,4 @@ +lesbian.skin +naomieow.xyz +www.lesbian.skin +www.naomieow.xyz diff --git a/src/static/assets/ages.png b/src/static/assets/ages.png new file mode 100755 index 0000000000000000000000000000000000000000..a5347bffe1946f6dfdcb531248e432f828210d61 GIT binary patch literal 12023 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 L`njxgN@xNA7w@Dd literal 0 HcmV?d00001 diff --git a/src/static/assets/caramel.png b/src/static/assets/caramel.png new file mode 100755 index 0000000000000000000000000000000000000000..ae1798c97866253d6e102c59661e7410d5110765 GIT binary patch literal 55894 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\Qnxus`>G- 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 literal 0 HcmV?d00001 diff --git a/src/static/assets/git_64h.png b/src/static/assets/git_64h.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf6742a81eeb872361af0e088fa6bfdf55a7b7e GIT binary patch literal 4392 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 literal 0 HcmV?d00001 diff --git a/src/static/assets/ibo.webp b/src/static/assets/ibo.webp new file mode 100755 index 0000000000000000000000000000000000000000..ab14ffcd75e342a4c16565dd4b32606a0f3ec126 GIT binary patch literal 3902 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 ABLDyZ literal 0 HcmV?d00001 diff --git a/src/static/assets/titles.png b/src/static/assets/titles.png new file mode 100755 index 0000000000000000000000000000000000000000..31c13d2494b2aeb3ec3bb1f25487dfb67b7bf485 GIT binary patch literal 11944 zcmeAS@N?(olHy`uVBq!ia0y~yU}6Aa4mJh`hA$OYelajGa29w(7BevL9R^{>K%m*`VrrSg|$btNXV3apmGzzd-9H6}97hI*8XYOFl`}drbp(SA1%u7R z_Wt&Fxp*Oi?Z>X>#&1@(Z%cRGdR?;h?yH(#{`n3T41c;97=E;OSH5qzSV`TwBhRqdk%7TRN47V^ zZuX@Zv!y$Iyf$tqpY}Fl(x;CrK7Cv)^X)$e@2zcO-@pCOEUA81CUjsS2Sda0 zCyxVdC!T-hW4Cr=%AL3GWISzTF5RqgOaCnCc`0r4TIs2?>~5}IdF$n_JJt-}l^7W0 zCiJv?4KZA<&L!FV`_0n-29HnfI5xSkHZ#j-_StQA_wHWaI@i{;x_0|+Hi>=)h8;&H znN0S4c__kfd2wc|&hGTjcS{A>_8FP3ds^izpBGxXIO_5QSLOz74u*!qho&u6=aP(_ zrL#()-}aY1hs5bgX~vpo(}Gr&?W(HZyr_Sh_A6cwriRID>i5+2-nTly*jW&9zW4dp zGZAr}9yi{;tMFQV{W^QJ=-&O2fxFLtVR*pe#=tP!)mhQjdfN4+Cl@Ub`&jL%By_F& z=_EZrkuL|sT;H#Izv3{XOT$_Yh6dk5)0RG0=c-Cvw8BFF-*F+{){@LcE4Y`=xfgr? z>hIaRUv2ha*ucuju;Jj!n5g*KlHqz{rMtEFiSW07o%+(y)_UIc=+)7?c5QxMHof71 zA_IeRNXPLnpYF6QyX?7rw-Cq7443t1rh~%He45#o+wXSVRaG#EVBzR-II*duaL)qq zP3P|H zeI|A+00Fce^DaQA3A{OjP$Oy8x#dF8DA1!nUD)ub-|-@EhB z)WZjq4Okg$TomOl+uK+kKYia_EtvD~pF49t75XKz$h9#r$RycFUcYZ^xLW7<&tHCe zVpl9iGhLNU}D$n<>~1=wp~B|=;4OCsDSGh zkw*{j`SVv#jPIp-disq`oHh)M3_FgeXf2eVH!sZO$a=Q`7iY!4KhE?l<6u0H{$UF9 zJ1OrYUmqJA@A<>5A++hs;>(w%{5PpFSR9zlci~^w|M~Og2HKoi?-FqIkmBDbXL`5_ z-{mr>FflA}QCTBDcV^nb`HbKEdFMP+ad%*0ka(AnVR1anJ~<^h@b8N+JxYpvd~G*5 z7z}QeKU;2c(#-I&&yq(~sr%lPnKOh7G9;|g_nTH?HNR}Pbiv7+HEz?@y7J1I3wRkB z+-99!@+E2KlQQ!MoAiDAGxbh~9x@PSWH@&6h|;fjD>vyZYv@h){B^D-@}rzGo5!$CnL**gInhm8 z#aHzEGSnttxmj}zB&@`sut7=DJAR&2@owo4E7zavDNYn%>Sbs+u*)JaMC}-7zQsHr zlSR*uap#pYZ{THQXq>{)UOKVe-0#IDm%xt({hlns_j6b-9X;8UWV55tX=8!Md0`d7 z02@U?i%yS-^LxSC3`5IQK9q%&72E3Rtvo zg5H!B{|uwf_dMmC$|1AwBFB`^OJ$1xOYE$$ShC#Pa{F$^9+B!L0uqX+FBLxy`TzZP zX6cro{H*0y1DD>t8n=CQUj2f51sa}R5z`huoUrL4sO;_PoU!b(XW!wy=RZHLtlhA6 z_3rwdhWCOD0utOer)=7|;`ZHwy8)NH)~?L9uHLmZJbd-_`WO4}Ph1igKea5pJgffq z{mBzIh!thpMxMyBnmpyD`=gZPz_aO>cg3#VeOEL=g@b{k=W`qX#cyoPwOeAZR?ptO zs-Xn{f4%;8mC?oyy*}~MeN&8omF(eOD#OUo=*Zxpuw=2|+4ReK<%dNN zFDyyjy=eROZSs+C<-^xrzWjc=`ImFQw#8{pFIhNcdgpiTv+2QJuF6>@{&E`_wr`B$ zYWz^5nf`=3bMeJ%_O*Lf+}F*$@$J+8@YUC^OM6TInlG=PwfN??y|(K)Bd5*NO1t}x z%|M8Sf#uN7rb_eed-v~LUH|V%-?o?v!F;pZzn=HMfAMx}?#yj!?_wGm8WI#34t)3O zoWWIC9Jb~=oAcjK*ShNV?^)T{?R|;;@WOj>x3BHL9~F9k!P1XQU3z4NI9Qk%YTk1; zYi;tYUr@hyu2d;b>ZxKK-gJ&z*N&${Y+FOiT=@c1%s{hcqL@zHJkHciv@n|C3i4T>eceul(`EY1zJi6Du#j&9g{4 zcp-N=2OkqdO|G5zpY{)5y?o{KLhrmgmb`mY=*8o^tMkeamle0Q__K&JGVBxGq;qzO za9;W0u--iX{d+gRD>LtV)4P<{RK{ZZ0pHCtmpG}(*)<+eU^uY-*yKW2raITx^5NUA zy!@S?7`xp5!ffq>^SCjk7e9-4;H}B^E-PIrV*WPPF-L&7Siv(2B+x zn{mcD3m$962jMIXKY}L6@A5W%Klf{WkT(m%fnpAZ4@+ZoUX_XGY<_g`be*48hyCTo zoQD0~9A-=mHJU5LH znl7-9RudCsXFA-^!SG>jiHgt-;~UK~3{Af_x9WPYY+wsw0r`A#2TS?=(#_Y4cXMyc z{MKA;88Bi0WDY$hh8pz~{I}mJ?D+k3H{-2a75iOgxNH7t&)2O{KcT+EMX=hch={c9MC@*(a;>Na-cq+ zW8H&)Zb}=Pb}>6}eG4dB;GW0yXRb>D>vwaZM$re14G!}QB0AW=pNL^%_@i;4KZqrC zg8VkeI!`vsJ1mv8%uU@44EH(TMSc2P`KiXHLjRPLjo1rQ2FHJXN;{fTVB3cIG$N>GRmIkvuciwHC$X&<4@vU6wpbJC8dzQVotfqRi zX01*(5xL}K_O{GCNA!uXj9|>c%2NjvZjJn^9R;1Q-4;3EOm)F=@GFpz+>;jfVp+? zx7YTSMah0`@3~;Z!N{;L`Ox7qt+^LUtX58~y8L$CoD)83D~q%qmYL_IJ866s^1hT~ zwp9I-n*MXtzG$gclEE7?QRk~*clo2U4HZRsx%L?{hB|mMSuiucGsW|(RliAYsKK-vh9qYSy ze@%vifC9sT`DIbEzDpi~GGy`0DSpo{?TTEx`|i|a%gN_i>b~yZ@;|nvR>!mW<`li2 zr&}lZ&V8ZrAw^})dcXeHFO&TC@7ud{mr5hMLUXSNUofCM;Qhw&%6q+K0R6 z@=px#h@UN2zFWHQh8n|-M;2HAJ=Ri7`t@_C<==1TcG=zIJr*_lu>!+^={}V&(vkyf zYtx*-MM8Mr6KUhe%Jmu5SGPS3eWKC3=~n#|j}w)k}C^I$b&vfQZ!fRhHd%q; zfSKayATzPRrFUh2rmr`TlHzG^+$Z%T?*6RV0b4I$ty=uFEL<+jXzGRS&(!X|YfJuh zSdsC;j5%w*$zSb%e`fku`*pfm>y3Yzb?5&K~{{Q-MQrYc$bN-z;y6D%#moE>zKeyw0+UB>rze?tLyB?}q zHRE#Y#yOkhb}AZ)@x6R{lQVi=Xq+3v0go0P@8w0Au^LZJX8XQ;AS$r+W9o*ed`V#j z6-`0D*Xil$U)GyXv)#^?q$7B}|Gba3q-BkLnZVksdu^2-i^i?|CZDD^`%;bB(xZFZ zZpRk#Ffyo5>UJ&NH|28h(m6r=6+ez2PJEga7@8{)6}{HHv~ZEZr}JMog_tbbU!CN) zf6vxMPiL8*;{Y|1n}aVm?tAy$pw529$-KO?Z{@EqJ*mXVPyy<>T+)n{IQ`N`Z?Svp z&yyjCrZH>?$(Gv6_rO6%=92%pGcWXCTUVv$-oCo~#e8Y~7ppHPANwooaVf##ix0*%Di9wmOR?FCgD9FTh!X^ zJr+67>J(3d+TEvKw%psXInnz-)r=UORnwoVF;$j+d>plMJ5#;s*T5fZZ`q%D858wB zPk@1;RmXdIapqk4)0t+Ux9|MBcti2Lf9K*3pI|6R(3^azzP8Ho{kr!rJ{?>4_WLDw zC&k!V8ZTN;E;?kl>dl)CJJRoM+xYuuV&4B1%ZxlTlaIg6vuI*yV7JQK`d=ZrbBEKk z)YCU_Z~y-4*QYNxPS{`fKUD6{JWuxY>%VKe>~7o%-EDtML4d#g>zj(W^S#ffR-8Dh zt!9|H?nj;D%5U;1HiE^wx%)V;-Iwu85xM%W*~Mv^T5#doTN{$9c3%zLdO7r*^6kz$ zQ#x9{2JKv;?;}>aI_Ub=ySBP>A4oj(IB_XPZE5k*HGWSo9Si^S{Z?*y&u(Ugj;sHg zmn;&z%_X*8ks)FKE&06f>$FnI3T7kzo@$wj*J-?}HBzI4;cEuCBP zYrFGW^Qfqmrduz+TXE^#s%tM-+P--G;AdK7kc~)~npmKnT&SVkoXoO@C*6PZ#1n(Tat5irt_+M8QZpA ze_8b`#BjgC%Om>&SC#F$#r5LjezmaQYLD}8F!+W4<}V5ejJdt>xzp_a^6Xzsix~zl1s!l0i{nxCblsGlmbM38? zx?fl4+A=ZZlwMta)xP+5g}^>eJF!hVbI&a=T{z|X8h^jT*5M~^h%wmRyn8u(`SHj* zY|&rXnB#N*8`rAZ%k?rmaE_aO+rDe_&z`#ddooWeO27U0kNMZiq_QXTd29AW2d5uV z*SV!A+WTUq)3lwnHbRUC)c4qIuNUd`h%lbH%SBqD%}qA0L(-eXA$awX;@+ zo$=V6qo0-(T+rRy{_D@z|s0cW*spQ$a zJ9Ps2yR0Xlf6=>?_iL_I_V2}SSM9U3PCT7{*eBd6-Ba#t@eO$hzX zFT~w$GT--Q+SPfFL)O0w0VPJ4hW|Vd=Y*|apS}Ct`hUxB9bX~H5F@rPUA10d_20vD zw9|6A8TK9w2;ZjlD`{uS>F0-a< zdHsgai$^<^qL~Vn{ywamQ6hEKZjJ*(K|ny*r+%jso4$k?t}ee`p7Zlh+WPhV<=;#8 zP1*ePb7I^6yztze2VOZwoaA3F$RLwYwY7f6=cRM>*1tco?%>t$W@TSXG}Yx6Tl6hl z@?AFKkNZ~s?E(xrNw4nw3w)9kcs4C)SMcU^?+1Ci7vH|R%kSx>Z8dgHZ^O2(yIXdA z+j;#X$-h2*ktqIMz{{9$WW~4sXMZBjZDUY)+s`DxP#`lsch)?s4?#PZT&^*HsKj)D z!(e-TO_@Gh%u4f}ssirY?qy`Iy}0S^XW@w({GL|+JRHl?AgpmD*((0j%auvfY@Z(& z*`za9|Jj#wzqaM(?%BR`^?O~Po8NwN%sVZ;dt2Q<{`=$8E6^y8m* z?b(=o`(%T8S@x}YZ&pm{xcTWP$F#X&?&i6BzUt>hR;Bga)hv)_d|)Vh=Iwm_XDhzB z>qv6G?sN(ZFJHB-=3l@i>({q?m>z8WQ<-~u+g!~{{}dxuYV^nL=+A%X9Prlq`6HKu z+ZYr)ua{@vnw68Sb5PaM;!fJ;wX;R5{Z`m~xKnZO+Ie<4amELXE56MQ_c~%S+cWdz zF1gA4^P`<>o*IQ(AJ z?Q8vh##{~Ot8YJhwSPuOrrqffr9H||%GmFuL|zg;2z z+?ZK9K^X^%dw3Y)=Se-Tso<~PHDz<{{4cZ3!fQVCn}@&otG8sapzYbMS3W2_W;)=c zw^m#YG{V6zSe77?u=U=S+WqEx-d8P6dp-02rGM|l`u?_xONuf$O(m@sk^js%S?1tNb${`<>*w5yydAjP ze#2hb3h&+bugB-?Y5de6d_VEQjvh`1&wmvg4i>Di->iEbre6gEa5f{a=L-*eT!ZDxCd& zva-ZADc#t+ptkjflkwYE_k3dbZlJ^<@zFU+<=>V~EBS6SF)zO>U+~AcK>l9u0oz%7 z?Y6VBU6>!f{mQGaci*u+&}3nFU?-pRHf#0Ovfa`W6VIka%ja!=%fCaOkzvRA0*$|U znTOxzCAj?Cut&4(FXMc71_rr=t@kdOin08Fz_2n@O`~){W^(vW<8JU-~HCFr8a!xuh3v(_`vbHcbeUjSzmg!qea&iK9c|7 z!NTysaL>+NORYYioOk`jw;eYHD||p=CBK;e&O6;?^S*Z}Z&@BgeA;rW{z!Ea!-VqMof)W;n2OKk!zo}izU~qS5VCd@zeRl7V9`Az+4u%7Q z8_(adW;?vF?yx2AfsFzT4aqn1O254O)pz@@!M*rvQ2u7#~$ zyIKW9Q3K7)+dd}6+Bfe;JB1D0*Ga`*0b6n(X2zrio2ITDNv77NR- zmF+OR;COp2pY#6%90Cjt!csi#Rkek^4>Q<5r1SRhF)~Oro=uCMZeDixo!f)Gr!UwW z7_l%UxZI1pou+lb?e^Nfdx`43uiymgjEX|7yN{bix!4h65aiq6z)w*UPsY zykKt-#KMqp1T9-gTGve$*<{FaOl8|6wXqWH?|kal+E# z)-`Y6@~H0JwqsdYeL{7#t9UuGXIb-!g5enLxVlT0S}2O%bgo-bc-7A{pvynTCR zdG)WqpW5EOWjQPDExoF=dfWENT`gaGZx-IZ&A6w7fk9dIP~u)2^Oqjc*UP?@)NX&~ z5$#y8IOy{6-PL_tzV_baJbL&WyW@dw4hDm3D`Rd=T*=^Bm0an}%dQo*e|35FueY-4 zZa(KkH(5sH@=fBRmTmQ>;k`D4lq z2QvKpSnu4-eqnEBsrtd-eeRo#mDdWEtj#}X@P%K1A;Cs{In%wEo0r7gZ`GYk+q~9( zeV+BDYr#j?_&vYew}rJrl96FTaWLcGhXMO{oz-mo{)(6F*Vo*1zu(@j%D--%X?gpW zq0WJUVT--!hf_5-CvGddE&I1H_434Re;#~4J^NO!b@8qH+tbuV_&?uZR$*fJuySXP z*K==6_glL*g&*HRn7d^47;meMLLZ6$7p`hPGV@de4)0<>0B)8p_f3fv;wo#$!fq&EX zn{Ji4@hRQ2Dzz@?qCmg(gSbC#4Bs`E3soiVdEpVQ{dJk1bj9_*yI)&J6}?!rL|m)EuRzAdG@qpm;g zeXx#w$DVzQkJ_g9{hE7v$(KJa2PbZ0*bkZ3W8eAvYFWiGOxn7hsj#%m0!8_x3TW&g}VC8|9tG* z{xG^bGcfeMn7MI}pS8*PnAhLF{95$?9Q%*6k7j+digmwbHP`=jlk;oi1_eb1hT|XJ z{@i55x7K8T?Aq7%W`8%!J@|C2FF9Ox`C`G^?7T}8w>2yPDHGst|MIHIcsrZdrTJlh zHp(UJy?AN9?5ywGRrXrNhbg@|BgyM<0aQ-T@>BnMsKt0Y+pk31hRdJ-O;_ulb+X{J zd_fGT1dP*~ZZgx$;!@b!+n4igcF84ZyfkHh{#QMibMFb=`U9Py0?=ZIsexG8v+$Q; zTi2Cen=6@Q-&KBXTj}kEmH#s|j_B4yipf()7yY`nrkMNUy|}w&Z-V9?FI;}Dz+}oE z8}o%VHm@S89RdUy8U!t(PrP`UbZ+9dZ|kqdhF)Fx@LT)J(yCuy*P2?Iyj}l!>6~-g z6GLY)Fz{)D)&hubI%mShBE!faF){y~Z-&mxGl2)+{&Vq z-p_rsA|6sEKYe^|9s7@pa{uscT76r~A2hG+`nM~%bj{xUbABrXoU;cFb(zk3_3ksjnHRe;FywsLI`Ri9* ze0%d=*yiik_uq{Qy}vNDKDl$pzDF0HdN*W(iu6O%mcE}`lxOR(`1a-X;%{wR^TDYo zJhWUP!y`yX=F)e6|{Ov#N?qPj5S4UtH>adh4>>`Sttr z&--eLC-1jU5NBdYSRA}_%RFg)i);6)rFZYz7cKqs`MovQzTRsqHW!MUqw&JW?r}tQ zLnjAA!`XdSw$Ezu-VcvkWS4PZV33*6>H6i> zp5o`sCe^in-@o?$^@QazV|e+uFZ$P~UwLI&d}+Sw%c-rKj4pO4zhzve%)r1Gd17g4 z=Asu7)pP$j?BBI_Rs6k}i+-y=-}rwwZ1vjsI}z7jcW1w{4EgDOiF>lEZc1?9R`wZv zD|jtlcn2rn%GkE$$%Cw4v#;*T3wu55q)MsU{EH!03!QA1eYl(W?Owu)yJha$Uzg>D zWcA5ul_Z!=zBK*RncvKQN(>Bqn{;08<_`X~JiB|9<(B#X4iv5ZIWxEBVt|M9$%|V5 z9gQw_?Ask6cKKh!<{3;3GSfO*zBXUJyiUI0vMf(b{m*t?@B8+qYh8}aWSzwDuZ@9W zM}m#y_0xQDQcptf&zO6`<uxW4W{E(^l}*JWV` z9-rK?&&>E?nK{E^K?Vl#nHKExINHDd4UYN5yrY+aVTX=z?~7{gv^jO@k(bKFPMs<` z$^XELiQxgG@ysQ0v$S^J<-J{7ndMU~^NqQJiIL$$hqv%ihx-lXYV$90^UZ7Fc<_*e zp`m?`ReadZgR`0E8qM^ws1j#ta93tvkQ3sJ{Pl2VrsyNX?YoVPc1DEQ+t{x4=s3>% zK=qFsliXyE_OF*W8#nF{)fer3u{=F}ib=+F<_F>|3)%REQ2BM`F!xK)tmAyi>)$P&@_%6czut(6=VOZD>LRO! z*YnnAuDw{a+j_p?RKFKfe{L!|^PPDgXjMl_ee8ib>%z0Dic`I>`dz>JFJ+Nn?ZTK# zKa>2}=A`hja4|A`Sh)FTkKfZvp!)miS6S1lTKC)ju7`G+L|!pYu2gEY%+ru2(Z3E3 zf(#7}T`f9i(8*j@N za4<43G*oW^t$BIC0b1i#Udqn=wcUC9?uQU=uBkO>RFH*%f#F?LuF2hZP01V#3=DTl z)7L*N6PIyjU|?_v+Isn_SFa!g14BS`t9Y5(6UgE--DOTHdVJNh=yqKkon!Qh_! zH1pn@|H>OcoLf(OW$&)KcK2P|V~}~tch_C}`s~%T+jk3GkG$n$V0h3r`|7T`((KT- z-aqwV?WYnfuEbv}2Mw%j)UWRZ8FC_R^IFh?lzSOF?}}arIiPX-wTzegudR3GK1kYs zSb%|nq4CN~{x6~ z_+YT=??nZM1IBI6nLF=YXpauPyW*P6-TBrs@74>&WpDX%?bWyCiS~vi zWw_(E)jo=aVaK|AZ(rVeH*Z}|Sjg*dci#0aIp4<@G0kLJN4DPNOHO)gi>wq+zvW|U z`%$9$Kg~5-H|$ft5F^97g3Y(=S2epf&px~D-rXCCB@6`&SNHwpU?`X(zWVRtq!NY= z>{s_~=3v+`cmArsi>rRTaESV7AfCt6@3i$j9}`24a7)(z6%w)xa{O2K{pMhhSg8>H z+x_SZh7XnXtG|7}A}#T!;R6E`gWI7aS^rnanOPZ3_1kgR_JA4t)qm`>cfYy)U4V(9 zuQ%)e4++@@&K2MG_A)dmFTN#j>&7l167u_>Bg27YNw27NZ^M6^uP)`)_?~6xyYQGy=F|1#7>$^D4dMZB*_jy`=KtDq>;9@0*B0LT-pt<1 zH|NySQmx~?Z4$bx{ytD-km$>@w|FNjTT%V?pER$e?17H~Z`s8e4+Qk)`G>Fk#@u_6 zQAYggK1mJ+wuQIMum4@le9|N0au44FyO7^$iVPABS@PerjjS4WulRP>m4QQJRjrMl z8~YiTt^CSN4)+&Km%nP~*LAV+!J=Eo_x5lwysg{te)_Uo?XhxZRs~wq!+I_<#xJ;a zyjen!f$i|ZS$p?Qnz-S1tmMk5?aM(+8!ncGmioPHW_~9t%Mm&4)XJ7;#hPc+gQdI; ztRASYjf)301um9_?#^9RTQg6P(P7fIS-EFZgY(KCA6fD3p=k5N0PU~K!e06A-MQ)L ziw5_Aw~q@Yg&D$L`Np$1RBd10zvA1&sK?OF226MYzV#I1bk9h{t3{@7#1w};_9 zd=|}F^6H5`3@f(mj>_H=;#c|q+m`06|Lbpu<~?v$xML5B#0)*q+~V3GrDtW|Yo0E+ z^}k^EBCp-A%gP@lA7f$gtSYZ{x3{rS6CyI0+=E)9I6yn^lU!fDyQ zy4SzCvtPQ{@oe+&VAjnuMHVx+N31jb`moH^T)TAfHnYQaZmbQ_S9eXz;ys(TXS3LY zg!}*6qeI`8dVDrGzxQ>tMfroxH@5RzONuh6yzE`d`}eu}b5Y)%;i&;{nfc59?_^%q z#~1MSFy}GW2Cv<#ujj3Q`Fr{DRLeVNSM3T+)Oz{0{AP|_eyhE?hnrzi$>yl*@28o4 zIeU}y_H8Mzs5{v&7O(Bfdv6+Xl3yk`z@43M)n94RvR?-x-PjmBcWnv{%s04lx>%Si zda*qBiu=W0^4dQeFYYccd61BPuukE_zjIA#>({Tg{#~1{YJVpwhhf5!)z+c8+i(4P zcWBC|k1smy`?KT=j_&WEqzHRXqB??&~(a zKJk*mMGKA?zT?g)ss8mMZ`N}*y92eR{JkL0tzH9KE+|nIu9EUHMsfA#)}FLWo~?35 zrWaoFm#mJu{?*I3JLGpmeu`bJ^@r^j8~=a%r@n2@l5(r*X(j^mTp27}R8m$>=~yk% zuPMi=sp5V2pu^g__~^5JT5tP)G&BEsn^2Ol_1+^@-p3O5tOYafC9L@B=KZ>N+U;1z zgvrfYnHxIyY&2qHU;vlk4UM3pTB3u2fnk)%Ff_v9#ee39tJr!|_%qoV7#J8lUHx3v IIVCg!0Ql7)TmS$7 literal 0 HcmV?d00001 diff --git a/src/website.gleam b/src/website.gleam index a6f572d..ecc3d09 100644 --- a/src/website.gleam +++ b/src/website.gleam @@ -1,546 +1,5 @@ -import birl -import gleam/dynamic -import gleam/int -import gleam/list -import gleam/string -import gleam/uri.{type Uri} -import lustre -import lustre/attribute as attr -import lustre/effect.{type Effect} -import lustre/element.{type Element} -import lustre/element/html -import lustre/event -import lustre/ui -import lustre/ui/layout/cluster -import lustre_http -import modem -import website/common -import website/posts -import website/projects -import gleam/order - -// Main +import gleam/io pub fn main() { - let app = lustre.application(init, update, view) - let assert Ok(dispatch) = lustre.start(app, "#app", Nil) - - dispatch -} - -// Model - -type Model { - Model( - current_route: Route, - posts: List(posts.Post(Msg)), - projects: List(projects.Project(Msg)), - repos: List(Repository), - ) -} - -type Route { - Home - Posts - Post(id: String) - Projects - Project(id: String) -} - -@external(javascript, "./ffi.mjs", "get_route") -fn do_get_route() -> String - -@external(javascript, "./ffi.mjs", "init_theme") -fn init_theme() -> Bool - -@external(javascript, "./ffi.mjs", "is_dark_mode") -fn is_dark_mode() -> Bool - -@external(javascript, "./ffi.mjs", "switch_theme") -fn do_switch_theme() -> Nil - -type Repository { - Repository( - avatar_url: String, - description: String, - name: String, - stars_count: Int, - html_url: String, - updated_at: String, - ) -} - -type RepositoryBirled { - RepositoryBirled( - avatar_url: String, - description: String, - name: String, - stars_count: Int, - html_url: String, - updated_at: birl.Time, - ) -} - -fn get_repositories() -> Effect(Msg) { - let url = "https://codeberg.org/api/v1/users/naomi/repos" - let decoder = - dynamic.list(of: dynamic.decode6( - Repository, - dynamic.field("avatar_url", dynamic.string), - dynamic.field("description", dynamic.string), - dynamic.field("name", dynamic.string), - dynamic.field("stars_count", dynamic.int), - dynamic.field("html_url", dynamic.string), - dynamic.field("updated_at", dynamic.string), - )) - lustre_http.get(url, lustre_http.expect_json(decoder, ApiGotRepositories)) -} - -fn sort_repos(repos: List(Repository)) -> List(RepositoryBirled) { - let repos = - repos - |> list.map(fn(repo) { - case repo { - Repository(a, b, c, d, e, time) -> { - let time = case time |> birl.parse { - Ok(time) -> time - Error(_) -> { - birl.now() |> birl.set_day(birl.Day(1, 1, 1970)) - } - } - RepositoryBirled(a, b, c, d, e, time) - } - } - }) - |> list.sort(fn(a, b) { - let a = a.updated_at |> birl.get_day - let b = b.updated_at |> birl.get_day - order.break_tie(order.break_tie(int.compare(a.year, b.year), int.compare(a.month, b.month)), int.compare(a.date, b.date)) - }) - |> list.reverse -} - -fn switch_theme() -> Effect(Msg) { - effect.from(fn(disp) { - do_switch_theme() - DoneChangeDarkMode - |> disp - }) -} - -fn get_route() -> Route { - case do_get_route() |> string.split("/") { - ["", "projects", id] | ["", "project", id] -> Project(id) - ["", "projects"] -> Projects - ["", "posts", id] | ["", "post", id] -> Post(id) - ["", "posts"] -> Posts - _ -> Home - } -} - -fn init(_flags) -> #(Model, Effect(Msg)) { - #( - Model( - current_route: get_route(), - projects: projects.all(), - posts: posts.all(), - repos: [], - ), - { - init_theme() - effect.batch([get_repositories(), modem.init(on_route_change)]) - }, - ) -} - -fn on_route_change(uri: Uri) -> Msg { - case uri.path_segments(uri.path) { - ["projects", id] | ["project", id] -> OnRouteChange(Project(id)) - ["projects"] -> OnRouteChange(Projects) - ["posts", id] | ["post", id] -> OnRouteChange(Post(id)) - ["posts"] -> OnRouteChange(Posts) - _ -> OnRouteChange(Home) - } -} - -// Update - -pub opaque type Msg { - OnRouteChange(Route) - ChangeDarkMode - DoneChangeDarkMode - ApiGotRepositories(Result(List(Repository), lustre_http.HttpError)) -} - -fn update(model: Model, msg: Msg) -> #(Model, Effect(Msg)) { - case msg { - OnRouteChange(route) -> #( - Model(..model, current_route: route), - effect.none(), - ) - ChangeDarkMode -> #(model, switch_theme()) - DoneChangeDarkMode -> #(model, effect.none()) - ApiGotRepositories(Ok(repos)) -> #( - Model(..model, repos: repos), - effect.none(), - ) - - ApiGotRepositories(Error(_)) -> #(model, effect.none()) - } -} - -// View - -fn view(model: Model) -> Element(Msg) { - let page = case model.current_route { - Home -> view_home(model) - Projects -> view_projects(model) - Project(id) -> view_project(model, id) - Posts -> view_posts(model) - Post(id) -> view_post(model, id) - } - - // padding: 3vh; - ui.stack( - [ - attr.class( - "font-inter font-normal not-italic min-h-screen p-5 bg-gray-100 dark:bg-neutral-900", - ), - ], - [ - html.div( - [attr.class("mx-0 sm:mx-6 md:mx-10 lg:mx-20 xl:mx-48 2xl:mx-64")], - [view_navbar(model), page], - ), - ], - ) -} - -fn view_navbar(model: Model) -> Element(Msg) { - let view_nav_item = fn(path, text) { - html.a( - [ - attr.href("/" <> path), - attr.class( - "drop-shadow-md no-underline bg-gray-300 dark:bg-neutral-900 p-3 rounded-xl text-black dark:text-neutral-200", - ), - ], - [element.text(text)], - ) - } - - html.span([attr.class("drop-shadow-md flex gap-4 w-full")], [ - // margin-bottom: 3vh; - cluster.of( - html.nav, - [ - attr.class( - "flex rounded-xl p-4 items-center gap-4 border-0 grow mb-5 bg-gray-200 dark:bg-neutral-800", - ), - ], - [ - html.h1([attr.class("hidden md:block text-3xl m-0 text-pink-400")], [ - element.text("naomieow"), - ]), - view_nav_item("", "Home"), - view_nav_item("projects", "Projects"), - view_nav_item("posts", "Posts"), - ], - ), - ui.button( - [ - // width: 6%; - // margin-bottom: 3vh; - attr.class( - "min-w-9 text-3xl border-0 aspect-square items-center mb-5 p-4 rounded-xl bg-gray-200 dark:bg-neutral-800", - ), - event.on_click(ChangeDarkMode), - ], - [ - html.h1([attr.class("m-0")], [ - case is_dark_mode() { - True -> element.text("๐ŸŒ•") - False -> element.text("โ˜€๏ธ") - }, - ]), - ], - ), - ]) -} - -fn view_home(model: Model) -> Element(Msg) { - html.div([], [ - html.div( - [ - attr.class( - "drop-shadow-md text-xl p-4 mb-4 rounded-xl bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", - ), - ], - [ - html.p([attr.class("mb-4")], [ - html.h1([attr.class("text-3xl m-0 mb-4 text-pink-400")], [ - element.text("About Me"), - ]), - element.text( - "Hi! I'm Naomi (or Mia), a trans girl from the UK who loves to code! I mostly make Minecraft mods, but have started - to begin other projects like ", - ), - common.link("Sheetr", "https://sheetr.app/"), - element.text(" and "), - common.link("Lilypad", "https://codeberg.org/naomi/lilypad"), - element.text( - ". Both projects are in their infancy, but I hope that they can both become useful to someone - out there!", - ), - ]), - html.p([], [ - element.text( - "I absolutely love learning new languages, so here is what I know:", - ), - cluster.of( - html.div, - [attr.class("gap-4 sm:gap-20 flex flex-col md:flex-row")], - [ - ui.stack([], [ - html.h3([attr.class("text-2xl underline")], [ - element.text("Proficient"), - ]), - html.ul([attr.class("list-disc pl-8")], [ - html.li([], [element.text("โญ Gleam")]), - html.li([], [element.text("โ˜• Java")]), - html.li([], [element.text("๐Ÿ“œ JavaScript")]), - html.li([], [element.text("๐Ÿ Python")]), - html.li([], [element.text("โ“mcfunction")]), - ]), - ]), - ui.stack([], [ - html.h3([attr.class("text-2xl underline")], [ - element.text("Learning"), - ]), - html.ul([attr.class("list-disc pl-8")], [ - html.li([], [element.text("๐Ÿฆ€ Rust")]), - html.li([], [element.text("๐ŸŸฆ Go")]), - html.li([], [element.text("๐ŸŽฎ C#")]), - html.li([], [element.text("๐Ÿ’€ C++")]), - ]), - ]), - ui.stack([], [ - html.h3([attr.class("text-2xl underline")], [ - element.text("Want to learn"), - ]), - html.ul([attr.class("list-disc pl-8")], [ - html.li([], [element.text("โšก Zig")]), - html.li([], [element.text("โ™ป๏ธ Kotlin")]), - ]), - ]), - ], - ), - ]), - // html.p([], [ - // element.text("As of this coming September, I will be studying a BSc in Computer Games Programming @ "), - // common.link("Staffs", "https://staffs.ac.uk/") - // ]) - ], - ), - html.div( - [ - attr.class( - "drop-shadow-md text-xl p-4 mb-4 rounded-xl bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", - ), - ], - [ - html.h1([attr.class("text-3xl m-0 mb-4 text-pink-400")], [ - element.text("Repositories"), - ]), - html.div( - [attr.class("grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4")], - model.repos - |> sort_repos - |> list.map(fn(repo) { - let url = case repo.avatar_url { - "" -> "https://avatars.githubusercontent.com/u/95784613?v=4" - a -> a - } - html.a( - [ - attr.class( - " - drop-shadow-lg rounded-xl p-4 - dark:text-neutral-200 - bg-gray-300 dark:bg-neutral-700 - hover:bg-slate-300 dark:hover:bg-slate-700 - ", - ), - attr.href(repo.html_url), - ], - [ - html.div([attr.class("flex items-center")], [ - html.img([ - attr.src(url), - attr.class("drop-shadow-md rounded-xl max-w-16 max-h-16"), - ]), - html.div([attr.class("m-2")], [ - html.h2([], [element.text(repo.name)]), - html.h2([], [ - element.text( - "โญ " <> repo.stars_count |> int.to_string, - ), - ]), - ]), - ]), - html.div([], [ - case repo.description { - "" -> html.p([attr.class("text-neutral-500 dark:text-neutral-400")], [element.text("No description")]) - a -> element.text(a) - } - ]), - ], - ) - }), - ), - ], - ), - ]) -} - -fn view_projects(model: Model) -> Element(Msg) { - let projects = - model.projects - |> list.map(fn(project: projects.Project(Msg)) { - ui.stack( - [ - attr.id("project-" <> project.id), - attr.class( - "drop-shadow-md text-xl rounded-xl p-4 mb-4 bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", - ), - ], - [ - cluster.of(html.div, [attr.class("flex items-center gap-4 pb-1.5")], [ - html.img([ - attr.src(project.img), - attr.class("rounded-xl max-w-16 max-h-16"), - ]), - html.h1([attr.class("text-2xl")], [ - common.link(project.title, "projects/" <> project.id), - ]), - cluster.of( - html.div, - [attr.class("flex items-center gap-2")], - project.links - |> list.map(fn(link) { - html.a([attr.href(link.url), attr.alt(link.title)], [ - html.img([ - attr.src(link.img), - attr.class("rounded-xl max-w-14 max-h-14"), - ]), - ]) - }), - ), - ]), - html.p([], [project.summary]), - ], - ) - }) - html.div([], projects) -} - -fn view_project(model: Model, id: String) -> Element(Msg) { - let project = - model.projects - |> list.find(fn(project) { project.id == id }) - html.div( - [ - attr.class( - "drop-shadow-md text-xl rounded-xl p-4 mb-4 bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", - ), - ], - case project { - Ok(project) -> [ - cluster.of(html.div, [attr.class("flex items-center gap-4 pb-1.5")], [ - html.img([ - attr.src(project.img), - attr.class("rounded-xl max-w-16 max-h-16"), - ]), - html.h1([attr.class("text-2xl")], [element.text(project.title)]), - ]), - html.p([], [project.summary]), - html.h2([], [ - element.text("More information will be added eventually.."), - ]), - ] - Error(_) -> [ - html.h1([attr.class("text-center")], [element.text("Invalid project!")]), - ] - }, - ) -} - -fn view_posts(model: Model) -> Element(Msg) { - let posts = - model.posts - |> list.map(fn(post: posts.Post(Msg)) { - ui.stack( - [ - attr.class( - "drop-shadow-md text-xl rounded-xl p-4 mb-4 bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", - ), - ], - [ - cluster.of(html.div, [attr.class("flex items-center gap-4")], [ - html.h1([attr.class("text-2xl")], [ - common.link(post.title, "posts/" <> post.id), - ]), - html.p([attr.class("text-neutral-500")], [ - element.text("Author: " <> post.author), - ]), - html.p([attr.class("text-neutral-500")], [ - element.text( - "Date Posted: " <> post.date_posted |> common.day_to_string, - ), - ]), - ]), - html.p([], [post.summary]), - ], - ) - }) - html.div([], [ - common.warning( - "Quick Apology!", - "Due to not having a proper markdown renderer implmented, the posts currently look a bit awful as I'm too lazy to style them manually. Sorry if this makes it harder to read!", - ), - ..posts - ]) -} - -fn view_post(model: Model, id: String) -> Element(Msg) { - let post = - model.posts - |> list.find(fn(post) { post.id == id }) - html.div( - [ - attr.class( - "drop-shadow-md text-xl rounded-xl p-4 mb-4 bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", - ), - ], - case post { - Ok(post) -> [ - cluster.of(html.div, [attr.class("flex items-center gap-4")], [ - html.h1([], [element.text(post.title)]), - html.p([attr.class("text-neutral-500")], [ - element.text("Author: " <> post.author), - ]), - html.p([attr.class("text-neutral-500")], [ - element.text( - "Date Posted: " <> post.date_posted |> common.day_to_string, - ), - ]), - ]), - html.hr([]), - html.div([], [post.content]), - ] - Error(_) -> [ - html.h1([attr.class("text-center")], [element.text("Invalid post!")]), - ] - }, - ) + io.println("run `gleam run -m build` to generate the site") } diff --git a/src/website/common.gleam b/src/website/common.gleam index ebd1c5e..7a385bf 100644 --- a/src/website/common.gleam +++ b/src/website/common.gleam @@ -1,8 +1,117 @@ -import birl.{type Day} import gleam/int import lustre/attribute as attr import lustre/element import lustre/element/html +import tom +import website/md + +pub type Post(a) { + Post( + id: String, + title: String, + author: String, + date_posted: tom.Date, + summary: element.Element(a), + content: element.Element(a), + ) +} + +pub type Link { + Link(title: String, url: String, img: String) +} + +pub type Project(a) { + Project( + id: String, + title: String, + author: String, + img: String, + links: List(Link), + archived: Bool, + summary: element.Element(a), + content: element.Element(a), + ) +} + +pub fn wrapper( + page: String, + elements: List(element.Element(a)), +) -> element.Element(a) { + html.html([attr.attribute("lang", "en")], [ + html.head([], [ + html.meta([attr.attribute("charset", "UTF-8")]), + html.link([attr.rel("stylesheet"), attr.href("/style.css")]), + html.link([ + attr.rel("preconnect"), + attr.href("https://fonts.googleapis.com"), + attr.attribute("crossorigin", ""), + ]), + html.link([ + attr.rel("preconnect"), + attr.href("https://fonts.gstatic.com"), + attr.attribute("crossorigin", ""), + ]), + html.link([ + attr.rel("stylesheet"), + attr.href( + "https://fonts.googleapis.com/css2?family=Recursive:wght@300..1000&display=swap", + ), + ]), + html.title([], page <> " | Naomi Roberts"), + ]), + html.body( + [ + attr.class( + "my-0 sm:my-5 mx-0 sm:mx-6 md:mx-10 lg:mx-20 xl:mx-48 2xl:mx-64", + ), + ], + [navbar(), ..elements], + ), + html.footer( + [ + attr.class( + "rounded-xl bg-gray-200 dark:bg-neutral-800 border-0 p-4 text-sm text-neutral-500 items-center flex flex-col", + ), + ], + " +The source code for this website is available [on Codeberg](https://codeberg.org/naomi/naomieow.xyz) under the [BSD 3 with Attribution](https://spdx.org/licenses/BSD-3-Clause-Attribution) license. + +If you wish to get in contact, please send an email to [mia@naomieow.xyz](mailto:mia@naomieow.xyz), or contact me on [Discord](https://chat.lesbian.skin). +" + |> md.render, + ), + ]) +} + +pub fn navbar() -> element.Element(a) { + html.nav( + [ + attr.class( + "drop-shadow-md flex gap-4 w-full mb-5 rounded-xl p-4 items-center border-0 grow bg-gray-200 dark:bg-neutral-800", + ), + ], + [ + html.h1([attr.class("hidden md:block text-3xl m-0 text-pink-400")], [ + element.text("Naomi Roberts"), + ]), + navitem(name: "Home", href: ""), + navitem(name: "Projects", href: "projects"), + navitem(name: "Posts", href: "posts"), + ], + ) +} + +fn navitem(name name: String, href href: String) -> element.Element(a) { + html.a( + [ + attr.href("/" <> href), + attr.class( + "drop-shadow-md no-underline bg-gray-300 dark:bg-neutral-900 p-3 rounded-xl text-black dark:text-neutral-200", + ), + ], + [element.text(name)], + ) +} pub fn link(text: String, link: String) -> element.Element(a) { html.a([attr.href(link), attr.class("text-pink-400 underline")], [ @@ -33,10 +142,10 @@ pub fn warning(title: String, contents: String) -> element.Element(a) { ) } -pub fn day_to_string(day: Day) -> String { - day.date |> int.to_string +pub fn date_to_string(date: tom.Date) -> String { + date.day |> int.to_string <> "/" - <> day.month |> int.to_string + <> date.month |> int.to_string <> "/" - <> day.year |> int.to_string + <> date.year |> int.to_string } diff --git a/src/website/data/posts.gleam b/src/website/data/posts.gleam new file mode 100644 index 0000000..f79cbdc --- /dev/null +++ b/src/website/data/posts.gleam @@ -0,0 +1,47 @@ +import gleam/int +import gleam/list +import gleam/order +import gleam/string +import lustre/element/html +import lustre/ssg/djot +import simplifile +import tom +import website/common.{type Post, Post} +import website/md + +pub fn all() -> List(Post(a)) { + let path = "./src/website/data/posts/" + let assert Ok(posts) = simplifile.read_directory(path) + posts + |> list.map(fn(post) { + let assert Ok(post_md) = simplifile.read(path <> post) + let assert Ok(meta) = djot.metadata(post_md) + let assert Ok(title) = tom.get_string(meta, ["title"]) + let assert Ok(author) = tom.get_string(meta, ["author"]) + let assert Ok(date_posted) = tom.get_date(meta, ["date"]) + let assert Ok(summary) = tom.get_string(meta, ["summary"]) + Post( + id: post + |> string.drop_right(3) + |> string.lowercase + |> string.replace(" ", "-"), + title:, + author:, + date_posted:, + summary: html.p([], summary |> md.render), + content: html.div([], post_md |> djot.content |> md.render), + ) + }) +} + +pub fn sorted(posts: List(Post(a))) -> List(Post(a)) { + posts + |> list.sort(fn(left, right) { + int.compare(left.date_posted.year, right.date_posted.year) + |> order.break_tie(int.compare( + left.date_posted.month, + right.date_posted.month, + )) + |> order.break_tie(int.compare(left.date_posted.day, right.date_posted.day)) + }) +} diff --git a/src/website/data/posts/mystcraft-ages-alpha-1.md b/src/website/data/posts/mystcraft-ages-alpha-1.md new file mode 100644 index 0000000..2eefe9c --- /dev/null +++ b/src/website/data/posts/mystcraft-ages-alpha-1.md @@ -0,0 +1,28 @@ +--- +title = "Mystcraft: Ages" +author = "Naomi Roberts" +date = 2023-09-30 +summary = "A modern reimagining of the original [Mystcraft](https://www.curseforge.com/minecraft/mc-mods/mystcraft) mod!" +--- +# Alpha 1 +This is an alpha release, the mod is nowhere near complete and some bugs may exist. +If you do find any bugs please report them on [the bug tracker](https://codeberg.org/naomi/mystcraft-ages/issues) + +## Developer Notes +It's been a while since I said I was gonna start this project and after over 60 hours of work ๐Ÿ˜… you now have a semi-functioning proof-of-concept! I'm very efficient I know ๐Ÿ˜” + +Jokes aside, the (albeit limited) content list/changelog is below! + +## Changelog +1. Linking Books +- These are the main attraction of this alpha, and using one can link it so wherever you are standing. There are a few known bugs with these so please check before reporting. +2. Book Receptacle +- These are small, lectern-like blocks that you can place Linked Books into. (Currently) they allow multiple people to use the same book, but the book will not travel with you. +3. Writing Stand +- This is where most of the development time has gone and is the place where you can create your Linking Books. It requires you to provide it with an ink supply. +4. Ink Vials +- A slightly more efficient ink than regular ink sacs. + +## Links +- [CurseForge](https://legacy.curseforge.com/minecraft/mc-mods/mystcraft-ages) +- [Modrinth](https://modrinth.com/mod/ages) diff --git a/src/website/data/posts/mystcraft-ages-alpha-2.md b/src/website/data/posts/mystcraft-ages-alpha-2.md new file mode 100644 index 0000000..706a5da --- /dev/null +++ b/src/website/data/posts/mystcraft-ages-alpha-2.md @@ -0,0 +1,26 @@ +--- +title = "UPDATE: Mystcraft: Ages" +author = "Naomi Roberts" +date = 2023-11-30 +summary = "A modern reimagining of the original [Mystcraft](https://www.curseforge.com/minecraft/mc-mods/mystcraft) mod!" +--- +# Alpha 2 +This is an alpha release, the mod is nowhere near complete and some bugs may exist. If you do find any bugs please report them on [the bug tracker](https://codeberg.org/naomi/mystcraft-ages/issues) + +## Developer Notes +I hate entities. + +## Changelog +1. Linking Books [\[MA26\]](https://codeberg.org/naomi/mystcraft-ages/issues/26) +- They no longer directly teleport you, they will summon a Book entity on the ground +2. Book Entities [\[MA26\]](https://codeberg.org/naomi/mystcraft-ages/issues/26) +- These are entities (wow) that are books (wow!!). They replace the teleportation function that the previous iteration of Linking Books has, to see the contained book, Crouch + Interact, to teleport just Interact. _THERE IS CURRENTLY NO WAY TO PICK THEM UP_ +3. Writing Stand Recipes [\[MA31\]](https://codeberg.org/naomi/mystcraft-ages/issues/31) +- The recipes in the writing stand have been updated, now requireing an additional item. Unlinked Books require an enderpearl. +4. Book Receptacle [\[MA21\]](https://codeberg.org/naomi/mystcraft-ages/issues/21) +- The book now renders correctly. I'm so cool. + +## Links +- [CurseForge](https://legacy.curseforge.com/minecraft/mc-mods/mystcraft-ages) +- [Modrinth](https://modrinth.com/mod/ages) +- [Source Code](https://modrinth.com/mod/ages) diff --git a/src/website/data/projects.gleam b/src/website/data/projects.gleam new file mode 100644 index 0000000..7129642 --- /dev/null +++ b/src/website/data/projects.gleam @@ -0,0 +1,85 @@ +import gleam/list +import gleam/result +import gleam/string +import lustre/element/html +import lustre/ssg/djot +import simplifile +import tom +import website/common.{type Link, type Project, Link, Project} +import website/md + +pub fn all() -> List(Project(a)) { + let path = "./src/website/data/projects/" + let assert Ok(projects) = simplifile.read_directory(path) + projects + |> list.map(fn(project) { + let assert Ok(project_md) = simplifile.read(path <> project) + let assert Ok(meta) = djot.metadata(project_md) + let assert Ok(title) = tom.get_string(meta, ["title"]) + let assert Ok(author) = tom.get_string(meta, ["author"]) + let assert Ok(img) = tom.get_string(meta, ["icon"]) + let assert Ok(summary) = tom.get_string(meta, ["summary"]) + let assert Ok(archived) = tom.get_bool(meta, ["archived"]) + let links = + [ + tom.get_string(meta, ["source"]) + |> result.try(fn(link) { + Ok(Link(title: "Source Code", url: link, img: "/assets/git_64h.png")) + }), + tom.get_string(meta, ["modrinth"]) + |> result.try(fn(link) { + Ok(Link( + title: "Modrinth", + url: link, + img: "/assets/modrinth_64h.png", + )) + }), + tom.get_string(meta, ["curseforge"]) + |> result.try(fn(link) { + Ok(Link( + title: "CurseForge", + url: link, + img: "/assets/curseforge_64h.png", + )) + }), + ] + |> result.values + + Project( + archived:, + author:, + id: project + |> string.drop_right(3) + |> string.lowercase + |> string.replace(" ", "-"), + img:, + links:, + summary: html.p([], summary |> md.render), + title:, + content: html.div([], project_md |> djot.content |> md.render), + ) + }) +} +// fn curseforge_mod(slug: String) -> Link { +// Link( +// title: "CurseForge", +// url: "https://www.curseforge.com/minecraft/mc-mods/" <> slug, +// img: "https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy-minimal/available/curseforge_64h.png", +// ) +// } + +// fn modrinth(slug: String) -> Link { +// Link( +// title: "Modrinth", +// url: "https://mods.gay/" <> slug, +// img: "https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy-minimal/available/modrinth_64h.png", +// ) +// } + +// fn codeberg(user: String, repo: String) -> Link { +// Link( +// title: "Source Code", +// url: "https://codeberg.org/" <> user <> "/" <> repo, +// img: "https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy-minimal/available/codeberg_64h.png", +// ) +// } diff --git a/src/website/data/projects/caramel.md b/src/website/data/projects/caramel.md new file mode 100644 index 0000000..bb09f41 --- /dev/null +++ b/src/website/data/projects/caramel.md @@ -0,0 +1,8 @@ +--- +title = "Caramel" +author = "Naomi Roberts" +icon = "/assets/caramel.png" +summary = "A Discord/Revolt bridge using [arikawa](https://github.com/diamondburned/arikawa/) and [revolt.go](https://github.com/ben-forster/revolt/)" +source = "https://codeberg.org/naomi/Caramel" +archived = true +--- diff --git a/src/website/data/projects/cfs.md b/src/website/data/projects/cfs.md new file mode 100644 index 0000000..32e1e5c --- /dev/null +++ b/src/website/data/projects/cfs.md @@ -0,0 +1,9 @@ +--- +title = "Carcinogenic Fibrous Silicate" +icon = "/assets/cfs.png" +author = "Naomi Roberts" +summary = "Small joke mod requested by some friends that adds Asbestos to the game." +source = "https://codeberg.org/naomi/asbestos" +modrinth = "https://modrinth.com/datapack/cfs" +archived = true +--- diff --git a/src/website/data/projects/ibo.md b/src/website/data/projects/ibo.md new file mode 100644 index 0000000..d640ad4 --- /dev/null +++ b/src/website/data/projects/ibo.md @@ -0,0 +1,10 @@ +--- +title = "Incendium Biomes Only" +icon = "/assets/ibo.webp" +author = "Naomi Roberts" +summary = "Removes structures, items, mobs and bosses from [Incendium](https://www.stardustlabs.net/incendium), leaving only the biomes and terrain." +source = "https://codeberg.org/naomi/ibo" +modrinth = "https://modrinth.com/datapack/ibo" +curseforge = "https://www.curseforge.com/minecraft/mc-mods/incendium-biomes-only" +archived = false +--- diff --git a/src/website/data/projects/lilypad.md b/src/website/data/projects/lilypad.md new file mode 100644 index 0000000..932d777 --- /dev/null +++ b/src/website/data/projects/lilypad.md @@ -0,0 +1,8 @@ +--- +title = "Lilypad" +icon = "/assets/lilypad.png" +author = "Naomi Roberts" +summary = "Lilypad is a general-purpose Discord bot built using [arikawa](https://github.com/diamondburned/arikawa/), mainly for use in my own [Discord server.](https://chat.lesbian.skin)" +source = "https://codeberg.org/Lilypad" +archived = false +--- diff --git a/src/website/data/projects/mystcraft-ages.md b/src/website/data/projects/mystcraft-ages.md new file mode 100644 index 0000000..daf36c8 --- /dev/null +++ b/src/website/data/projects/mystcraft-ages.md @@ -0,0 +1,10 @@ +--- +title = "Mystcraft: Ages" +icon = "/assets/ages.png" +author = "Naomi Roberts" +summary = "Mystcraft: Ages is a modern rewrite and reimagining of the original [Mystcraft](https://www.curseforge.com/minecraft/mc-mods/mystcraft) mod." +source = "https://codeberg.org/naomi/mystcraft-ages" +modrinth = "https://modrinth.com/mod/ages" +curseforge = "https://www.curseforge.com/minecraft/mc-mods/mystcraft-ages" +archived = false +--- diff --git a/src/website/data/projects/pricked.md b/src/website/data/projects/pricked.md new file mode 100644 index 0000000..ab38fa5 --- /dev/null +++ b/src/website/data/projects/pricked.md @@ -0,0 +1,10 @@ +--- +title = "Get Pricked!" +icon = "/assets/pricked.png" +author = "Naomi Roberts" +summary = "Ever been playing the game and thought a block should damage you even though it doesn't? Well, now they do!" +source = "https://codeberg.org/naomi/pricked" +modrinth = "https://modrinth.com/datapack/pricked" +curseforge = "https://www.curseforge.com/minecraft/mc-mods/get-pricked" +archived = false +--- diff --git a/src/website/data/projects/rpgtitles.md b/src/website/data/projects/rpgtitles.md new file mode 100644 index 0000000..cab2923 --- /dev/null +++ b/src/website/data/projects/rpgtitles.md @@ -0,0 +1,10 @@ +--- +title = "RPGTitles" +icon = "/assets/titles.png" +author = "Naomi Roberts" +summary = "Small, cosmetic datapack that adds titles to various things in the game!" +source = "https://codeberg.org/naomi/rpgtitles" +modrinth = "https://modrinth.com/datapack/rpgtitles" +curseforge = "https://www.curseforge.com/minecraft/mc-mods/rpgtitles" +archived = false +--- diff --git a/src/website/md.gleam b/src/website/md.gleam new file mode 100644 index 0000000..e0a5fcf --- /dev/null +++ b/src/website/md.gleam @@ -0,0 +1,138 @@ +import commonmark +import commonmark/ast +import gleam/int +import gleam/list +import gleam/option.{None, Some} +import lustre/attribute +import lustre/element +import lustre/element/html + +pub fn render(document doc: String) -> List(element.Element(a)) { + doc + |> commonmark.parse + |> render_commonmark +} + +pub fn render_commonmark(document doc: ast.Document) -> List(element.Element(a)) { + doc.blocks + |> list.map(render_block_node) +} + +fn render_block_node(blocknode: ast.BlockNode) -> element.Element(a) { + case blocknode { + ast.HorizontalBreak -> html.hr([]) + ast.Heading(level:, contents:) -> { + let contents = contents |> list.map(render_inline_node) + case level { + 1 -> + html.h1( + [attribute.class("text-3xl font-semibold my-3 text-pink-400")], + contents, + ) + 2 -> html.h2([attribute.class("text-2xl font-semibold my-2")], contents) + 3 -> html.h3([attribute.class("text-xl font-semibold my-1")], contents) + 4 -> html.h4([attribute.class("text-lg font-semibold")], contents) + 5 -> html.h5([attribute.class("font-bold")], contents) + 6 -> html.h6([attribute.class("font-semibold")], contents) + _ -> html.p([], contents) + } + } + ast.CodeBlock(info:, full_info:, contents:) -> + html.pre([], [html.code([], [element.text(contents)])]) + ast.HtmlBlock(html:) -> html.html([], [element.text(html)]) + ast.Paragraph(contents:) -> + html.p([], contents |> list.map(render_inline_node)) + ast.BlockQuote(contents:) -> + html.blockquote([], contents |> list.map(render_block_node)) + ast.AlertBlock(level:, contents:) -> { + let contents = contents |> list.map(render_block_node) + case level { + ast.NoteAlert -> + html.blockquote([attribute.class("alert alert-note")], contents) + ast.CautionAlert -> + html.blockquote([attribute.class("alert alert-caution")], contents) + ast.ImportantAlert -> + html.blockquote([attribute.class("alert alert-important")], contents) + ast.TipAlert -> + html.blockquote([attribute.class("alert alert-tip")], contents) + ast.WarningAlert -> + html.blockquote([attribute.class("alert alert-warning")], contents) + } + } + ast.OrderedList(contents:, start:, marker:) -> + html.ol( + [ + attribute.attribute("start", start |> int.to_string), + attribute.class("list-decimal ml-8"), + ], + contents |> list.map(render_list_item), + ) + ast.UnorderedList(contents:, marker:) -> + html.ul( + [attribute.class("list-disc ml-8")], + contents |> list.map(render_list_item), + ) + } +} + +fn render_list_item(list_item: ast.ListItem) { + case list_item { + ast.ListItem(contents:) -> + html.li( + [], + contents + |> list.map(fn(item) { html.p([], [item |> render_block_node]) }), + ) + ast.TightListItem(contents:) -> + html.li([], contents |> list.map(render_block_node)) + } +} + +fn render_inline_node(inline_node: ast.InlineNode) { + case inline_node { + ast.CodeSpan(contents:) -> html.code([], [element.text(contents)]) + ast.Emphasis(contents:, marker:) -> + html.em([], contents |> list.map(render_inline_node)) + ast.StrongEmphasis(contents:, marker:) -> + html.strong([], contents |> list.map(render_inline_node)) + ast.StrikeThrough(contents:) -> + html.s([], contents |> list.map(render_inline_node)) + ast.Link(contents:, title:, href:) -> + html.a( + [ + attribute.href(href), + attribute.class("text-pink-400 underline"), + case title { + Some(t) -> attribute.attribute("title", t) + None -> attribute.none() + }, + ], + contents |> list.map(render_inline_node), + ) + ast.ReferenceLink(contents:, ref:) -> + html.a([attribute.href(ref)], contents |> list.map(render_inline_node)) + ast.Image(alt:, title:, href:) -> + html.img([ + attribute.alt(alt), + attribute.href(href), + case title { + Some(t) -> attribute.attribute("title", t) + None -> attribute.none() + }, + ]) + ast.ReferenceImage(alt:, ref:) -> + html.img([attribute.alt(alt), attribute.href(ref)]) + ast.UriAutolink(href:) -> + html.a([attribute.href(href)], [element.text(href)]) + ast.EmailAutolink(href:) -> + html.a([attribute.href(href)], [element.text(href)]) + ast.HtmlInline(html:) -> + html.p([], [ + element.text("Unimplemented, dump of inline HTML:"), + element.text(html), + ]) + ast.PlainText(contents:) -> html.text(contents) + ast.HardLineBreak -> html.br([]) + ast.SoftLineBreak -> html.text("") + } +} diff --git a/src/website/page/index.gleam b/src/website/page/index.gleam new file mode 100644 index 0000000..f8be1f3 --- /dev/null +++ b/src/website/page/index.gleam @@ -0,0 +1,69 @@ +import gleam/list +import lustre/attribute as attr +import lustre/element.{type Element} +import lustre/element/html +import website/common +import website/md + +fn lang_list(title: String, langs: List(String)) { + html.ul([], [ + html.li([], [ + html.h3([attr.class("text-2xl underline")], [element.text(title)]), + ]), + html.li([], [ + html.ul( + [attr.class("list-disc pl-8")], + langs + |> list.map(fn(lang) { html.li([], [element.text(lang)]) }), + ), + ]), + ]) +} + +pub fn view() -> List(Element(a)) { + let proficient = [ + "โญ Gleam", "โ˜• Java", "๐Ÿ“œ JavaScript", "๐Ÿ Python", "โ“mcfunction", + ] + let learning = [ + "๐Ÿฆ€ Rust", "๐ŸŸฆ Go", "๐ŸŽฎ C#", "๐Ÿ’€ C++", "โ™ป๏ธ Kotlin", + ] + let want = ["โšก Zig", "๐Ÿช OCaml", "๐Ÿ˜ƒ Odin"] + [ + html.div( + [ + attr.class( + "drop-shadow-md text-xl p-4 mb-4 rounded-xl bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", + ), + ], + [ + html.div( + [], + "# About Me +Hi! I'm Naomi (or Mia), a trans girl from the UK who loves to code! I mostly make [Minecraft mods](https://modrinth.com/user/naomi), but have started to begin other projects like [Sheetr](https://sheetr.app/) and [Lilypad](https://codeberg.org/naomi/lilypad). Both projects are in their infancy, but I hope that they can become useful to someone out there eventually!" + |> md.render, + ), + html.div([attr.class("my-4")], [ + html.p([], [ + element.text( + "I absolutely love learning new languages, so here is what I know:", + ), + ]), + html.div([attr.class("gap-4 sm:gap-20 flex flex-col md:flex-row")], [ + lang_list("Proficient", proficient), + lang_list("Learning", learning), + lang_list("Want to learn", want), + ]), + ]), + html.p([attr.class("text-sm")], [ + element.text("Currently studying "), + common.link( + "Computer Games Programming", + "https://www.staffs.ac.uk/course/computer-games-programming-bsc", + ), + element.text(" @ "), + common.link("Staffodshire University", "https://staffs.ac.uk/"), + ]), + ], + ), + ] +} diff --git a/src/website/page/post.gleam b/src/website/page/post.gleam new file mode 100644 index 0000000..f588174 --- /dev/null +++ b/src/website/page/post.gleam @@ -0,0 +1,68 @@ +import gleam/list +import lustre/attribute as attr +import lustre/element.{type Element} +import lustre/element/html +import website/common.{type Post} +import website/data/posts + +pub fn view_all(posts: List(Post(a))) -> List(Element(a)) { + posts + |> posts.sorted + |> list.reverse + |> list.map(fn(post: Post(a)) { + html.ul( + [ + attr.class( + "drop-shadow-md text-xl rounded-xl p-4 mb-4 bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", + ), + ], + [ + html.li([], [ + html.div([attr.class("flex items-center gap-4")], [ + html.h1([attr.class("text-2xl")], [ + common.link(post.title, "/posts/" <> post.id), + ]), + html.p([attr.class("text-neutral-500")], [ + element.text("Author: " <> post.author), + ]), + html.p([attr.class("text-neutral-500")], [ + element.text( + "Date Posted: " <> post.date_posted |> common.date_to_string, + ), + ]), + ]), + ]), + html.li([], [html.p([], [post.summary])]), + ], + ) + }) +} + +pub fn view(post: Post(a)) -> List(Element(a)) { + [ + html.div( + [ + attr.class( + "drop-shadow-md text-xl rounded-xl p-4 mb-4 bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", + ), + ], + [ + html.div([attr.class("flex items-center align-middle gap-4")], [ + html.h1([attr.class("text-3xl m-0 text-pink-400")], [ + element.text(post.title), + ]), + html.p([attr.class("text-neutral-500")], [ + element.text("Author: " <> post.author), + ]), + html.p([attr.class("text-neutral-500")], [ + element.text( + "Date Posted: " <> post.date_posted |> common.date_to_string, + ), + ]), + ]), + html.hr([attr.class("h-px my-4 dark:bg-gray-200 border-0 bg-gray-400")]), + html.div([], [post.content]), + ], + ), + ] +} diff --git a/src/website/page/project.gleam b/src/website/page/project.gleam new file mode 100644 index 0000000..ea308cc --- /dev/null +++ b/src/website/page/project.gleam @@ -0,0 +1,66 @@ +import gleam/list +import lustre/attribute as attr +import lustre/element.{type Element} +import lustre/element/html +import website/common.{type Project, Project} + +pub fn view_all(projects: List(Project(a))) -> List(Element(a)) { + projects + |> list.map(fn(project: Project(a)) { + html.ul( + [ + attr.id("project-" <> project.id), + attr.class( + "drop-shadow-md text-xl rounded-xl p-4 mb-4 bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", + ), + ], + [ + html.li([attr.class("flex items-center gap-4 pb-1.5")], [ + html.img([ + attr.src(project.img), + attr.class("rounded-xl max-w-16 max-h-16"), + ]), + html.h1([attr.class("text-2xl")], [ + common.link(project.title, "/projects/" <> project.id), + ]), + html.div( + [attr.class("flex items-center gap-2")], + project.links + |> list.map(fn(link) { + html.a([attr.href(link.url), attr.alt(link.title)], [ + html.img([ + attr.src(link.img), + attr.class("rounded-xl max-w-14 max-h-14"), + ]), + ]) + }), + ), + ]), + html.li([], [html.p([], [project.summary])]), + ], + ) + }) +} + +pub fn view(project: Project(a)) -> List(Element(a)) { + [ + html.div( + [ + attr.class( + "drop-shadow-md text-xl rounded-xl p-4 mb-4 bg-gray-200 dark:bg-neutral-800 dark:text-neutral-200", + ), + ], + [ + html.div([attr.class("flex items-center gap-4 pb-1.5")], [ + html.img([ + attr.src(project.img), + attr.class("rounded-xl max-w-16 max-h-16"), + ]), + html.h1([attr.class("text-2xl")], [element.text(project.title)]), + ]), + html.p([], [project.summary]), + project.content, + ], + ), + ] +} diff --git a/src/website/posts.gleam b/src/website/posts.gleam deleted file mode 100644 index bdac611..0000000 --- a/src/website/posts.gleam +++ /dev/null @@ -1,171 +0,0 @@ -import birl.{type Day} -import lustre/element -import lustre/element/html -import website/common.{link} - -pub type Post(a) { - Post( - id: String, - title: String, - author: String, - date_posted: Day, - summary: element.Element(a), - content: element.Element(a), - ) -} - -pub fn all() -> List(Post(a)) { - [mystcraft_ages_alpha_2(), release_mystcraft_ages()] -} - -fn mystcraft_short_descriptor() -> element.Element(a) { - html.p([], [ - element.text("A modern reimagining of the original "), - link("Mystcraft", "https://www.curseforge.com/minecraft/mc-mods/mystcraft"), - element.text(" mod!"), - ]) -} - -fn release_mystcraft_ages() -> Post(a) { - Post( - id: "mystcraft-ages-alpha-1", - title: "Mystcraft: Ages", - author: "naomieow", - date_posted: birl.Day(2023, 09, 30), - summary: mystcraft_short_descriptor(), - content: html.div([], [ - html.h2([], [element.text("Alpha 1")]), - html.p([], [ - element.text( - "This is an alpha release, the mod is nowhere near complete and some bugs may exist. If you do find any bugs please report them on ", - ), - link( - "the bug tracker", - "https://codeberg.org/naomi/mystcraft-ages/issues", - ), - ]), - html.h3([], [element.text("Developer Notes")]), - html.p([], [ - element.text( - "It's been a while since I said I was gonna start this project and after over 60 hours of work ๐Ÿ˜… you now have a semi-functioning proof-of-concept! I'm very efficient I know ๐Ÿ˜”", - ), - ]), - html.p([], [ - element.text( - "Jokes aside, the (albeit limited) content list/changelog is below!", - ), - ]), - html.h3([], [element.text("Changelog")]), - html.ul([], [html.li([], [element.text("Linking Books")])]), - html.p([], [ - element.text( - "These are the main attraction of this alpha, and using one can link it so wherever you are standing. There are a few known bugs with these so please check before reporting.", - ), - ]), - html.ul([], [html.li([], [element.text("Book Receptacle")])]), - html.p([], [ - element.text( - "These are small, lectern-like blocks that you can place Linked Books into. (Currently) they allow multiple people to use the same book, but the book will not travel with you.", - ), - ]), - html.ul([], [html.li([], [element.text("Writing Stand")])]), - html.p([], [ - element.text( - "This is where most of the development time has gone and is the place where you can create your Linking Books. It requires you to provide it with an ink supply.", - ), - ]), - html.ul([], [html.li([], [element.text("Ink Vials")])]), - html.p([], [ - element.text("A slightly more efficient ink than regular ink sacs."), - ]), - html.h3([], [element.text("Links")]), - html.p([], [ - link( - "CurseForge", - "https://legacy.curseforge.com/minecraft/mc-mods/mystcraft-ages", - ), - ]), - html.p([], [link("Modrinth", "https://modrinth.com/mod/ages")]), - ]), - ) -} - -fn mystcraft_ages_alpha_2() -> Post(a) { - Post( - id: "mystcraft-ages-alpha-2", - title: "UPDATE: Mystcraft: Ages", - author: "naomieow", - date_posted: birl.Day(2023, 11, 30), - summary: mystcraft_short_descriptor(), - content: html.div([], [ - html.h2([], [element.text("Alpha 2")]), - html.p([], [ - element.text( - "This is an alpha release, the mod is nowhere near complete and some bugs may exist. If you do find any bugs please report them on ", - ), - link( - "the bug tracker", - "https://codeberg.org/naomi/mystcraft-ages/issues", - ), - ]), - html.h3([], [element.text("Developer Notes")]), - html.p([], [element.text("I hate entities.")]), - html.h3([], [element.text("Changelog")]), - html.ul([], [ - html.li([], [ - element.text("Linking Books ["), - link("MA26", "https://codeberg.org/naomi/mystcraft-ages/issues/26"), - element.text("]"), - ]), - ]), - html.p([], [ - element.text( - "They no longer directly teleport you, they will summon a Book entity on the ground", - ), - ]), - html.ul([], [ - html.li([], [ - element.text("Book Entities ["), - link("MA26", "https://codeberg.org/naomi/mystcraft-ages/issues/26"), - element.text("]"), - ]), - ]), - html.p([], [ - element.text( - "These are entities (wow) that are books (wow!!). They replace the teleportation function that the previous iteration of Linking Books has, to see the contained book, Crouch + Interact, to teleport just Interact. THERE IS CURRENTLY NO WAY TO PICK THEM UP", - ), - ]), - html.ul([], [ - html.li([], [ - element.text("Writing Stand Recipes ["), - link("MA31", "https://codeberg.org/naomi/mystcraft-ages/issues/31"), - element.text("]"), - ]), - ]), - html.p([], [ - element.text( - "The recipes in the writing stand have been updated, now requireing an additional item. Unlinked Books require an enderpearl.", - ), - ]), - html.ul([], [ - html.li([], [ - element.text("Book Receptacle ["), - link("MA21", "https://codeberg.org/naomi/mystcraft-ages/issues/21"), - element.text("]"), - ]), - ]), - html.p([], [element.text("The book now renders correctly. I'm so cool.")]), - html.h3([], [element.text("Links")]), - html.ul([], [ - html.li([], [link("Modrinth", "https://modrinth.com/mod/ages")]), - html.li([], [ - link( - "CurseForge", - "https://legacy.curseforge.com/minecraft/mc-mods/mystcraft-ages", - ), - ]), - html.li([], [link("Source Code", "https://modrinth.com/mod/ages")]), - ]), - ]), - ) -} diff --git a/src/website/projects.gleam b/src/website/projects.gleam deleted file mode 100644 index 7e43368..0000000 --- a/src/website/projects.gleam +++ /dev/null @@ -1,181 +0,0 @@ -import lustre/element -import lustre/element/html -import website/common.{link} - -pub type Link { - Link(title: String, url: String, img: String) -} - -pub type Project(a) { - Project( - id: String, - title: String, - author: String, - img: String, - links: List(Link), - archived: Bool, - summary: element.Element(a), - ) -} - -pub fn all() -> List(Project(a)) { - [ - lilypad(), - caramel(), - mystcraft_ages(), - rpgtitles(), - biomes_only(), - get_pricked(), - asbestos(), - ] -} - -fn curseforge_mod(slug: String) -> Link { - Link( - title: "CurseForge", - url: "https://www.curseforge.com/minecraft/mc-mods/" <> slug, - img: "https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy-minimal/available/curseforge_64h.png", - ) -} - -fn modrinth(slug: String) -> Link { - Link( - title: "Modrinth", - url: "https://mods.gay/" <> slug, - img: "https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy-minimal/available/modrinth_64h.png", - ) -} - -fn codeberg(user: String, repo: String) -> Link { - Link( - title: "Source Code", - url: "https://codeberg.org/" <> user <> "/" <> repo, - img: "https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy-minimal/available/codeberg_64h.png", - ) -} - -fn lilypad() -> Project(a) { - Project( - id: "lilypad", - title: "Lilypad", - author: "naomieow", - img: "https://codeberg.org/repo-avatars/028f375a8ea1cc6fd92e85466b2dfb49247c97f07f66c4dd7d7efb06a8fd3dd6", - links: [codeberg("naomi", "lilypad")], - archived: False, - summary: html.p([], [ - element.text("Lilypad is a general-purpose Discord bot built using "), - link("arikawa", "https://github.com/diamondburned/arikawa/"), - element.text(", mainly for use in my own "), - link("Discord server.", "https://discord.naomieow.xyz/"), - ]), - ) -} - -fn caramel() -> Project(a) { - Project( - id: "caramel", - title: "Caramel", - author: "naomieow", - img: "https://codeberg.org/repo-avatars/1e15f1174f6a90152e3027a13a3727230a32154de6ab12325e6fa25d5a04a5c1", - links: [codeberg("naomi", "caramel")], - archived: False, - summary: html.p([], [ - element.text("A Discord/Revolt bridge using "), - link("arikawa", "https://github.com/diamondburned/arikawa/"), - element.text(" and "), - link("revolt.go", "https://github.com/ben-forster/revolt/"), - ]), - ) -} - -fn mystcraft_ages() -> Project(a) { - Project( - id: "mystcraft_ages", - title: "Mystcraft: Ages", - author: "naomieow", - img: "https://codeberg.org/repo-avatars/de7a4fbec03846014acbbd6751aca89b7e1af056e74cb2750e3d554b5842b1f5", - links: [ - modrinth("ages"), - curseforge_mod("mystcraft-ages"), - codeberg("naomi", "mystcraft-ages"), - ], - archived: False, - summary: html.p([], [ - element.text( - "Mystcraft: Ages is a modern rewrite and reimagining of the original Mystcraft mod.", - ), - ]), - ) -} - -fn rpgtitles() -> Project(a) { - Project( - id: "rpgtitles", - title: "RPGTitles", - author: "naomieow", - img: "https://codeberg.org/repo-avatars/285354680e5bdf1c00b03b453fdb46d8538f371f06ccb7ec85f68681d5f250dd", - links: [ - modrinth("rpgtitles"), - curseforge_mod("rpgtitles"), - codeberg("naomi", "rpgtitles"), - ], - archived: False, - summary: html.p([], [ - element.text( - "Small, cosmetic datapack that adds titles to small things in the game!", - ), - ]), - ) -} - -fn biomes_only() -> Project(a) { - Project( - id: "biomes_only", - title: "Incendium Biomes Only", - author: "naomieow", - img: "https://codeberg.org/repo-avatars/201bb4544ceaf3ca51a75958e3e276741e7ded9af6ee54e045be0b8010a45c4a", - links: [modrinth("ibo"), curseforge_mod("incendium-biomes-only")], - archived: False, - summary: html.p([], [ - element.text( - "Removes structures, items, mobs and bosses from Incendium, leaving only the biomes and terrain.", - ), - ]), - ) -} - -fn get_pricked() -> Project(a) { - Project( - id: "pricked", - title: "Get Pricked!", - author: "naomieow", - img: "https://codeberg.org/repo-avatars/c2ab43e92df20ee1441c1d7a583c5aeaf361c0621d0af2fa5d33d1c5b00bc3b3", - links: [ - modrinth("pricked"), - curseforge_mod("get-pricked"), - codeberg("naomi", "pricked"), - ], - archived: False, - summary: html.p([], [ - element.text( - "Ever been playing the game and thought a block should damage you even though it doesn't? Well, now they do!", - ), - ]), - ) -} - -fn asbestos() -> Project(a) { - Project( - id: "asbestos", - title: "Carcinogenic Fibrous Silicate", - author: "naomieow", - img: "https://codeberg.org/repo-avatars/4bc99be0657207ffeededcf7b62c9b032dae9570c17af372755755b5c9566175", - links: [modrinth("cfs")], - archived: True, - summary: html.p([], [ - element.text( - "Small joke mod requested by some friends that adds Asbestos to the game.", - ), - ]), - ) -}