diff options
author | metamuffin <metamuffin@disroot.org> | 2023-09-25 20:59:19 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-09-25 20:59:19 +0200 |
commit | d8d7bde604440a2186c9af6b5891c418fa98c462 (patch) | |
tree | 6a1da93a22c32eeb5b7be89a7d3ddc444de2841a | |
parent | 01bd18c75fd3652ce0b9eb76e23e967b0cba064b (diff) | |
download | metamuffin-website-d8d7bde604440a2186c9af6b5891c418fa98c462.tar metamuffin-website-d8d7bde604440a2186c9af6b5891c418fa98c462.tar.bz2 metamuffin-website-d8d7bde604440a2186c9af6b5891c418fa98c462.tar.zst |
all repos from codeberg
-rw-r--r-- | assets/style.css | 27 | ||||
-rw-r--r-- | src/projects/data.rs | 283 | ||||
-rw-r--r-- | src/projects/mod.rs | 37 |
3 files changed, 320 insertions, 27 deletions
diff --git a/assets/style.css b/assets/style.css index 52212db..888a420 100644 --- a/assets/style.css +++ b/assets/style.css @@ -48,19 +48,20 @@ nav a:hover { background-size: 0 2px, 100% 2px; } -h1 {font-size: xx-large } -h2 {font-size: x-large } -h3 {font-size: large } -h4 {font-size: medium } +h1 { font-size: xx-large } +h2 { font-size: x-large } +h3 { font-size: large } +h4 { font-size: medium } -p,h1,h2,h3,h4,h5,h6,li { font-family: "Ubuntu", sans-serif; } +p,h1,h2,h3,h4,h5,h6,li,summary { font-family: "Ubuntu", sans-serif; } h1,h2 { color: var(--ac1) } h3 { color: var(--ac2); margin-left: 1em } h4 { color: var(--ac3); margin-left: 2em } -p,li { color: white; margin-left: 3em } +p,li,summary { color: white; margin-left: 3em } a { color: var(--ac2); font-style: italic; text-decoration: underline } a:hover { color: var(--ac3) } hr { border: 1px solid grey } +summary { font-size: large; } math { color:white } @@ -95,9 +96,11 @@ input[type=submit] { margin-right: 0.3em; } -.status-Unknown { background-color: #4b4b4b; } -.status-Planned { background-color: #6d5dff; } -.status-Developing { background-color: #5dfff1; } -.status-Stale { background-color: #d6d44b; } -.status-Maintained { background-color: #8cff56; } -.status-Abandoned { background-color: #ff9854; } +.status-unknown { background-color: #4b4b4b; } +.status-planned { background-color: #6d5dff; } +.status-developing { background-color: #5dfff1; } +.status-paused-working { background-color: #53b11d; } +.status-paused-unfinished { background-color: #d6d44b; } +.status-maintained { background-color: #95ff63; } +.status-abandoned-working { background-color: #ff9854; } +.status-abandoned-unfinished { background-color: #ff6854; } diff --git a/src/projects/data.rs b/src/projects/data.rs index 0e2b8dc..21f9462 100644 --- a/src/projects/data.rs +++ b/src/projects/data.rs @@ -1,4 +1,4 @@ -use super::{Project, Status::*}; +use super::{Project, Status::*, State::*}; pub const PROJECTS: &'static [Project] = &[ Project { @@ -15,6 +15,12 @@ pub const PROJECTS: &'static [Project] = &[ ..default() }, Project { + name: "mond", + status: Developing, + description: "server monitoring software, no much code written so far", + ..default() + }, + Project { name: "voxelwagen", status: Developing, description: "voxel game engine made from scratch; made to host an automation game.", @@ -30,29 +36,296 @@ pub const PROJECTS: &'static [Project] = &[ }, Project { name: "pfadfinder", - status: Stale, + status: Paused(Working), description: "parallel anytime A* for openstreetmap with custom frontend and integration into the existing one.", ..default() }, Project { name: "video-codec-experiments", - status: Stale, + status: Paused(Working), description: "a few attempts of creating my own video codecs, making use of motion compensation, dct, quantization and more. ", ..default() }, Project { name: "pixelflut tools", - status: Stale, + status: Paused(Working), description: "the programs I hacked together when playing pixelflut. includes GPU-acceleration for updating the canvas with minimal bandwidth usage.", ..default() }, Project { name: "karlender", - status: Stale, + status: Paused(Working), description: " a personal calender suite consisting of a daemon, a graphical and a command-line user interface. supports very flexible condition based recurring tasks and automatic scheduling so you dont need to decide.", ..default() }, ]; +pub const EXTRA_PROJECTS: &'static [Project] = &[ + Project { + name: "bad-editor", + status: Paused(Unfinished), + description: "A really bad editor", + ..default() + }, + Project { + name: "cosu", + status: Paused(Unfinished), + description: "a simple fast osu! client in c (not nearly a working client yet)", + ..default() + }, + Project { + name: "sprakc", + status: Abandoned(Working), + description: "A compiler from c++ to sprak", + ..default() + }, + Project { + name: "sprak-runtime", + status: Abandoned(Working), + description: "", + ..default() + }, + Project { + name: "ehb-data", + status: Abandoned(Working), + description: "", + ..default() + }, + Project { + name: "sgf", + status: Unknown, + description: "", + ..default() + }, + Project { + name: "circuit-simulator", + status: Unknown, + description: "", + ..default() + }, + Project { + name: "metabot", + status: Paused(Unfinished), + description: "", + ..default() + }, + Project { + name: "website", + status: Maintained, + description: "", + ..default() + }, + Project { + name: "ld49", + status: Abandoned(Unfinished), + description: "Ludum dare 49", + ..default() + }, + Project { + name: "bot-game", + status: Unknown, + description: "", + ..default() + }, + Project { + name: "game-platform", + status: Unknown, + description: "", + ..default() + }, + Project { + name: "simple-game-engine", + status: Paused(Unfinished), + description: "", + ..default() + }, + Project { + name: "voice-control", + status: Paused(Unfinished), + description: "", + ..default() + }, + Project { + name: "libreverse-old", + status: Abandoned(Unfinished), + description: "", + ..default() + }, + Project { + name: "golf-lang", + status: Abandoned(Unfinished), + description: "", + ..default() + }, + Project { + name: "mumble-music", + status: Paused(Unfinished), + description: "", + ..default() + }, + Project { + name: "muon", + status: Paused(Unfinished), + description: "", + ..default() + }, + Project { + name: "libresyncedvideoplayer", + status: Unknown, + description: "", + ..default() + }, + Project { + name: "fireworks", + status: Abandoned(Unfinished), + description: "Fireworks with Three.js", + ..default() + }, + Project { + name: "bj1", + status: Unknown, + description: "", + ..default() + }, + Project { + name: "so-survey", + status: Paused(Working), + description: "Some code for processing the stackoverflow developer survey's results", + ..default() + }, + Project { + name: "rubberkeys", + status: Abandoned(Working), + description: "", + ..default() + }, + Project { + name: "lunar-lander", + status: Abandoned(Working), + description: "", + ..default() + }, + Project { + name: "molecule-viewer", + status: Paused(Working), + description: "Web application to visualize layout of molecules", + ..default() + }, + Project { + name: "oxelpot", + status: Paused(Working), + description: "text-board service using pure html on the client", + ..default() + }, + Project { + name: "CUBE", + status: Abandoned(Unfinished), + description: "", + ..default() + }, + Project { + name: "godot-mumble-link", + status: Paused(Unfinished), + description: "", + ..default() + }, + Project { + name: "libreverse-server", + status: Unknown, + description: "2d multiplayer game engine server", + ..default() + }, + Project { + name: "twclient", + status: Paused(Unfinished), + description: "A teeworlds client in rust, based on libtw2", + ..default() + }, + Project { + name: "minetest_meta_uhc", + status: Paused(Unfinished), + description: "ultra hardcore mod for minetest with decreasing border size", + ..default() + }, + Project { + name: "guitar-chords", + status: Paused(Unfinished), + description: "", + ..default() + }, + Project { + name: "gnu-netcat", + status: Paused(Working), + description: "Mirror of the “GNU“ netcat utility (imported from CVS)", + ..default() + }, + Project { + name: "stonk-game", + status: Abandoned(Unfinished), + description: "simple game to compete in trading stocks", + ..default() + }, + Project { + name: "pw-patchbay", + status: Paused(Working), + description: "Tool to setup links for pipewire", + ..default() + }, + Project { + name: "desterr", + status: Maintained, + description: "dead simple tool to distinguish stderr and stdout", + ..default() + }, + Project { + name: "staticwiki", + status: Paused(Working), + description: "tools to convert MediaWiki XML dumps to static HTML pages", + ..default() + }, + Project { + name: "trash-proxy", + status: Paused(Working), + description: "A minecraft reverse proxy for offline auth.", + ..default() + }, + Project { + name: "trash-map", + status: Paused(Working), + description: "A minecraft map renderer", + ..default() + }, + Project { + name: "acoustsearch", + status: Paused(Unfinished), + description: "Search the acoustid database locally.", + ..default() + }, + Project { + name: "meta_shell", + status: Paused(Unfinished), + description: "Simple wayland shell only including a status dock.", + ..default() + }, + Project { + name: "3d-frame-interpolation", + status: Paused(Working), + description: "", + ..default() + }, + Project { + name: "librelambda", + status: Paused(Working), + description: "A lambda calculus \"solver\".", + ..default() + }, + Project { + name: "automato", + status: Paused(Unfinished), + description: "A minimal, gridless automation game." , + ..default() + }, +]; + const fn default() -> Project { Project { diff --git a/src/projects/mod.rs b/src/projects/mod.rs index f399984..d3ceb40 100644 --- a/src/projects/mod.rs +++ b/src/projects/mod.rs @@ -1,4 +1,4 @@ -use self::data::PROJECTS; +use self::data::{EXTRA_PROJECTS, PROJECTS}; use crate::layout::{DynScaffold, Scaffold}; use markup::Render; use rocket::get; @@ -19,27 +19,32 @@ pub fn r_projects() -> DynScaffold<'static> { li { @Status::Planned.render() ": No code has been written yet." } li { @Status::Developing.render() ": Project is under active development." } li { @Status::Maintained.render() ": Project is in a working state and receives regular updates." } - li { @Status::Stale.render() ": Project has been discontinued for an unspecified amount of time, but might be resumed if i feel like it." } - li { @Status::Abandoned.render() ": Project has been discontinued and will likely not be continued forever." } + li { @Status::Paused(State::Working).render() @Status::Paused(State::Unfinished).render() ": Project has been discontinued for an unspecified amount of time, but might be resumed if i feel like it." } + li { @Status::Abandoned(State::Working).render() @Status::Abandoned(State::Unfinished).render() ": Project has been discontinued and will likely not ever be continued." } li { @Status::Unknown.render() ": I have not bothered to write down the status" } } - ul { - @for p in PROJECTS { - li { @p } - } + ul { @for p in PROJECTS { li { @p } } } + details { summary { "Other not-so-important projects" } + ul { @for p in EXTRA_PROJECTS { li { @p } } } } }, } } #[derive(Debug, Clone, Copy)] +pub enum State { + Working, + Unfinished, +} + +#[derive(Debug, Clone, Copy)] pub enum Status { Unknown, Planned, Developing, - Stale, + Paused(State), Maintained, - Abandoned, + Abandoned(State), } markup::define! { Project( @@ -63,9 +68,21 @@ markup::define! { Project( }} impl Status { + fn ident(self) -> &'static str { + match self { + Status::Unknown => "unknown", + Status::Planned => "planned", + Status::Developing => "developing", + Status::Maintained => "maintained", + Status::Paused(State::Unfinished) => "paused-unfinished", + Status::Paused(State::Working) => "paused-working", + Status::Abandoned(State::Unfinished) => "abandoned-unfinished", + Status::Abandoned(State::Working) => "abandoned-working", + } + } pub fn render(self) -> impl Render { markup::new! { - div[class=format!("status status-{self:?}")] { @format!("{self:?}") } + div[class=format!("status status-{}", self.ident())] { @format!("{self:?}") } } } } |