[submodule "themes/plain-hugo-theme"]
path = themes/plain-hugo-theme
url = git@github.com:AngeloR/plain-hugo-theme.git
+[submodule "themes/hugo-bearblog"]
+ path = themes/hugo-bearblog
+ url = https://github.com/janraasch/hugo-bearblog.git
+[submodule "themes/hugo-xmin"]
+ path = themes/hugo-xmin
+ url = https://github.com/yihui/hugo-xmin.git
--- /dev/null
+<!doctype html>
+<html lang="{{ .Site.Language.Lang }}">
+ <head>
+ {{ partial "head.html" . }}
+ </head>
+ <body class="site">
+ {{ partial "header.html" . }}
+ <main class="page">
+ {{ block "main" . }}{{ end }}
+ </main>
+ {{ partial "footer.html" . }}
+ </body>
+</html>
--- /dev/null
+{{ define "main" }}
+ <section class="list-header">
+ <h1>{{ .Title }}</h1>
+ {{ if .Content }}
+ <div class="list-content">
+ {{ .Content }}
+ </div>
+ {{ end }}
+ </section>
+ <section class="list-items">
+ {{ if eq .Section "posts" }}
+ {{ partial "post-list.html" . }}
+ {{ else }}
+ <ul class="post-list">
+ {{ range .Pages.ByDate.Reverse }}
+ <li>
+ <span class="post-date">{{ .Date.Format "2006-01-02" }}</span>
+ <a href="{{ .RelPermalink }}">{{ .Title }}</a>
+ </li>
+ {{ end }}
+ </ul>
+ {{ end }}
+ </section>
+{{ end }}
--- /dev/null
+{{ define "main" }}
+ <article class="post">
+ <header class="post-header">
+ <h1>{{ .Title }}</h1>
+ <p class="post-meta">
+ <time datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "January 2, 2006" }}</time>
+ {{ with .Params.tags }}
+ <span class="post-tags">
+ {{ range . }}
+ <span class="tag">{{ . }}</span>
+ {{ end }}
+ </span>
+ {{ end }}
+ </p>
+ </header>
+ <div class="post-content">
+ {{ .Content }}
+ </div>
+ </article>
+{{ end }}
--- /dev/null
+{{ define "main" }}
+ {{ if .Content }}
+ <section class="home-intro">
+ {{ .Content }}
+ </section>
+ {{ end }}
+ <section class="home-posts">
+ <h2>All Posts</h2>
+ {{ partial "post-list.html" . }}
+ </section>
+{{ end }}
--- /dev/null
+<footer class="site-footer">
+ <p>{{ with .Site.Copyright }}{{ . }}{{ else }}© {{ now.Format "2006" }} {{ .Site.Title }}{{ end }}</p>
+</footer>
--- /dev/null
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end }}</title>
+<link rel="stylesheet" href="{{ "css/style.css" | relURL }}">
+{{ with .OutputFormats.Get "rss" }}
+ <link rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" href="{{ .RelPermalink }}">
+{{ end }}
--- /dev/null
+<header class="site-header">
+ <div class="site-title">
+ <a href="{{ "/" | relURL }}">{{ .Site.Title }}</a>
+ </div>
+ {{ with .Site.Params.subtitle }}
+ <p class="site-subtitle">{{ . }}</p>
+ {{ end }}
+ <nav class="site-nav" aria-label="Primary">
+ {{ with .Site.Menus.main }}
+ {{ range . }}
+ <a href="{{ .URL | relURL }}">{{ .Name }}</a>
+ {{ end }}
+ {{ else }}
+ <a href="{{ "/" | relURL }}">Home</a>
+ {{ $pages := where .Site.RegularPages "Section" "pages" }}
+ {{ range $pages }}
+ <a href="{{ .RelPermalink }}">{{ .Title }}</a>
+ {{ end }}
+ {{ with .Site.GetPage "/posts" }}
+ <a href="{{ .RelPermalink }}">Posts</a>
+ {{ end }}
+ {{ with .OutputFormats.Get "rss" }}
+ <a href="{{ .RelPermalink }}">RSS</a>
+ {{ end }}
+ {{ end }}
+ </nav>
+</header>
--- /dev/null
+{{ $posts := where .Site.RegularPages "Section" "posts" }}
+{{ $posts = sort $posts "Date" "desc" }}
+{{ range $group := $posts.GroupByDate "2006" }}
+ <h3 class="post-year">{{ $group.Key }}</h3>
+ <ul class="post-list">
+ {{ range $group.Pages }}
+ <li>
+ <span class="post-date">{{ .Date.Format "2006-01-02" }}</span>
+ <a href="{{ .RelPermalink }}">{{ .Title }}</a>
+ </li>
+ {{ end }}
+ </ul>
+{{ end }}
--- /dev/null
+:root {
+ --ink: #0f0f0f;
+ --paper: #fbfbf8;
+ --accent: #0f2a57;
+ --border: #d7d7d0;
+ --muted: #606060;
+}
+
+* {
+ box-sizing: border-box;
+}
+
+html {
+ font-size: 18px;
+}
+
+body {
+ margin: 0;
+ color: var(--ink);
+ background-color: var(--paper);
+ font-family: "Times New Roman", Times, serif;
+ line-height: 1.8;
+}
+
+.site {
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+}
+
+.site-header,
+.site-footer,
+.page {
+ width: min(700px, 92vw);
+ margin: 0 auto;
+}
+
+.site-header {
+ padding: 2.8rem 0 1.8rem;
+ border-bottom: 1px solid var(--border);
+ background-color: var(--paper);
+}
+
+.site-title a {
+ font-size: clamp(2rem, 4vw, 3.2rem);
+ text-decoration: none;
+ color: var(--ink);
+ letter-spacing: 0.01em;
+}
+
+.site-subtitle {
+ margin: 0.6rem 0 0;
+ font-style: italic;
+ color: var(--muted);
+}
+
+.site-nav {
+ margin-top: 1.5rem;
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.6rem 1.2rem;
+ font-family: "Courier New", Courier, monospace;
+ font-size: 0.85rem;
+ text-transform: uppercase;
+ letter-spacing: 0.12em;
+}
+
+.site-nav a {
+ color: var(--ink);
+ text-decoration: none;
+ padding: 0.1rem 0;
+ border-bottom: 1px solid transparent;
+}
+
+.site-nav a:hover,
+.site-nav a:focus {
+ border-color: var(--accent);
+ color: var(--accent);
+}
+
+.page {
+ flex: 1;
+ padding: 2.5rem 0 3rem;
+ background-color: var(--paper);
+}
+
+.home-intro {
+ margin-bottom: 3rem;
+}
+
+.home-posts h2 {
+ margin-bottom: 1rem;
+ font-size: 1.2rem;
+ text-transform: uppercase;
+ letter-spacing: 0.18em;
+ border-bottom: 1px solid var(--border);
+ display: inline-block;
+ padding-bottom: 0.2rem;
+}
+
+.post-list {
+ list-style: none;
+ padding: 0;
+ margin: 1.5rem 0 0;
+ display: flex;
+ flex-direction: column;
+ gap: 0.9rem;
+}
+
+.post-year {
+ margin: 2rem 0 0.5rem;
+ font-size: 1.2rem;
+ letter-spacing: 0.2em;
+ text-transform: uppercase;
+ border-bottom: 2px solid var(--border);
+ display: block;
+ padding-bottom: 0.2rem;
+}
+
+.post-list li {
+ padding: 0.8rem 1rem;
+ border: 1px solid var(--border);
+ background: #ffffff;
+ display: grid;
+ grid-template-columns: 8.5rem 1fr;
+ gap: 1rem;
+ align-items: baseline;
+}
+
+.post-date {
+ font-family: "Courier New", Courier, monospace;
+ color: var(--muted);
+ font-size: 0.9rem;
+}
+
+.post-list a {
+ color: var(--ink);
+ text-decoration: none;
+ border-bottom: 2px solid transparent;
+}
+
+.post-list a:hover,
+.post-list a:focus {
+ border-color: var(--accent);
+ color: var(--accent);
+}
+
+.post-header h1 {
+ font-size: clamp(1.6rem, 3vw, 2.4rem);
+ line-height: 1.2;
+ margin-bottom: 0.4rem;
+}
+
+.post-meta {
+ margin: 0;
+ font-family: "Courier New", Courier, monospace;
+ text-transform: uppercase;
+ letter-spacing: 0.12em;
+ font-size: 0.8rem;
+ color: var(--muted);
+}
+
+.post-tags {
+ margin-left: 1rem;
+}
+
+.tag {
+ display: inline-block;
+ padding: 0.1rem 0.4rem;
+ border: 1px solid var(--border);
+ margin-right: 0.4rem;
+}
+
+.post-content {
+ margin-top: 2rem;
+}
+
+.post-content h2,
+.post-content h3,
+.post-content h4 {
+ border-bottom: 1px solid var(--border);
+ display: inline-block;
+ padding-bottom: 0.2rem;
+}
+
+.post-content a {
+ color: var(--accent);
+ text-decoration: underline;
+ text-decoration-thickness: 1px;
+}
+
+.post-content pre {
+ padding: 1rem;
+ border: 1px solid var(--border);
+ background: #0f0f0f;
+ color: #f2f2f2;
+ overflow-x: auto;
+}
+
+.post-content code {
+ font-family: "Courier New", Courier, monospace;
+ font-size: 0.95rem;
+}
+
+blockquote {
+ margin: 1.5rem 0;
+ padding: 1rem 1.5rem;
+ border-left: 4px solid var(--border);
+ background: #ffffff;
+}
+
+img {
+ max-width: 100%;
+ height: auto;
+ border: 1px solid var(--border);
+}
+
+.site-footer {
+ padding: 2rem 0 3rem;
+ border-top: 1px solid var(--border);
+ font-family: "Courier New", Courier, monospace;
+ text-transform: uppercase;
+ letter-spacing: 0.12em;
+ color: var(--muted);
+ background-color: var(--paper);
+}
+
+@media (max-width: 720px) {
+ html {
+ font-size: 16px;
+ }
+
+ .site-nav {
+ gap: 0.5rem 1rem;
+ }
+
+ .post-list li {
+ grid-template-columns: 1fr;
+ }
+}
--- /dev/null
+name = "custom-mytheme"
+license = "MIT"
+licenselink = "https://opensource.org/licenses/MIT"
+description = "Minimal, brutalist-inspired Hugo theme."
+min_version = "0.80.0"
+
+[author]
+ name = "Angelo Rodrigues"
--- /dev/null
+Subproject commit e43c252b8dded99643a6217c516762c0049fe37d
--- /dev/null
+Subproject commit c871e5665f5eceb919c8fdb284b73c7a07012646