diff --git a/assets/css/custom.css b/assets/css/custom.css index 8affd6d..b30b4bc 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -209,13 +209,10 @@ body:not(.home) .menu { display: none; } font-family: var(--font-family-serif); font-size: 0.85em; line-height: 1.6; - text-align: left; - /* ragged-right with hyphenation reads better than a raw ragged edge at this - column width; :lang() on (set per-page by Hugo) picks the right - hyphenation dictionary for en vs. de automatically. text-wrap:pretty asks - the browser to look ahead across the whole paragraph (not just line by - line) so the rag varies naturally instead of coming out too even or - leaving a short orphan on the last line. */ + text-align: justify; + /* justified needs hyphenation, otherwise a narrow column like this one gets + ugly gaps between words; :lang() on (set per-page by Hugo) picks + the right hyphenation dictionary for en vs. de automatically. */ hyphens: auto; -webkit-hyphens: auto; text-wrap: pretty; diff --git a/assets/js/boot.js b/assets/js/boot.js index da10ffe..7f11cf6 100644 --- a/assets/js/boot.js +++ b/assets/js/boot.js @@ -44,7 +44,6 @@ ["ok", "Mounted /", 50], ["ok", "Mounted /portfolio", 50], ["ok", "Mounted /about", 50], - ["ok", "Mounted /openbureau", 50], ["ok", "Mounted /cv", 50], ["ok", "Mounted /colophon", 110], ["st", "Prerendering portfolio...", 220], diff --git a/assets/js/shell.js b/assets/js/shell.js index 75162db..efd4749 100644 --- a/assets/js/shell.js +++ b/assets/js/shell.js @@ -110,7 +110,7 @@ var email = bar.getAttribute("data-email"); if (info) lines.push(info); if (email) lines.push(email); - lines.push("type: portfolio · about · openbureau"); + lines.push("type: portfolio · about"); return lines.join("\n"); } @@ -151,7 +151,6 @@ l.push("├── portfolio/"); work.forEach(function (s, i) { l.push("│ " + (i === work.length - 1 ? "└── " : "├── ") + s + "/"); }); l.push("├── about/"); - l.push("├── openbureau/"); l.push("├── .colophon"); l.push("└── .legal-notice"); return l.join("\n"); @@ -167,7 +166,7 @@ " |_|\\_\\ degree: ba architecture", " status: ma in progress", " uptime: " + up + "s", - " ~: portfolio · about · openbureau" + " ~: portfolio · about" ].join("\n"); } @@ -258,7 +257,7 @@ if (/^rm\b/.test(lc)) return "rm: some things you keep."; if (lc === "whoami") return "karim"; if (lc === "pwd") return pwd(); - if (lc === "help" || /^man\b/.test(lc)) return "nav: portfolio · about · openbureau · cv\nbasics: info · contact · date · time · tree · fetch · history\ntheme: dark · light"; + if (lc === "help" || /^man\b/.test(lc)) return "nav: portfolio · about · cv\nbasics: info · contact · date · time · tree · fetch · history\ntheme: dark · light"; if (lc === "hello" || lc === "hi" || lc === "hey") return "hi :)"; if (lc === "exit" || lc === "logout") return "there is no exit. only architecture."; if (lc === "coffee" || lc === "brew") return "☕ brewing… (418: i'm a teapot)"; diff --git a/content/colophon.de.md b/content/colophon.de.md index 95c3765..ba2741c 100644 --- a/content/colophon.de.md +++ b/content/colophon.de.md @@ -8,10 +8,10 @@ diese seite ist ein kleines terminal. sie ist statisch. hugo verwandelt meinen text in einfache html-dateien, und mehr gibt der server nie heraus. keine datenbank, kein backend, nichts zum einloggen. sie läuft auf fast jedem host. -die leiste oben ist eine echte shell. du kannst darin tippen. portfolio, about, openbureau bringen dich zu diesen seiten. help zeigt die grundlagen, tab vervollständigt ein wort, die pfeiltaste nach oben holt zurück, was du vorher getippt hast. nicht alles, was sie kennt, steht in der liste. jede seite ist auch eine dateiliste, du kannst die projekte und sogar das impressum wie verzeichnisse durchsehen und an ort und stelle lesen. +die leiste oben ist eine echte shell. du kannst darin tippen. portfolio, about bringen dich zu diesen seiten. help zeigt die grundlagen, tab vervollständigt ein wort, die pfeiltaste nach oben holt zurück, was du vorher getippt hast. nicht alles, was sie kennt, steht in der liste. jede seite ist auch eine dateiliste, du kannst die projekte und sogar das impressum wie verzeichnisse durchsehen und an ort und stelle lesen. der rest sind kleinigkeiten. die schrift ist iosevka, hier gehostet und von niemandem nachgeladen. der cursor ist pixel für pixel gezeichnet. es gibt einen dunkelmodus, wenn du dark tippst. nichts wird verfolgt, keine cookies, kein tracking. -sie folgt derselben idee wie [openbureau](/de/openbureau/): besitze deine werkzeuge, halte deine formate lesbar. die inhalte stehen unter cc by-sa, hugo und das theme sind open source (das [impressum](/de/legal-notice/) hat die details), und die seite baut zu einem docker-image, sodass jeder seine eigene kopie betreiben kann. +sie folgt derselben idee wie [openbureau](/de/about/): besitze deine werkzeuge, halte deine formate lesbar. die inhalte stehen unter cc by-sa, hugo und das theme sind open source (das [impressum](/de/legal-notice/) hat die details), und die seite baut zu einem docker-image, sodass jeder seine eigene kopie betreiben kann. geschrieben zwischen rheintal und luzern. diff --git a/content/colophon.md b/content/colophon.md index 3fda7c1..04f99e1 100644 --- a/content/colophon.md +++ b/content/colophon.md @@ -8,10 +8,10 @@ this site is a small terminal. it's static. hugo turns my text into plain html files, and that's all the server ever hands out. no database, no backend, nothing to log into. it runs on almost any host. -the bar at the top is a real shell. you can type in it. work, about, openbureau take you to those pages. help shows the basics, tab completes a word, the up arrow brings back what you typed before. not everything it knows is in the list. every page is also a file listing, so you browse the projects, and even the legal notice, like directories and read them on the spot. +the bar at the top is a real shell. you can type in it. work, about take you to those pages. help shows the basics, tab completes a word, the up arrow brings back what you typed before. not everything it knows is in the list. every page is also a file listing, so you browse the projects, and even the legal notice, like directories and read them on the spot. the rest is small things. the type is iosevka, hosted here and not pulled from anyone. the cursor is drawn pixel by pixel. there's a dark mode if you type dark. nothing is tracked, no cookies, no analytics. -it follows the same idea as [openbureau](/openbureau/): own your tools, keep your formats readable. the content is cc by-sa, hugo and the theme are open source (the [legal notice](/legal-notice/) has the details), and the site builds into a docker image so anyone can run their own copy. +it follows the same idea as [openbureau](/about/): own your tools, keep your formats readable. the content is cc by-sa, hugo and the theme are open source (the [legal notice](/legal-notice/) has the details), and the site builds into a docker image so anyone can run their own copy. written between the rhine valley and lucerne. diff --git a/content/openbureau.de.md b/content/openbureau.de.md index 6405561..823a611 100644 --- a/content/openbureau.de.md +++ b/content/openbureau.de.md @@ -1,7 +1,9 @@ --- title: "openbureau" description: "offene und selbst besessene werkzeuge für die architektur" -layout: "openbureau" +build: + render: never + list: never --- architektur läuft auf werkzeugen. die werkzeuge formen, was gedacht, gezeichnet und gebaut wird. die meisten sind proprietär: abonnements, die gekündigt werden können, dateiformate, die nur ihre eigentümer lesen können, arbeit, die verschwindet, wenn eine lizenz ausläuft. in einem beruf, der ohnehin auf prekärer arbeit läuft, ist das mietabschöpfung. diff --git a/content/openbureau.md b/content/openbureau.md index d775924..e3d8c53 100644 --- a/content/openbureau.md +++ b/content/openbureau.md @@ -1,7 +1,9 @@ --- title: "openbureau" description: "open and self-owned tools for architecture" -layout: "openbureau" +build: + render: never + list: never --- architecture runs on tools. the tools shape what gets thought, drawn, and built. most are proprietary: subscriptions that can be cancelled, file formats only their owners can read, work that disappears when a license lapses. in a profession that already runs on precarious labor, that's rent extraction. diff --git a/hugo.toml b/hugo.toml index fbacf5f..cf48b78 100644 --- a/hugo.toml +++ b/hugo.toml @@ -34,10 +34,6 @@ enableRobotsTXT = true name = "about" pageRef = "/about" weight = 2 - [[languages.en.menu.main]] - name = "openbureau" - pageRef = "/openbureau" - weight = 4 [languages.de] locale = "de_CH" @@ -54,10 +50,6 @@ enableRobotsTXT = true name = "about" pageRef = "/about" weight = 2 - [[languages.de.menu.main]] - name = "openbureau" - pageRef = "/openbureau" - weight = 4 [markup] [markup.goldmark.renderer] diff --git a/layouts/_default/about.html b/layouts/_default/about.html index 765267d..2038964 100644 --- a/layouts/_default/about.html +++ b/layouts/_default/about.html @@ -1,23 +1,37 @@ {{ define "bodyclass" }}page-about{{ end }} {{ define "main" }} -{{ $cv := .Site.GetPage "/cv" }} +{{ $files := slice + (.Site.GetPage "/cv") + (.Site.GetPage "/openbureau") + (.Site.GetPage "/ob/rapport") + (.Site.GetPage "/ob/dossier") }} +{{ $names := slice "cv.md" "openbureau.md" "rapport.md" "dossier.md" }} +{{ $total := 0 }}{{ range $files }}{{ if . }}{{ $total = add $total 1 }}{{ end }}{{ end }}
$ ls
-total 1
+total {{ $total }}
$ ls
- {{ $total := 1 }}{{ if $rapport }}{{ $total = add $total 1 }}{{ end }}{{ if $dossier }}{{ $total = add $total 1 }}{{ end }} -total {{ $total }}
-