diff --git a/.gitignore b/.gitignore index f18cdab..d4ba081 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ _gen # downloaded by nix -themes/poison +themes diff --git a/content/posts/why-i-do-not-use-flake-utils.md b/content/posts/why-i-do-not-use-flake-utils.md index 0a2e428..6f79f2c 100644 --- a/content/posts/why-i-do-not-use-flake-utils.md +++ b/content/posts/why-i-do-not-use-flake-utils.md @@ -11,9 +11,7 @@ For me the biggest advantage flakes bring is not additional functionality. Inste When learning flakes, you often see [flake-utils]( https://github.com/numtide/flake-utils) being used. With it, you can shorten your flakes by not having to specify everything per system. -_Edit_: The patterns described here as well as `flake-parts` are also compared in [Practical Nix flake anatomy](https://vtimofeenko.com/posts/practical-nix-flake-anatomy-a-guided-tour-of-flake.nix/#flake-utils-flakeparts-etc). - -## Without anything +### Without anything ```nix { @@ -35,7 +33,7 @@ _Edit_: The patterns described here as well as `flake-parts` are also compared i } ``` -## With flake-utils +### With flake-utils ```nix { @@ -56,7 +54,7 @@ _Edit_: The patterns described here as well as `flake-parts` are also compared i } ``` -## With function in flake +### With function in flake To make a long story short, here is what I usually do instead: @@ -96,24 +94,16 @@ For me, it wasn’t a problem to ignore boilerplate like this at first, slowly l At **[1]**, the supported systems are specified. I personally use `x86_64-linux` and `aarch64-linux`, but I also usually support `x86_64-darwin` and `aarch64-darwin` in public projects. If you want to support any system, you can use [`nixpkgs.lib.system.flake-exposed`](https://github.com/NixOS/nixpkgs/blob/374e6bcc403e02a35e07b650463c01a52b13a7c8/lib/systems/default.nix#L58) at **[2]** instead of defining your own list. -### Example variations - -Because the definition is right inside the flake, you can tweak what gets passed to the function. -By doing that, you have to explicitly add the new identifier to each part that uses it, instead of having a global `let` binding that is implicitly used. -`system` being available here is another bonus, as otherwise this would require duplicate `let`s everywhere. - +Because the definition is right inside the flake, you can tweak what gets passed to the function. For example, the [flake for RedoxOS-development](https://gitlab.redox-os.org/redox-os/redox/-/blob/cb34b9bd862f46729c0082c37a41782a3b1319c3/flake.nix#L38) I contributed[^1] this to passes the custom rust-toolchain. An example for how to do it is already right there: at **[3]**, `pkgs` is provided. -Some real-world usages I wrote or encountered: - -- [servicepoint-life flake](https://git.berlin.ccc.de/vinzenz/servicepoint-life/src/commit/5f5e10d39f09f4d60b4301e76f0158636afee6d1/flake.nix): passes in initialized `naersk` instance and a shorthand to refer to packages defined in the flake itself -- [RedoxOS development flake](https://gitlab.redox-os.org/redox-os/redox/-/blob/cb34b9bd862f46729c0082c37a41782a3b1319c3/flake.nix#L38): uses it to pass a custom rust-toolchain -- [my NixOS flake](https://git.berlin.ccc.de/vinzenz/nixos-configuration/src/commit/3d27f554015ece713fa22fe829d711b430d6bbda/flake.nix): uses something similar for per-host config Another possible tweak: You may want to define separate supported systems for each output. This is useful, for example, if the target environment you're developing for cannot support a development shell. -## Conclusion - For me, the trade-offs are worth it, as they provide greater transparency and control over the flake configuration. -For you, this may be different, in which case keep using it! + +That being said, I fully acknowledge that `flake-utils` can still be a great choice for many people. +It simplifies things and reduces the need to write boilerplate code, which can be a plus depending on your needs and workflow. Ultimately, it's also matter of personal preference. + +[^1]: If you check the history, you will see I am not mentioned. I am still a bit salty about that, as it was my first contribution to a bigger OSS project. diff --git a/content/projects/servicepoint/servicepoint.md b/content/projects/servicepoint/servicepoint.md new file mode 100644 index 0000000..580bdf3 --- /dev/null +++ b/content/projects/servicepoint/servicepoint.md @@ -0,0 +1,5 @@ ++++ +date = '2025-04-06T12:24:08+02:00' +draft = true +title = 'servicepoint' ++++ diff --git a/flake.lock b/flake.lock index cd3f169..c5f76d2 100644 --- a/flake.lock +++ b/flake.lock @@ -2,16 +2,16 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1748437600, - "narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=", + "lastModified": 1748037224, + "narHash": "sha256-92vihpZr6dwEMV6g98M5kHZIttrWahb9iRPBm1atcPk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "7282cb574e0607e65224d33be8241eae7cfe0979", + "rev": "f09dede81861f3a83f7f06641ead34f02f37597f", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.05", + "ref": "nixos-24.11", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 25eae1b..e8ecb43 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "Flake for the contents of https://zerforschen.plus"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-25.05"; + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11"; }; outputs = @@ -28,14 +28,12 @@ devShells = forAllSystems ( { pkgs, system, ... }: { - default = pkgs.mkShellNoCC { + default = pkgs.mkShellNoCC rec { inputsFrom = [ self.packages.${system}.default ]; shellHook = '' mkdir -p themes ln -snf "${self.packages.${system}.hugo-theme-poison}" themes/poison - - alias hugo="hugo --baseURL=http://localhost/" ''; }; } diff --git a/hugo.toml b/hugo.toml index 5ce6ecf..87533cf 100644 --- a/hugo.toml +++ b/hugo.toml @@ -2,41 +2,41 @@ baseURL = '/' #languageCode = 'en-us' title = 'zerforschen+' -theme = 'own-theme' +theme = 'poison' pluralizelisttitles = false [params] -brand = "zerforschen+" -description = "" -dark_mode = true -front_page_content = ["posts", "projects"] -menu = [ - # Dict keys: - # Name: The name to display on the menu. - # URL: The directory relative to the content directory. - # HasChildren: If the directory's files should be listed. Default is true. - # Limit: If the files should be listed, how many should be shown. + brand = "zerforschen+" + description = "" + dark_mode = true + front_page_content = ["posts", "projects"] + menu = [ + # Dict keys: + # Name: The name to display on the menu. + # URL: The directory relative to the content directory. + # HasChildren: If the directory's files should be listed. Default is true. + # Limit: If the files should be listed, how many should be shown. - { Name = "About", URL = "/about/", HasChildren = false }, + {Name = "About", URL = "/about/", HasChildren = false}, - { Name = "Posts", URL = "/posts/", HasChildren = true, Limit = 99 }, + {Name = "Posts", URL = "/posts/", HasChildren = true, Limit = 99}, - # {Name = "Projects", URL = "/projects/"}, -] + # {Name = "Projects", URL = "/projects/"}, + ] -#email_url = "mailto://user@domain" -github_url = "https://github.com/kaesaecracker" -mastodon_url = "https://chaos.social/@vinzenz" -matrix_url = "https://matrix.org" -forgejo_url = "https://git.berlin.ccc.de/vinzenz" -rss_icon = true + #email_url = "mailto://user@domain" + github_url = "https://github.com/kaesaecracker" + mastodon_url = "https://chaos.social/@vinzenz" + matrix_url = "https://matrix.org" + forgejo_url = "https://git.berlin.ccc.de/vinzenz" + rss_icon = true [taxonomies] -series = 'series' -tags = 'tags' + series = 'series' + tags = 'tags' [params.meta] -favicon = true + favicon = true [pagination] -pagerSize = 10 + pagerSize = 10 diff --git a/content/posts/_index.md b/layouts/.gitkeep similarity index 100% rename from content/posts/_index.md rename to layouts/.gitkeep diff --git a/themes/own-theme/layouts/_default/rss.xml b/layouts/_default/rss.xml similarity index 100% rename from themes/own-theme/layouts/_default/rss.xml rename to layouts/_default/rss.xml diff --git a/themes/own-theme/layouts/partials/socials.html b/layouts/partials/sidebar/socials.html similarity index 100% rename from themes/own-theme/layouts/partials/socials.html rename to layouts/partials/sidebar/socials.html diff --git a/themes/own-theme/archetypes/default.md b/themes/own-theme/archetypes/default.md deleted file mode 100644 index c6f3fce..0000000 --- a/themes/own-theme/archetypes/default.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -title = '{{ replace .File.ContentBaseName "-" " " | title }}' -date = {{ .Date }} -draft = true -+++ diff --git a/themes/own-theme/assets/css/main.css b/themes/own-theme/assets/css/main.css deleted file mode 100644 index 45e655d..0000000 --- a/themes/own-theme/assets/css/main.css +++ /dev/null @@ -1,19 +0,0 @@ -body { - font-family: sans-serif; - line-height: 1.5; - margin: 1rem; -} - -header { - border-bottom: 1px solid; - margin-bottom: 1rem; -} - -footer { - border-top: 1px solid; - margin-top: 1rem; -} - -a { - text-decoration: none; -} diff --git a/themes/own-theme/assets/js/main.js b/themes/own-theme/assets/js/main.js deleted file mode 100644 index e2aac52..0000000 --- a/themes/own-theme/assets/js/main.js +++ /dev/null @@ -1 +0,0 @@ -console.log('This site was generated by Hugo.'); diff --git a/themes/own-theme/hugo.toml b/themes/own-theme/hugo.toml deleted file mode 100644 index 6c35bc4..0000000 --- a/themes/own-theme/hugo.toml +++ /dev/null @@ -1,23 +0,0 @@ -baseURL = 'https://example.org/' -languageCode = 'en-US' -title = 'My New Hugo Site' - -[[menus.main]] -name = 'Home' -pageRef = '/' -weight = 10 - -[[menus.main]] -name = 'Posts' -pageRef = '/posts' -weight = 20 - -[[menus.main]] -name = 'Tags' -pageRef = '/tags' -weight = 30 - -[module] - [module.hugoVersion] - extended = false - min = "0.116.0" diff --git a/themes/own-theme/layouts/_default/baseof.html b/themes/own-theme/layouts/_default/baseof.html deleted file mode 100644 index 39dcbec..0000000 --- a/themes/own-theme/layouts/_default/baseof.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - {{ partial "head.html" . }} - - -
- {{ partial "header.html" . }} -
-
- {{ block "main" . }}{{ end }} -
- - - diff --git a/themes/own-theme/layouts/_default/home.html b/themes/own-theme/layouts/_default/home.html deleted file mode 100644 index 0df6597..0000000 --- a/themes/own-theme/layouts/_default/home.html +++ /dev/null @@ -1,7 +0,0 @@ -{{ define "main" }} - {{ .Content }} - {{ range site.RegularPages }} -

{{ .LinkTitle }}

- {{ .Summary }} - {{ end }} -{{ end }} diff --git a/themes/own-theme/layouts/_default/list.html b/themes/own-theme/layouts/_default/list.html deleted file mode 100644 index 50fc92d..0000000 --- a/themes/own-theme/layouts/_default/list.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ define "main" }} -

{{ .Title }}

- {{ .Content }} - {{ range .Pages }} -

{{ .LinkTitle }}

- {{ .Summary }} - {{ end }} -{{ end }} diff --git a/themes/own-theme/layouts/_default/single.html b/themes/own-theme/layouts/_default/single.html deleted file mode 100644 index 7e286c8..0000000 --- a/themes/own-theme/layouts/_default/single.html +++ /dev/null @@ -1,10 +0,0 @@ -{{ define "main" }} -

{{ .Title }}

- - {{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }} - {{ $dateHuman := .Date | time.Format ":date_long" }} - - - {{ .Content }} - {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }} -{{ end }} diff --git a/themes/own-theme/layouts/partials/footer.html b/themes/own-theme/layouts/partials/footer.html deleted file mode 100644 index e69de29..0000000 diff --git a/themes/own-theme/layouts/partials/head.html b/themes/own-theme/layouts/partials/head.html deleted file mode 100644 index 62ce25b..0000000 --- a/themes/own-theme/layouts/partials/head.html +++ /dev/null @@ -1,6 +0,0 @@ - - -{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }} -{{ partialCached "head/css.html" . }} -{{ partialCached "head/js.html" . }} - \ No newline at end of file diff --git a/themes/own-theme/layouts/partials/head/css.html b/themes/own-theme/layouts/partials/head/css.html deleted file mode 100644 index 91b928d..0000000 --- a/themes/own-theme/layouts/partials/head/css.html +++ /dev/null @@ -1,9 +0,0 @@ -{{- with resources.Get "css/main.css" }} - {{- if eq hugo.Environment "development" }} - - {{- else }} - {{- with . | minify | fingerprint }} - - {{- end }} - {{- end }} -{{- end }} diff --git a/themes/own-theme/layouts/partials/head/js.html b/themes/own-theme/layouts/partials/head/js.html deleted file mode 100644 index 18fe842..0000000 --- a/themes/own-theme/layouts/partials/head/js.html +++ /dev/null @@ -1,12 +0,0 @@ -{{- with resources.Get "js/main.js" }} - {{- if eq hugo.Environment "development" }} - {{- with . | js.Build }} - - {{- end }} - {{- else }} - {{- $opts := dict "minify" true }} - {{- with . | js.Build $opts | fingerprint }} - - {{- end }} - {{- end }} -{{- end }} diff --git a/themes/own-theme/layouts/partials/header.html b/themes/own-theme/layouts/partials/header.html deleted file mode 100644 index f23e6b8..0000000 --- a/themes/own-theme/layouts/partials/header.html +++ /dev/null @@ -1,3 +0,0 @@ -

{{ site.Title }}

-{{ partial "menu.html" (dict "menuID" "main" "page" .) }} -{{ partial "socials.html" . }} \ No newline at end of file diff --git a/themes/own-theme/layouts/partials/menu.html b/themes/own-theme/layouts/partials/menu.html deleted file mode 100644 index 7183180..0000000 --- a/themes/own-theme/layouts/partials/menu.html +++ /dev/null @@ -1,51 +0,0 @@ -{{- /* -Renders a menu for the given menu ID. - -@context {page} page The current page. -@context {string} menuID The menu ID. - -@example: {{ partial "menu.html" (dict "menuID" "main" "page" .) }} -*/}} - -{{- $page := .page }} -{{- $menuID := .menuID }} - -{{- with index site.Menus $menuID }} - -{{- end }} - -{{- define "partials/inline/menu/walk.html" }} - {{- $page := .page }} - {{- range .menuEntries }} - {{- $attrs := dict "href" .URL }} - {{- if $page.IsMenuCurrent .Menu . }} - {{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }} - {{- else if $page.HasMenuCurrent .Menu .}} - {{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }} - {{- end }} - {{- $name := .Name }} - {{- with .Identifier }} - {{- with T . }} - {{- $name = . }} - {{- end }} - {{- end }} -
  • - {{ $name }} - {{- with .Children }} - - {{- end }} -
  • - {{- end }} -{{- end }} diff --git a/themes/own-theme/layouts/partials/terms.html b/themes/own-theme/layouts/partials/terms.html deleted file mode 100644 index 8a6ebec..0000000 --- a/themes/own-theme/layouts/partials/terms.html +++ /dev/null @@ -1,23 +0,0 @@ -{{- /* -For a given taxonomy, renders a list of terms assigned to the page. - -@context {page} page The current page. -@context {string} taxonomy The taxonomy. - -@example: {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }} -*/}} - -{{- $page := .page }} -{{- $taxonomy := .taxonomy }} - -{{- with $page.GetTerms $taxonomy }} - {{- $label := (index . 0).Parent.LinkTitle }} -
    -
    {{ $label }}:
    - -
    -{{- end }} diff --git a/themes/own-theme/static/favicon.ico b/themes/own-theme/static/favicon.ico deleted file mode 100644 index 67f8b77..0000000 Binary files a/themes/own-theme/static/favicon.ico and /dev/null differ diff --git a/themes/own-theme/theme.toml b/themes/own-theme/theme.toml deleted file mode 100644 index c04ec33..0000000 --- a/themes/own-theme/theme.toml +++ /dev/null @@ -1,31 +0,0 @@ -name = 'the theme' -# license = '' -# licenselink = 'https://github.com/owner/repo/LICENSE' -# description = 'Theme description' -# -# # The home page of the theme, where the source can be found -# homepage = 'https://github.com/owner/repo' -# -# # If you have a running demo of the theme -# demosite = 'https://owner.github.io/repo' -# -# # Taxonomy terms -# tags = ['blog', 'company'] -# features = ['some', 'awesome', 'features'] -# -# # If the theme has multiple authors -# authors = [ -# {name = 'Name of author', homepage = 'Website of author'}, -# {name = 'Name of author', homepage = 'Website of author'} -# ] -# -# # If the theme has a single author -# [author] -# name = 'Your name' -# homepage = 'Your website' -# -# # If porting an existing theme -# [original] -# author = 'Name of original author' -# homepage = 'Website of original author' -# repo = 'https://github.com/owner/repo'