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,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