From 6d2f00dfe6d3279d2239cf0135dcd017d1bae46b Mon Sep 17 00:00:00 2001 From: Silas Bartha Date: Thu, 15 Aug 2024 01:50:22 -0400 Subject: [PATCH] project page + pomd page --- CNAME | 1 - config.toml | 5 ++++ content/_index.md | 3 +- content/projects/_index.md | 5 ++++ content/projects/pomd/index.md | 31 ++++++++++++++++++++ content/projects/pomd/statusbar.png | Bin 0 -> 9883 bytes sass/style.scss | 6 ++++ templates/project-page.html | 42 ++++++++++++++++++++++++++++ templates/projects.html | 19 +++++++++++++ 9 files changed, 110 insertions(+), 2 deletions(-) delete mode 100644 CNAME create mode 100644 content/projects/_index.md create mode 100644 content/projects/pomd/index.md create mode 100644 content/projects/pomd/statusbar.png create mode 100644 templates/project-page.html diff --git a/CNAME b/CNAME deleted file mode 100644 index 33864bf..0000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -exvacuum.dev \ No newline at end of file diff --git a/config.toml b/config.toml index 9c86351..f6740e7 100644 --- a/config.toml +++ b/config.toml @@ -7,6 +7,11 @@ compile_sass = true # Whether to build a search index to be used later on by a JavaScript library build_search_index = false +taxonomies = [ + { name = "categories", render = false }, + { name = "languages", render = false }, +] + [markdown] # Whether to do syntax highlighting # Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola diff --git a/content/_index.md b/content/_index.md index 0491e17..e8d7e25 100644 --- a/content/_index.md +++ b/content/_index.md @@ -1,10 +1,11 @@ +++ template = "index.html" +title = "hello" +++ # silas -- ~~projects~~ (coming soon, see [github](https://github.com/exvacuum) for now) +- [projects](@/projects/_index.md) - [blog](@/blog/_index.md) find me in other places diff --git a/content/projects/_index.md b/content/projects/_index.md new file mode 100644 index 0000000..8448ec5 --- /dev/null +++ b/content/projects/_index.md @@ -0,0 +1,5 @@ ++++ +title = "projects" +template = "projects.html" +page_template = "project-page.html" ++++ diff --git a/content/projects/pomd/index.md b/content/projects/pomd/index.md new file mode 100644 index 0000000..93ba0ff --- /dev/null +++ b/content/projects/pomd/index.md @@ -0,0 +1,31 @@ ++++ +title = "pomd" +description = "pomodoro timer daemon" +[taxonomies] +categories = ["utility"] +languages = ["rust"] +[extra] +finished = "november 2023" +github = ["exvacuum/pomd", "exvacuum/pomc"] +crates = ["pomd", "pomc"] ++++ + +this was a pretty simple rust project i did over the course of a couple days + +i had been wanting to experiment with d-bus on linux for a while and figured that writing a pomodoro daemon and client would be a good way to understand the basics of how d-bus interfaces work + +luckily i found the wonderful [zbus](https://crates.io/crates/zbus) crate which made everything for hooking up interface super simple + +i think the hardest thing about this project was trying to figure out how to accurately keep the time left in the timer + +as with many problems in rust the solution ended up being to find a [crate](https://crates.io/crates/pausable_clock) that implemented a "pausable clock" that worked similarly to a normal rust `std::time::Instant` + +it's pretty configurable from what i remember + +i used this program when i was using [dwm](https://dwm.suckless.org) and wanted a daemon to integrate into my statusbar + +![pomd segment in my dwm statusbar](statusbar.png) + +now i use KDE plasma which has a pretty good pomodoro applet available, maybe in the future i could make some kind of widget that communicates with the daemon + + diff --git a/content/projects/pomd/statusbar.png b/content/projects/pomd/statusbar.png new file mode 100644 index 0000000000000000000000000000000000000000..6ca820a09c50c8cae4c9029641013f51774edc03 GIT binary patch literal 9883 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 <- back to projects +

+ {{ page.title }} +

+

{{ page.description }}

+ +{% if page.taxonomies.categories %} +

category: {{ page.taxonomies.categories[0] }}

+{% endif %} +{% if page.extra.finished %} +

finished: {{ page.extra.finished }}

+{% endif %} +{% if page.taxonomies.languages %} +

+ languages: + {% for language in page.taxonomies.languages %} + {{ language }} + {% endfor %} +

+{% endif %} +{% if page.extra.github %} +

+ github: + {% for repo in page.extra.github %} + {{ repo }} + {% endfor %} +

+{% endif %} +{% if page.extra.crates %} +

+ crates.io: + {% for crate in page.extra.crates %} + {{ crate }} + {% endfor %} +

+{% endif %} +
+{{ page.content | safe }} +{% endblock content %} diff --git a/templates/projects.html b/templates/projects.html index e69de29..8b01177 100644 --- a/templates/projects.html +++ b/templates/projects.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} + +{% block content %} + <- back to landing +

+ {{ section.title }} +

+{% set categories = get_taxonomy(kind="categories") %} + +{% for category in categories.items %} +{{category.name}} + +{% endfor %} + +{% endblock content %}