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:
@@ -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.
|
||||||
@@ -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 -> 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; }
|
||||||
@@ -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"
|
||||||
Reference in New Issue
Block a user