first commit
This commit is contained in:
13
layouts/partials/comments.html
Normal file
13
layouts/partials/comments.html
Normal file
@@ -0,0 +1,13 @@
|
||||
{{- if and (not .Params.nocomments) (.Site.Params.comentarioURL) }}
|
||||
<div class="comments-section">
|
||||
<div class="comments-section__header">
|
||||
<span class="widget-icon">💬</span> DISCUSSION
|
||||
</div>
|
||||
<div id="comentario"></div>
|
||||
<script defer
|
||||
src="{{ .Site.Params.comentarioURL }}/comentario.js"
|
||||
data-page-id="{{ .Permalink }}">
|
||||
</script>
|
||||
<comentario-comments></comentario-comments>
|
||||
</div>
|
||||
{{- end }}
|
||||
81
layouts/partials/footer.html
Normal file
81
layouts/partials/footer.html
Normal file
@@ -0,0 +1,81 @@
|
||||
<footer class="site-footer">
|
||||
<div class="site-wrapper">
|
||||
|
||||
<div class="footer-inner">
|
||||
|
||||
<!-- I don't like this stuff personally but feel free to put it back in -->
|
||||
<!-- Col 1: About
|
||||
<div class="footer-col">
|
||||
<div class="footer-col__title">ABOUT</div>
|
||||
<p style="font-family:var(--font-terminal); font-size:0.82rem; color:var(--text-dim); line-height:1.7;">
|
||||
{{- with .Site.Params.description }}{{ . }}{{ else }}
|
||||
A place for words, ideas, and the quiet rustle of digital manuscripts.
|
||||
{{- end }}
|
||||
</p>
|
||||
</div>-->
|
||||
|
||||
<!-- Col 2: Navigation
|
||||
<div class="footer-col">
|
||||
<div class="footer-col__title">NAVIGATION</div>
|
||||
<ul class="footer-links">
|
||||
{{- range .Site.Menus.footer }}
|
||||
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
||||
{{- end }}
|
||||
{{- if not .Site.Menus.footer }}
|
||||
<li><a href="{{ .Site.BaseURL }}">home</a></li>
|
||||
<li><a href="{{ "posts/" | relURL }}">archive</a></li>
|
||||
<li><a href="{{ "tags/" | relURL }}">index</a></li>
|
||||
<li><a href="{{ "about/" | relURL }}">about</a></li>
|
||||
<li><a href="{{ "index.xml" | relURL }}">rss feed</a></li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Col 3: Connect
|
||||
<div class="footer-col">
|
||||
<div class="footer-col__title">CONNECT</div>
|
||||
<ul class="footer-links">
|
||||
{{- with .Site.Params.social.github }}
|
||||
<li><a href="https://github.com/{{ . }}" target="_blank" rel="noopener">github</a></li>
|
||||
{{- end }}
|
||||
{{- with .Site.Params.social.mastodon }}
|
||||
<li><a href="{{ . }}" target="_blank" rel="noopener">mastodon</a></li>
|
||||
{{- end }}
|
||||
{{- with .Site.Params.social.email }}
|
||||
<li><a href="mailto:{{ . }}">email</a></li>
|
||||
{{- end }}
|
||||
{{- with .Site.Params.social.rss }}
|
||||
<li><a href="{{ . | relURL }}">rss</a></li>
|
||||
{{- else }}
|
||||
<li><a href="{{ "index.xml" | relURL }}">rss</a></li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
|
||||
<!-- Status Bar -->
|
||||
<div class="footer-status">
|
||||
<div class="status-left">
|
||||
<span class="status-indicator">
|
||||
<span class="status-dot"></span>
|
||||
SYSTEM ONLINE
|
||||
</span>
|
||||
<span>{{ now.Format "2006-01-02" }}</span>
|
||||
<span>
|
||||
{{- $pages := len .Site.RegularPages -}}
|
||||
{{ $pages }} ENTRIES INDEXED
|
||||
</span>
|
||||
</div>
|
||||
<div class="status-right">
|
||||
<span>HUGO v{{ hugo.Version }}</span>
|
||||
<span class="status-copyright">
|
||||
© {{ now.Year }}
|
||||
{{- with .Site.Params.author }} {{ . }}{{ end }}
|
||||
— CODEX OBSCURA THEME
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!-- /.site-wrapper -->
|
||||
</footer>
|
||||
85
layouts/partials/head.html
Normal file
85
layouts/partials/head.html
Normal file
@@ -0,0 +1,85 @@
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
|
||||
<!-- LaTeX Rendering -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.js"></script>
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/contrib/auto-render.min.js"
|
||||
onload="renderMathInElement(document.body, {
|
||||
delimiters: [
|
||||
{left: '$$', right: '$$', display: true},
|
||||
{left: '$', right: '$', display: false}
|
||||
]
|
||||
});">
|
||||
</script>
|
||||
|
||||
|
||||
<!-- Syntax Highlighting -->
|
||||
<!-- Highlight.js for better Common Lisp support -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/base16/monokai.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/lisp.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/python.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/julia.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/r.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/bash.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
|
||||
{{- with .Site.Params.description }}
|
||||
<meta name="description" content="{{ . }}" />
|
||||
{{- end }}
|
||||
|
||||
{{- with .Description }}
|
||||
<meta name="description" content="{{ . }}" />
|
||||
{{- end }}
|
||||
|
||||
{{- with .Site.Params.author }}
|
||||
<meta name="author" content="{{ . }}" />
|
||||
{{- end }}
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
|
||||
<meta property="og:title" content="{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} — {{ .Site.Title }}{{ end }}" />
|
||||
<meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{ .Site.Params.description }}{{ end }}" />
|
||||
<meta property="og:url" content="{{ .Permalink }}" />
|
||||
{{- with .Site.Params.ogImage }}
|
||||
<meta property="og:image" content="{{ . | absURL }}" />
|
||||
{{- end }}
|
||||
|
||||
<!-- Twitter -->
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:title" content="{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} — {{ .Site.Title }}{{ end }}" />
|
||||
|
||||
<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} — {{ .Site.Title }}{{ end }}</title>
|
||||
|
||||
<!-- Canonical -->
|
||||
<link rel="canonical" href="{{ .Permalink }}" />
|
||||
|
||||
<!-- RSS -->
|
||||
{{ range .AlternativeOutputFormats -}}
|
||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink }}" title="{{ $.Site.Title }}" />
|
||||
{{ end -}}
|
||||
|
||||
<!-- Favicon — pixel style -->
|
||||
<link rel="icon" type="image/svg+xml" href="{{ "favicon.svg" | relURL }}" />
|
||||
<link rel="alternate icon" href="{{ "favicon.ico" | relURL }}" />
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link href="https://fonts.googleapis.com/css2?family=VT323&family=IM+Fell+English:ital@0;1&family=Courier+Prime:ital,wght@0,400;0,700;1,400&display=swap" rel="stylesheet" />
|
||||
|
||||
<!-- Theme CSS -->
|
||||
<link rel="stylesheet" href="{{ "css/main.css" | relURL }}" />
|
||||
|
||||
{{- with .Site.Params.customCSS }}
|
||||
{{- range . }}
|
||||
<link rel="stylesheet" href="{{ . | relURL }}" />
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
<!-- Inline critical SVG favicon -->
|
||||
<style>
|
||||
/* Favicon SVG embedded for retro pixel look */
|
||||
</style>
|
||||
51
layouts/partials/header.html
Normal file
51
layouts/partials/header.html
Normal file
@@ -0,0 +1,51 @@
|
||||
<header class="site-header">
|
||||
<div class="site-wrapper">
|
||||
<div class="header-inner">
|
||||
|
||||
<!-- Decorative deco row — books, leaves, tea -->
|
||||
|
||||
<!-- Site Title -->
|
||||
<div style="display:flex; align-items:baseline; gap:1rem; flex-wrap:wrap;">
|
||||
<a href="{{ .Site.BaseURL }}" class="site-title">
|
||||
<span class="site-title__prompt">~/</span>
|
||||
<span class="site-title__name">{{ .Site.Title | default "Codex Obscura" }}</span>
|
||||
<!-- span class="site-title__cursor" aria-hidden="true">█</span -->
|
||||
</a>
|
||||
{{- with .Site.Params.tagline }}
|
||||
<span class="site-tagline">{{ . }}</span>
|
||||
{{- end }}
|
||||
</div>
|
||||
<div class="site-deco" aria-hidden="true">
|
||||
<font size="3.5pt"> ✨ this | is | customized | in | partials | header | line | 19 ✨ </font>
|
||||
</div>
|
||||
|
||||
<!-- Navigation -->
|
||||
<nav class="site-nav" aria-label="Primary navigation">
|
||||
{{ $currentPage := . }}
|
||||
{{- range .Site.Menus.main }}
|
||||
<div class="nav-item{{ if $currentPage.IsMenuCurrent "main" . }} nav-item--active{{ end }}">
|
||||
<a href="{{ .URL }}">
|
||||
{{ .Name }}
|
||||
|
||||
</a>
|
||||
</div>
|
||||
{{- end }}
|
||||
{{- if not .Site.Menus.main }}
|
||||
<div class="nav-item{{ if .IsHome }} nav-item--active{{ end }}">
|
||||
<a href="{{ .Site.BaseURL }}">home</a>
|
||||
</div>
|
||||
<div class="nav-item">
|
||||
<a href="{{ "posts/" | relURL }}">posts</a>
|
||||
</div>
|
||||
<div class="nav-item">
|
||||
<a href="{{ "tags/" | relURL }}">tags</a>
|
||||
</div>
|
||||
<div class="nav-item">
|
||||
<a href="{{ "about/" | relURL }}">about</a>
|
||||
</div>
|
||||
{{- end }}
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
80
layouts/partials/sidebar.html
Normal file
80
layouts/partials/sidebar.html
Normal file
@@ -0,0 +1,80 @@
|
||||
<aside class="sidebar" aria-label="Sidebar">
|
||||
|
||||
<!-- System Info Widget -->
|
||||
<div class="sidebar-widget pixel-border">
|
||||
<div class="sidebar-widget__header"><span class="site-title__cursor" aria-hidden="true">█</span>SYS_INFO</div>
|
||||
<div class="sys-info">
|
||||
<div class="sys-info__row">
|
||||
<span class="sys-info__key">HOST</span>
|
||||
<span class="sys-info__val">{{ .Site.Title | default "codex" }}</span>
|
||||
</div>
|
||||
<div class="sys-info__row">
|
||||
<span class="sys-info__key">LANG</span>
|
||||
<span class="sys-info__val">{{ .Site.LanguageCode | default "en-US" }}</span>
|
||||
</div>
|
||||
<div class="sys-info__row">
|
||||
<span class="sys-info__key">ENTRIES</span>
|
||||
<span class="sys-info__val">{{ len .Site.RegularPages }}</span>
|
||||
</div>
|
||||
<div class="sys-info__row">
|
||||
<span class="sys-info__key">TAGS</span>
|
||||
<span class="sys-info__val">{{ len .Site.Taxonomies.tags }}</span>
|
||||
</div>
|
||||
<div class="sys-info__row">
|
||||
<span class="sys-info__key">STATUS</span>
|
||||
<span class="sys-info__val" style="color:var(--forest-light)">ONLINE</span>
|
||||
</div>
|
||||
<div class="sys-info__row">
|
||||
<span class="sys-info__key">UPTIME</span>
|
||||
<span class="sys-info__val" id="js-uptime">--:--:--</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Recent Posts Widget -->
|
||||
{{- $recent := first 5 .Site.RegularPages }}
|
||||
{{- if $recent }}
|
||||
<div class="sidebar-widget pixel-border">
|
||||
<div class="sidebar-widget__header"><span class="widget-icon">📖</span> RECENT</div>
|
||||
<ul class="sidebar-posts">
|
||||
{{- range $recent }}
|
||||
<li class="sidebar-post">
|
||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||
<span class="sidebar-post__date">{{ .Date.Format "2006-01-02" }}</span>
|
||||
</li>
|
||||
{{- end }}
|
||||
</ul>
|
||||
</div>
|
||||
{{- end }}
|
||||
|
||||
<!-- Tags Widget
|
||||
{{- with .Site.Taxonomies.tags }}
|
||||
<div class="sidebar-widget pixel-border">
|
||||
<div class="sidebar-widget__header"><span class="widget-icon">🏷</span> INDEX</div>
|
||||
<div class="sidebar-tags">
|
||||
{{- range $name, $pages := . }}
|
||||
<a href="{{ "tags/" | relURL }}{{ $name | urlize }}/" class="tag">
|
||||
{{ $name }}
|
||||
<span style="color:var(--text-dim);font-size:0.75em;">({{ len $pages }})</span>
|
||||
</a>
|
||||
{{- end }}
|
||||
</div>
|
||||
</div>
|
||||
{{- end }}-->
|
||||
|
||||
<!-- Quote Widget -->
|
||||
{{- with .Site.Params.sidebarQuote }}
|
||||
<div class="sidebar-widget pixel-border" style="border-left:3px solid var(--amber-dark);">
|
||||
<div class="sidebar-widget__header"><span class="widget-icon">🪶</span> MARGINALIA</div>
|
||||
<p style="font-family:var(--font-body); font-style:italic; font-size:0.85rem; color:var(--text-muted); line-height:1.65;">
|
||||
“{{ . }}”
|
||||
</p>
|
||||
{{- with $.Site.Params.sidebarQuoteAuthor }}
|
||||
<p style="font-family:var(--font-terminal); font-size:0.75rem; color:var(--text-dim); margin-top:0.5rem; text-align:right;">
|
||||
— {{ . }}
|
||||
</p>
|
||||
{{- end }}
|
||||
</div>
|
||||
{{- end }}
|
||||
|
||||
</aside>
|
||||
Reference in New Issue
Block a user