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 /src/projects | |
parent | 01bd18c75fd3652ce0b9eb76e23e967b0cba064b (diff) | |
download | metamuffin-website-d8d7bde604440a2186c9af6b5891c418fa98c462.tar metamuffin-website-d8d7bde604440a2186c9af6b5891c418fa98c462.tar.bz2 metamuffin-website-d8d7bde604440a2186c9af6b5891c418fa98c462.tar.zst |
all repos from codeberg
Diffstat (limited to 'src/projects')
-rw-r--r-- | src/projects/data.rs | 283 | ||||
-rw-r--r-- | src/projects/mod.rs | 37 |
2 files changed, 305 insertions, 15 deletions
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:?}") } } } } |