diff --git a/.gitignore b/.gitignore index d4ba081..f18cdab 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ _gen # downloaded by nix -themes +themes/poison diff --git a/layouts/.gitkeep b/content/posts/_index.md similarity index 100% rename from layouts/.gitkeep rename to content/posts/_index.md diff --git a/content/projects/servicepoint/servicepoint.md b/content/projects/servicepoint/servicepoint.md deleted file mode 100644 index 580bdf3..0000000 --- a/content/projects/servicepoint/servicepoint.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -date = '2025-04-06T12:24:08+02:00' -draft = true -title = 'servicepoint' -+++ diff --git a/flake.nix b/flake.nix index d1738f8..25eae1b 100644 --- a/flake.nix +++ b/flake.nix @@ -28,12 +28,14 @@ devShells = forAllSystems ( { pkgs, system, ... }: { - default = pkgs.mkShellNoCC rec { + default = pkgs.mkShellNoCC { 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 87533cf..5ce6ecf 100644 --- a/hugo.toml +++ b/hugo.toml @@ -2,41 +2,41 @@ baseURL = '/' #languageCode = 'en-us' title = 'zerforschen+' -theme = 'poison' +theme = 'own-theme' 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/themes/own-theme/archetypes/default.md b/themes/own-theme/archetypes/default.md new file mode 100644 index 0000000..c6f3fce --- /dev/null +++ b/themes/own-theme/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +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 new file mode 100644 index 0000000..45e655d --- /dev/null +++ b/themes/own-theme/assets/css/main.css @@ -0,0 +1,19 @@ +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 new file mode 100644 index 0000000..e2aac52 --- /dev/null +++ b/themes/own-theme/assets/js/main.js @@ -0,0 +1 @@ +console.log('This site was generated by Hugo.'); diff --git a/themes/own-theme/hugo.toml b/themes/own-theme/hugo.toml new file mode 100644 index 0000000..6c35bc4 --- /dev/null +++ b/themes/own-theme/hugo.toml @@ -0,0 +1,23 @@ +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 new file mode 100644 index 0000000..39dcbec --- /dev/null +++ b/themes/own-theme/layouts/_default/baseof.html @@ -0,0 +1,17 @@ + + + + {{ 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 new file mode 100644 index 0000000..0df6597 --- /dev/null +++ b/themes/own-theme/layouts/_default/home.html @@ -0,0 +1,7 @@ +{{ 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 new file mode 100644 index 0000000..50fc92d --- /dev/null +++ b/themes/own-theme/layouts/_default/list.html @@ -0,0 +1,8 @@ +{{ define "main" }} +

{{ .Title }}

+ {{ .Content }} + {{ range .Pages }} +

{{ .LinkTitle }}

+ {{ .Summary }} + {{ end }} +{{ end }} diff --git a/layouts/_default/rss.xml b/themes/own-theme/layouts/_default/rss.xml similarity index 100% rename from layouts/_default/rss.xml rename to themes/own-theme/layouts/_default/rss.xml diff --git a/themes/own-theme/layouts/_default/single.html b/themes/own-theme/layouts/_default/single.html new file mode 100644 index 0000000..7e286c8 --- /dev/null +++ b/themes/own-theme/layouts/_default/single.html @@ -0,0 +1,10 @@ +{{ 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 new file mode 100644 index 0000000..e69de29 diff --git a/themes/own-theme/layouts/partials/head.html b/themes/own-theme/layouts/partials/head.html new file mode 100644 index 0000000..62ce25b --- /dev/null +++ b/themes/own-theme/layouts/partials/head.html @@ -0,0 +1,6 @@ + + +{{ 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 new file mode 100644 index 0000000..91b928d --- /dev/null +++ b/themes/own-theme/layouts/partials/head/css.html @@ -0,0 +1,9 @@ +{{- 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 new file mode 100644 index 0000000..18fe842 --- /dev/null +++ b/themes/own-theme/layouts/partials/head/js.html @@ -0,0 +1,12 @@ +{{- 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 new file mode 100644 index 0000000..f23e6b8 --- /dev/null +++ b/themes/own-theme/layouts/partials/header.html @@ -0,0 +1,3 @@ +

{{ 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 new file mode 100644 index 0000000..7183180 --- /dev/null +++ b/themes/own-theme/layouts/partials/menu.html @@ -0,0 +1,51 @@ +{{- /* +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/layouts/partials/sidebar/socials.html b/themes/own-theme/layouts/partials/socials.html similarity index 100% rename from layouts/partials/sidebar/socials.html rename to themes/own-theme/layouts/partials/socials.html diff --git a/themes/own-theme/layouts/partials/terms.html b/themes/own-theme/layouts/partials/terms.html new file mode 100644 index 0000000..8a6ebec --- /dev/null +++ b/themes/own-theme/layouts/partials/terms.html @@ -0,0 +1,23 @@ +{{- /* +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 new file mode 100644 index 0000000..67f8b77 Binary files /dev/null and b/themes/own-theme/static/favicon.ico differ diff --git a/themes/own-theme/theme.toml b/themes/own-theme/theme.toml new file mode 100644 index 0000000..c04ec33 --- /dev/null +++ b/themes/own-theme/theme.toml @@ -0,0 +1,31 @@ +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'