i18n: bilingual de/en, bundle js from assets via hugo pipes, css refresh
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@
|
||||
<p class="tui__cmd"><span class="tui__sym">$</span> cd <span class="err404">.</span></p>
|
||||
<p class="tui__total">cd: no such file or directory: <span class="err404">.</span></p>
|
||||
<p>error 404 — nothing lives here.</p>
|
||||
<p><a href="{{ "/" | relURL }}">cd ~</a></p>
|
||||
<p><a href="{{ "/" | relLangURL }}">cd ~</a></p>
|
||||
</div>
|
||||
<script>
|
||||
(function () {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<p class="tui__cmd"><span class="tui__sym">$</span> ls</p>
|
||||
<p class="tui__cmd tui__total">total {{ if $cv }}2{{ else }}1{{ end }}</p>
|
||||
<ul class="tui__ls">
|
||||
<li><a href="{{ "/" | relURL }}" data-name="..">
|
||||
<li><a href="{{ "/" | relLangURL }}" data-name="..">
|
||||
<span class="tui__perm">drwxr-xr-x</span><span class="tui__name">..</span>
|
||||
</a></li>
|
||||
<li><a data-name="info.md" data-text="info.md" class="is-selected">
|
||||
|
||||
@@ -3,19 +3,25 @@
|
||||
{{ partial "head.html" . }}
|
||||
<body class="{{ block "bodyclass" . }}{{ end }}">
|
||||
<div id="boot" aria-hidden="true"><pre class="boot__log"></pre></div>
|
||||
<a href="#main-content" class="skip-link">Skip to content</a>
|
||||
<a href="#main-content" class="skip-link">{{ i18n "skip_to_content" }}</a>
|
||||
{{ partial "header.html" . }}
|
||||
<main id="main-content" role="main">
|
||||
{{ block "main" . }}{{ end }}
|
||||
</main>
|
||||
{{ partial "footer.html" . }}
|
||||
|
||||
<script src="{{ "js/cursor.js" | relURL }}" defer></script>
|
||||
<script src="{{ "js/shell.js" | relURL }}" defer></script>
|
||||
<script src="{{ "js/filebrowser.js" | relURL }}" defer></script>
|
||||
<script src="{{ "js/player.js" | relURL }}" defer></script>
|
||||
<script src="{{ "js/nav.js" | relURL }}" defer></script>
|
||||
<script src="{{ "js/boot.js" | relURL }}" defer></script>
|
||||
{{/* one fingerprinted bundle: the hash changes whenever any script changes,
|
||||
so the long browser/proxy cache can never serve a stale build. order is
|
||||
preserved (deferred IIFEs run in sequence). */}}
|
||||
{{ $js := slice
|
||||
(resources.Get "js/cursor.js")
|
||||
(resources.Get "js/shell.js")
|
||||
(resources.Get "js/filebrowser.js")
|
||||
(resources.Get "js/player.js")
|
||||
(resources.Get "js/nav.js")
|
||||
(resources.Get "js/boot.js")
|
||||
| resources.Concat "js/bundle.js" | minify | fingerprint }}
|
||||
<script src="{{ $js.RelPermalink }}" defer></script>
|
||||
<script>document.addEventListener('contextmenu',function(e){e.preventDefault();});</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<p class="tui__cmd"><span class="tui__sym">$</span> ls</p>
|
||||
<p class="tui__cmd tui__total">total {{ len $files }}</p>
|
||||
<ul class="tui__ls">
|
||||
<li><a href="{{ "/" | relURL }}" data-name="..">
|
||||
<li><a href="{{ "/" | relLangURL }}" data-name="..">
|
||||
<span class="tui__perm">drwxr-xr-x</span><span class="tui__name">..</span>
|
||||
</a></li>
|
||||
{{ range $i, $p := $files }}{{ if $p }}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
{{ $total := 1 }}{{ if $rapport }}{{ $total = add $total 1 }}{{ end }}{{ if $dossier }}{{ $total = add $total 1 }}{{ end }}
|
||||
<p class="tui__cmd tui__total">total {{ $total }}</p>
|
||||
<ul class="tui__ls">
|
||||
<li><a href="{{ "/" | relURL }}" data-name="..">
|
||||
<li><a href="{{ "/" | relLangURL }}" data-name="..">
|
||||
<span class="tui__perm">drwxr-xr-x</span><span class="tui__name">..</span>
|
||||
</a></li>
|
||||
<li><a data-name="info.md" data-text="info.md" class="is-selected">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{{ define "main" }}
|
||||
{{ if .Params.toc }}
|
||||
<nav class="toc"><strong>TABLE OF CONTENTS</strong><div class="toc-content">{{ .TableOfContents }}</div></nav>
|
||||
<nav class="toc"><strong>{{ i18n "table_of_contents" }}</strong><div class="toc-content">{{ .TableOfContents }}</div></nav>
|
||||
{{ end }}
|
||||
{{ .Content }}
|
||||
<div class="terminal-nav"><div class="back-nav"><a href="{{ "/" | relURL }}" class="back-link">../</a></div></div>
|
||||
<div class="terminal-nav"><div class="back-nav"><a href="{{ "/" | relLangURL }}" class="back-link">../</a></div></div>
|
||||
{{ end }}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<p class="tui__cmd"><span class="tui__sym">$</span> ls</p>
|
||||
<p class="tui__cmd tui__total">total {{ len .Pages }}</p>
|
||||
<ul class="tui__ls">
|
||||
<li><a href="{{ $up | relURL }}" data-name="..">
|
||||
<li><a href="{{ $up | relLangURL }}" data-name="..">
|
||||
<span class="tui__perm">drwxr-xr-x</span><span class="tui__name">..</span>
|
||||
</a></li>
|
||||
{{ range .Pages }}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<footer role="contentinfo">
|
||||
<p>© {{ now.Year }} karimgabrielevarano.xyz</p>
|
||||
<p><a href="{{ "/colophon/" | relURL }}" data-name="colophon">colophon</a> · <a href="{{ "/legal-notice/" | relURL }}" data-name="legal-notice">legal notice</a></p>
|
||||
<a href="{{ "/cv/" | relURL }}" data-name="cv" hidden>cv</a>
|
||||
<p><a href="{{ "/colophon/" | relLangURL }}" data-name="colophon">{{ i18n "colophon" }}</a> · <a href="{{ "/legal-notice/" | relLangURL }}" data-name="legal-notice">{{ i18n "legal_notice" }}</a></p>
|
||||
<a href="{{ "/cv/" | relLangURL }}" data-name="cv" hidden>cv</a>
|
||||
</footer>
|
||||
|
||||
@@ -12,6 +12,9 @@
|
||||
<meta name="description" content="{{ $desc }}">
|
||||
<meta name="author" content="{{ .Site.Params.author }}">
|
||||
<link rel="canonical" href="{{ .Permalink }}">
|
||||
{{/* tell search engines about the other language version of this page */}}
|
||||
{{ range .AllTranslations }}<link rel="alternate" hreflang="{{ .Language.Lang }}" href="{{ .Permalink }}">
|
||||
{{ end }}
|
||||
|
||||
{{/* social card image: project thumbnail, else home hero, else site default */}}
|
||||
{{ $ogimg := .Site.Params.ogImage }}
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<header role="banner">
|
||||
<div class="topbar" data-home="{{ "/" | relURL }}" data-info="{{ .Site.Params.description }}" data-email="{{ .Site.Params.email }}">
|
||||
<div class="topbar" data-home="{{ "/" | relLangURL }}" data-info="{{ .Site.Params.description }}" data-email="{{ .Site.Params.email }}">
|
||||
{{ with .Translations }}{{ range . }}<a class="lang-switch" href="{{ .RelPermalink }}" hreflang="{{ .Language.Lang }}" data-name="{{ .Language.Lang }}">{{ .Language.Lang }}</a>{{ end }}{{ end }}
|
||||
<div class="prompt" aria-label="shell">
|
||||
<a class="prompt__seg prompt__user" href="{{ "/" | relURL }}">{{ .Site.Params.shellUser }}@{{ .Site.Params.shellHost }}</a><span class="prompt__path">:~{{ if not .IsHome }}{{ $rel := strings.TrimSuffix "/" .RelPermalink }}{{ $parts := after 1 (split $rel "/") }}{{ $last := sub (len $parts) 1 }}{{ $acc := "" }}{{ range $i, $seg := $parts }}{{ $acc = printf "%s/%s" $acc $seg }}{{ $disp := $seg }}{{ if and $.Params.dotfile (eq $i $last) }}{{ $disp = printf ".%s" $seg }}{{ end }}/<a class="prompt__seg" href="{{ (printf "%s/" $acc) | relURL }}">{{ $disp }}</a>{{ end }}{{ end }}$</span><span class="prompt__input" contenteditable="true" role="textbox" aria-label="type a command, then press enter" spellcheck="false"></span><span class="caret">_</span>
|
||||
<a class="prompt__seg prompt__user" href="{{ "/" | relLangURL }}">{{ .Site.Params.shellUser }}@{{ .Site.Params.shellHost }}</a><span class="prompt__path">:~{{ if not .IsHome }}{{ $rel := strings.TrimSuffix "/" .RelPermalink }}{{ $rel = strings.TrimPrefix .Site.LanguagePrefix $rel }}{{ $parts := after 1 (split $rel "/") }}{{ $last := sub (len $parts) 1 }}{{ $acc := "" }}{{ range $i, $seg := $parts }}{{ $acc = printf "%s/%s" $acc $seg }}{{ $disp := $seg }}{{ if and $.Params.dotfile (eq $i $last) }}{{ $disp = printf ".%s" $seg }}{{ end }}/<a class="prompt__seg" href="{{ (printf "%s/" $acc) | relLangURL }}">{{ $disp }}</a>{{ end }}{{ end }}$</span><span class="prompt__input" contenteditable="true" role="textbox" aria-label="type a command, then press enter" spellcheck="false"></span><span class="caret">_</span>
|
||||
</div>
|
||||
<p class="prompt__out" aria-live="polite"></p>
|
||||
<nav class="menu tui tui--files" aria-label="Main menu">
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<p class="tui__cmd"><span class="tui__sym">$</span> ls</p>
|
||||
<p class="tui__cmd tui__total">total {{ len $sorted }}</p>
|
||||
<ul class="tui__ls">
|
||||
<li><a href="{{ "/" | relURL }}" data-name="..">
|
||||
<li><a href="{{ "/" | relLangURL }}" data-name="..">
|
||||
<span class="tui__perm">drwxr-xr-x</span><span class="tui__date"></span><span class="tui__name">..</span>
|
||||
</a></li>
|
||||
{{ range $i, $p := $sorted }}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
{{ $total := 0 }}{{ if $images }}{{ $total = len $images }}{{ end }}{{ if $hasText }}{{ $total = add $total 1 }}{{ end }}{{ if $video }}{{ $total = add $total 1 }}{{ end }}
|
||||
<p class="tui__cmd tui__total">total {{ $total }}</p>
|
||||
<ul class="tui__ls">
|
||||
<li><a href="{{ "/portfolio/" | relURL }}" data-name="..">
|
||||
<li><a href="{{ "/portfolio/" | relLangURL }}" data-name="..">
|
||||
<span class="tui__perm">drwxr-xr-x</span><span class="tui__name">..</span>
|
||||
</a></li>
|
||||
{{ if $hasText }}
|
||||
|
||||
Reference in New Issue
Block a user