feat: add Hugo blog with terminal-bus theme

Scaffold the bus.saillant.cc blog: Hugo site config, a hand-written
vendored theme (terminal-bus, zero deps), and the first post plus an
about page.

The theme is minimal on purpose: single baseof/home/page/section
layouts and one CSS file, styled as a terminal/hackerspace prompt
(green-on-dark, ASCII banner, monospace). No upstream theme pulled in,
per the no-blind-dependency policy.

Consumes journal entries later (Task 4); build output feeds deploy.sh
(Task 8). blog/public/ and blog/resources/ stay gitignored.
This commit is contained in:
L'électron rare
2026-07-09 11:24:01 +02:00
parent 5f0914d2ba
commit fdde64265e
9 changed files with 163 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
---
title: "À propos"
slug: "a-propos"
---
Chantier de transformation d'un Irisbus Axer en atelier/labo mobile,
mené par L'Electron Rare. Électronique, fabrication numérique, une
douche, 9 places, et un objectif VASP au bout de 5 ans.
Contact : clement@saillant.cc
@@ -0,0 +1,27 @@
---
title: "Le projet : un Irisbus Axer devient atelier mobile"
date: 2026-07-09
slug: "le-projet"
---
Un bus. Un vrai, un Irisbus Axer, déjà vidé de ses sièges. Destination :
**atelier / labo mobile** — électronique et prototypage d'un côté,
fabrication numérique de l'autre (imprimantes 3D, découpe laser, petite
CNC). Plus une cabine de douche et 9 places assises, parce qu'un atelier
qui ne peut pas emmener son équipe ne sert à rien.
Côté paperasse, l'objectif est une reclassification **VASP atelier
≤ 9 places** : conduite au permis C, sortie du régime transport en
commun. Ça impose de penser réglementaire *avant* de visser quoi que ce
soit — ancrages de sièges, circuit électrique séparé, suivi de poids par
essieu tenu depuis le premier jour.
L'horizon est assumé : **5 ans**. Année 1 : conception, pesée, isolation.
Ensuite l'énergie, les fluides, l'aménagement, les machines, et le
passage DREAL en bout de course.
Ce blog racontera le chantier — les plans, les ratés, les pesées, les
schémas. Tout le projet est versionné dans un dépôt git, y compris ce
billet.
Prochaine étape : peser le bus vide. Point zéro.
+15
View File
@@ -0,0 +1,15 @@
baseURL = "https://bus.saillant.cc/"
languageCode = "fr-fr"
title = "bus.saillant.cc"
theme = "terminal-bus"
timeZone = "Europe/Paris"
[params]
description = "Chantier d'un Irisbus Axer transformé en atelier/labo mobile — électronique, fab numérique, VASP."
prompt = "electron@bus"
[permalinks]
posts = "/:year/:month/:slug/"
[markup.goldmark.renderer]
unsafe = true
@@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="{{ site.Language.LanguageCode }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ if not .IsHome }}{{ .Title }} — {{ end }}{{ site.Title }}</title>
<meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ site.Params.description }}{{ end }}">
<link rel="stylesheet" href="{{ "css/terminal.css" | relURL }}">
</head>
<body>
<header>
<pre class="banner">
____ _ _ ____
| __ )| | | / ___| bus.saillant.cc
| _ \| | | \___ \ Irisbus Axer -&gt; atelier mobile
| |_) | |_| |___) | electronique . fab numerique . VASP
|____/ \___/|____/
</pre>
<nav>
<span class="prompt">{{ site.Params.prompt }}:~$</span>
<a href="{{ "/" | relURL }}">ls posts/</a>
<a href="{{ "/a-propos/" | relURL }}">cat a-propos.md</a>
</nav>
</header>
<main>
{{ block "main" . }}{{ end }}
</main>
<footer>
<span class="prompt">{{ site.Params.prompt }}:~$</span> uptime
— chantier démarré en 2026, horizon 5 ans. Généré par Hugo.
</footer>
</body>
</html>
@@ -0,0 +1,12 @@
{{ define "main" }}
<p class="intro">{{ site.Params.description }}</p>
<h2><span class="prompt">$</span> ls -lt posts/</h2>
<ul class="post-list">
{{ range where site.RegularPages "Section" "posts" }}
<li>
<span class="date">{{ .Date.Format "2006-01-02" }}</span>
<a href="{{ .RelPermalink }}">{{ .Title }}</a>
</li>
{{ end }}
</ul>
{{ end }}
@@ -0,0 +1,7 @@
{{ define "main" }}
<article>
<h1><span class="prompt">$</span> cat {{ path.Base .File.Path }}</h1>
{{ with .Date }}<p class="date"># {{ .Format "2006-01-02" }}</p>{{ end }}
{{ .Content }}
</article>
{{ end }}
@@ -0,0 +1,11 @@
{{ define "main" }}
<h1><span class="prompt">$</span> ls {{ .Section }}/</h1>
<ul class="post-list">
{{ range .Pages }}
<li>
<span class="date">{{ .Date.Format "2006-01-02" }}</span>
<a href="{{ .RelPermalink }}">{{ .Title }}</a>
</li>
{{ end }}
</ul>
{{ end }}
@@ -0,0 +1,44 @@
:root {
--bg: #0d1117;
--fg: #c9d1d9;
--green: #3fb950;
--amber: #d29922;
--dim: #8b949e;
--border: #30363d;
}
* { box-sizing: border-box; }
body {
background: var(--bg);
color: var(--fg);
font-family: "JetBrains Mono", "Fira Code", ui-monospace, "SF Mono",
Menlo, monospace;
font-size: 15px;
line-height: 1.6;
max-width: 80ch;
margin: 0 auto;
padding: 1.5rem 1rem 4rem;
}
.banner { color: var(--green); font-size: 12px; line-height: 1.2;
overflow-x: auto; }
.prompt { color: var(--green); font-weight: bold; }
nav a, footer a { margin-right: 1.5ch; }
a { color: var(--amber); text-decoration: none; }
a:hover { text-decoration: underline; background: var(--amber);
color: var(--bg); }
h1, h2, h3 { color: var(--green); font-size: 1.1em; margin-top: 2em; }
h1 { font-size: 1.25em; }
.date { color: var(--dim); margin-right: 2ch; }
.post-list { list-style: none; padding: 0; }
.post-list li { padding: 0.2em 0; }
img { max-width: 100%; border: 1px solid var(--border); }
pre, code { background: #161b22; }
pre { padding: 1em; overflow-x: auto; border: 1px solid var(--border); }
code { padding: 0.1em 0.4ch; }
pre code { padding: 0; }
blockquote { border-left: 3px solid var(--green); margin-left: 0;
padding-left: 1.5ch; color: var(--dim); }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid var(--border); padding: 0.3em 1ch;
text-align: left; }
hr { border: 0; border-top: 1px dashed var(--border); }
footer { margin-top: 4rem; color: var(--dim); font-size: 0.85em; }
+4
View File
@@ -0,0 +1,4 @@
name = "terminal-bus"
license = "MIT"
description = "Thème terminal/hackerspace minimal, vendored, zéro dépendance."
min_version = "0.146.0"