Moving all the theme files out of the theme directory

This commit is contained in:
Dan 2025-12-08 13:52:23 +00:00
parent 23369f4ace
commit 3006bff575
40 changed files with 477 additions and 11 deletions

View file

@ -1,5 +1,6 @@
+++ +++
title = '{{ replace .File.ContentBaseName "-" " " | title }}' title = "{{ replace .TranslationBaseName "-" " " | title }}"
date = {{ .Date }} date = {{ .Date }}
draft = true tags = []
description = ""
+++ +++

View file

@ -1,6 +1,5 @@
baseURL: "https://ritual.sh/" baseURL: "https://ritual.sh/"
title: ritual.sh title: ritual.sh
theme: "hugo-starter"
enableRobotsTXT: true enableRobotsTXT: true
buildDrafts: false buildDrafts: false
buildFuture: false buildFuture: false
@ -17,13 +16,13 @@ minify:
params: params:
env: production env: production
label: label:
text: "ritual" text: "ritual"
icon: /images/android-chrome-512x512.png icon: /images/android-chrome-512x512.png
iconImageHeight: 35 iconImageHeight: 35
iconHeight: 70 iconHeight: 70
profileMode: profileMode:
enabled: false enabled: false
title: ExampleSite title: ExampleSite
@ -37,7 +36,7 @@ params:
url: posts url: posts
- name: Tags - name: Tags
url: tags url: tags
socialIcons: socialIcons:
- name: instagram - name: instagram
url: "https://www.instagram.com/ritualphotos" url: "https://www.instagram.com/ritualphotos"
@ -48,12 +47,11 @@ params:
- name: lastfm - name: lastfm
url: "https://www.last.fm/user/ritualplays" url: "https://www.last.fm/user/ritualplays"
cover: cover:
hidden: false hidden: false
hiddenInList: true hiddenInList: true
hiddenInSingle: false hiddenInSingle: false
fuseOpts: fuseOpts:
isCaseSensitive: false isCaseSensitive: false
shouldSort: true shouldSort: true
@ -96,5 +94,3 @@ markup:
module: module:
imports: imports:
- path: github.com/hugo-mods/lazyimg - path: github.com/hugo-mods/lazyimg

6
data/webpack_assets.json Normal file
View file

@ -0,0 +1,6 @@
{
"app": {
"js": "app.js",
"css": "app.css"
}
}

8
layouts/404.html Executable file
View file

@ -0,0 +1,8 @@
{{ define "header" }}{{ partial "page-header.html" . }}{{ end }}
{{ define "main" }}
<article>
<h1>
This is not the page you were looking for
</h1>
</article>
{{ end }}

29
layouts/_default/baseof.html Executable file
View file

@ -0,0 +1,29 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
{{/* NOTE: the Site's title, and if there is a page title, that is set too
*/}}
<title>
{{ block "title" . }}{{ .Site.Title }} {{ with .Params.Title }} | {{ .
}}{{ end }}{{ end }}
</title>
<meta name="viewport" content="width=device-width,minimum-scale=1" />
{{ hugo.Generator }} {{ $sass := resources.Get "sass/style.scss" }} {{
$style := $sass | css.Sass | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $style.RelPermalink }}" />
{{ range .Site.Params.custom_css }}
<link rel="stylesheet" href="{{ relURL ($.Site.BaseURL) }}{{ . }}" />
{{ end }} {{ block "favicon" . }} {{ partial "site-favicon.html" . }} {{ end
}}
</head>
<body>
{{ block "header" . }}{{ partial "site-header.html" .}}{{ end }}
<main role="main">{{ block "main" . }}{{ end }}</main>
{{ block "footer" . }}{{ partial "site-footer.html" . }}{{ end }} {{ block
"scripts" . }}{{ partial "site-scripts.html" . }}{{ end }}
</body>
</html>

15
layouts/_default/list.html Executable file
View file

@ -0,0 +1,15 @@
{{ define "main" }}
<article>
<section>
{{- .Content -}}
</section>
<section>
{{ range .Paginator.Pages }}
<div>
{{- partial "summary.html" . -}}
</div>
{{ end }}
</section>
{{- template "_internal/pagination.html" . -}}
</article>
{{ end }}

40
layouts/_default/single.html Executable file
View file

@ -0,0 +1,40 @@
{{ define "header" }}
{{/* We can override any block in the baseof file be defining it in the template */}}
{{ partial "page-header.html" . }}
{{ end }}
{{ define "main" }}
{{ $section := .Site.GetPage "section" .Section }}
<article>
<header>
<p>
{{/*
CurrentSection allows us to use the section title instead of inferring from the folder.
https://gohugo.io/variables/page/#section-variables-and-methods
*/}}
{{with .CurrentSection.Title }}{{. | upper }}{{end}}
</p>
<h1>
{{- .Title -}}
</h1>
{{/* Hugo uses Go's date formatting is set by example. Here are two formats */}}
<time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">
{{- .Date.Format "January 2, 2006" -}}
</time>
</header>
<section>
{{- .Content -}}
{{- partial "tags.html" . -}}
<div>
{{ template "_internal/disqus.html" . }}
</div>
</section>
<aside>
{{- partial "menu-contextual.html" . -}}
</aside>
</article>
{{ end }}

View file

@ -0,0 +1,16 @@
{{ define "main" }}
<article>
<div>
<p>Below you will find pages that utilize the taxonomy term “{{ .Title }}”</p>
</div>
</article>
<div>
<section>
{{ range .Pages }}
<div>
{{ partial "summary.html" . }}
</div>
{{ end }}
</section>
</div>
{{ end }}

View file

@ -0,0 +1,22 @@
{{ define "main" }}
{{ $data := .Data }}
<article>
<div>
{{ .Content }}
</div>
</article>
<div>
<section>
{{ range $key, $value := .Data.Terms }}
<h2>
<a href="{{ "/" | relLangURL }}{{ $.Data.Plural | urlize }}/{{ $key | urlize }}">
{{ $.Data.Singular | humanize }}: {{ $key }}
</a>
</h2>
{{ range $value.Pages }}
{{ partial "summary.html" . }}
{{ end }}
{{ end }}
</section>
</div>
{{ end }}

18
layouts/page/single.html Normal file
View file

@ -0,0 +1,18 @@
{{ define "header" }}{{ partial "page-header.html" . }}{{ end }}
{{ define "main" }}
<div>
<article>
<header>
<p>
{{ humanize .Section | upper }}
</p>
<h1>
{{ .Title }}
</h1>
</header>
<div>
{{ .Content }}
</div>
</article>
</div>
{{ end }}

View file

@ -0,0 +1,10 @@
{{ if .IsTranslated }}
<h4>{{ i18n "translations" }}</h4>
<ul>
{{ range .Translations }}
<li>
<a href="{{ .Permalink }}">{{ .Lang }}</a>
</li>
{{ end}}
</ul>
{{ end }}

View file

@ -0,0 +1,33 @@
{{/*
Use Hugo's native Table of contents feature. You must set `toc: true` in your parameters for this to show.
https://gohugo.io/content-management/toc/
*/}}
{{- if .Params.toc -}}
<div>
<p>What's in this {{ humanize .Type }}</p>
{{ .TableOfContents }}
</div>
{{- end -}}
{{/*
Use Hugo's native related content feature to pull in content that may have similar parameters, like tags. etc.
https://gohugo.io/content-management/related/
*/}}
{{ $related := .Site.RegularPages.Related . | first 15 }}
{{ with $related }}
<div>
<p>Related</p>
<ul>
{{ range . }}
<li>
<a href="{{ .RelPermalink }}">
{{- .Title -}}
</a>
</li>
{{ end }}
</ul>
</div>
{{ end }}

View file

@ -0,0 +1,2 @@
{{ $new_window_icon_size := "8px" }}
<span class="new-window">{{ partial "svg/new-window.svg" (dict "size" $new_window_icon_size) }}</span>

View file

@ -0,0 +1,5 @@
<header>
<div>
{{ partial "site-navigation.html" . }}
</div>
</header>

View file

@ -0,0 +1,3 @@
{{ if .Site.Params.favicon }}
<link rel="shortcut icon" href="/{{ .Site.Params.favicon }}" type="image/x-icon" />
{{ end }}

View file

@ -0,0 +1,12 @@
<footer role="contentinfo">
<div class="crt">
<a href="https://neocities.org/site/ritualsh" target="_blank">
Follow on Neocities
</a>
&nbsp;&bull;&nbsp;
<a href="{{ .Site.BaseURL }}">
&copy; {{ now.Format "2006" }} {{ .Site.Title }}
</a>
<div>{{ partial "social-follow.html" . }}</div>
</div>
</footer>

View file

@ -0,0 +1,15 @@
<header>
<div>
{{ partial "site-navigation.html" . }}
<div>
<!-- <h1>
{{ .Title | default .Site.Title }}
</h1> -->
{{ with .Params.description }}
<h2>
{{ . }}
</h2>
{{ end }}
</div>
</div>
</header>

View file

@ -0,0 +1,22 @@
<nav role="navigation" style="display:none;">
<div>
<a href="{{ .Site.BaseURL }}">
{{ .Site.Title }}
</a>
<div>
{{ partial "i18nlist.html" . }}
{{ if .Site.Menus.main }}
<ul>
{{ range .Site.Menus.main }}
<li>
<a href="{{ .URL }}" title="{{ .Name }} page">
{{ .Name }}
</a>
</li>
{{ end }}
</ul>
{{ end }}
{{ partial "social-follow.html" . }}
</div>
</div>
</nav>

View file

@ -0,0 +1,18 @@
{{ $script := .Site.Data.webpack_assets.app }}
{{ with $script.js }}
<script src="{{ relURL (printf "%s%s" "dist/" .) }}"></script>
{{ end }}
{{/* Terminal Scripts Partial */}}
{{/* This compiles all terminal JS files into a single minified bundle */}}
{{ $terminal := resources.Get "js/terminal.js" }}
{{ $lavalamp := resources.Get "js/lavalamp.js" }}
{{ $init := resources.Get "js/init.js" }}
{{ $coreCommands := resources.Get "js/commands/core.js" }}
{{ $utilityCommands := resources.Get "js/commands/utility.js" }}
{{ $navigationCommands := resources.Get "js/commands/navigation.js" }}
{{ $customCommands := resources.Get "js/commands/custom.js" }}
{{ $terminalBundle := slice $terminal $lavalamp $init $coreCommands $utilityCommands $navigationCommands $customCommands | resources.Concat "js/terminal-bundle.js" | resources.Minify | resources.Fingerprint }}
<script src="{{ $terminalBundle.RelPermalink }}" integrity="{{ $terminalBundle.Data.Integrity }}"></script>

View file

@ -0,0 +1,50 @@
<!-- TODO: Add follow intents where available TODO: Revisit color and hover color -->
{{ $icon_size := "32px" }}
{{ with .Param "facebook" }}
<a href="{{ . }}" target="_blank" class="facebook" title="Facebook link" rel="noopener" aria-label="follow on Facebook——Opens in a new window">
{{ partial "svg/facebook.svg" (dict "size" $icon_size) }}
{{- partial "new-window-icon.html" . -}}
</a>
{{ end }}
{{ with .Param "twitter" }}
<a href="{{ . }}" target="_blank" class="twitter" title="Twitter link" rel="noopener" aria-label="follow on Twitter——Opens in a new window">
{{ partial "svg/twitter.svg" (dict "size" $icon_size) }}
{{- partial "new-window-icon.html" . -}}
</a>
{{ end }}
{{ with .Param "instagram" }}
<a href="{{ . }}" target="_blank" class="instagram" title="Instagram link" rel="noopener" aria-label="follow on Instagram——Opens in a new window">
{{ partial "svg/instagram.svg" (dict "size" $icon_size) }}
{{- partial "new-window-icon.html" . -}}
</a>
{{ end }}
{{ with .Param "youtube" }}
<a href="{{ . }}" target="_blank" class="youtube" title="Youtube link" rel="noopener" aria-label="follow on Youtube——Opens in a new window">
{{ partial "svg/youtube.svg" (dict "size" $icon_size) }}
{{- partial "new-window-icon.html" . -}}
</a>
{{ end }}
{{ with .Param "linkedin" }}
<a href="{{ . }}" target="_blank" class="linkedin" title="LinkedIn link" rel="noopener" aria-label="follow on LinkedIn——Opens in a new window">
{{ partial "svg/linkedin.svg" (dict "size" $icon_size) }}
{{- partial "new-window-icon.html" . -}}
</a>
{{ end }}
{{ with .Param "github" }}
<a href="{{ . }}" target="_blank" class="github" title="Github link" rel="noopener" aria-label="follow on Github——Opens in a new window">
{{ partial "svg/github.svg" (dict "size" $icon_size) }}
{{- partial "new-window-icon.html" . -}}
</a>
{{ end }}
{{ with .Param "gitlab" }}
<a href="{{ . }}" target="_blank" class="gitlab" title="Gitlab link" rel="noopener" aria-label="follow on Gitlab——Opens in a new window">
{{ partial "svg/gitlab.svg" (dict "size" $icon_size) }}
{{- partial "new-window-icon.html" . -}}
</a>
{{ end }}
{{ with .Param "medium" }}
<a href="{{ . }}" target="_blank" class="medium" title="Medium link" rel="noopener" aria-label="follow on Medium——Opens in a new window">
{{ partial "svg/medium.svg" (dict "size" $icon_size) }}
{{- partial "new-window-icon.html" . -}}
</a>
{{ end }}

View file

@ -0,0 +1,13 @@
<div>
<div>
<span>{{ humanize .Section }}</span>
<h1>
<a href="{{ .Permalink }}">
{{ .Title }}
</a>
</h1>
<div>
{{ .Summary }}
</div>
</div>
</div>

View file

@ -0,0 +1 @@
<svg{{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 67 67;" version="1.1" viewBox="0 0 67 67" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M28.765,50.32h6.744V33.998h4.499l0.596-5.624h-5.095 l0.007-2.816c0-1.466,0.14-2.253,2.244-2.253h2.812V17.68h-4.5c-5.405,0-7.307,2.729-7.307,7.317v3.377h-3.369v5.625h3.369V50.32z M33,64C16.432,64,3,50.569,3,34S16.432,4,33,4s30,13.431,30,30S49.568,64,33,64z" style="fill-rule:evenodd;clip-rule:evenodd;"/></svg>

After

Width:  |  Height:  |  Size: 564 B

View file

@ -0,0 +1,3 @@
<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<path d="M256,32C132.3,32,32,134.8,32,261.7c0,101.5,64.2,187.5,153.2,217.9c11.2,2.1,15.3-5,15.3-11.1 c0-5.5-0.2-19.9-0.3-39.1c-62.3,13.9-75.5-30.8-75.5-30.8c-10.2-26.5-24.9-33.6-24.9-33.6c-20.3-14.3,1.5-14,1.5-14 c22.5,1.6,34.3,23.7,34.3,23.7c20,35.1,52.4,25,65.2,19.1c2-14.8,7.8-25,14.2-30.7c-49.7-5.8-102-25.5-102-113.5 c0-25.1,8.7-45.6,23-61.6c-2.3-5.8-10-29.2,2.2-60.8c0,0,18.8-6.2,61.6,23.5c17.9-5.1,37-7.6,56.1-7.7c19,0.1,38.2,2.6,56.1,7.7 c42.8-29.7,61.5-23.5,61.5-23.5c12.2,31.6,4.5,55,2.2,60.8c14.3,16.1,23,36.6,23,61.6c0,88.2-52.4,107.6-102.3,113.3 c8,7.1,15.2,21.1,15.2,42.5c0,30.7-0.3,55.5-0.3,63c0,6.1,4,13.3,15.4,11C415.9,449.1,480,363.1,480,261.7 C480,134.8,379.7,32,256,32z"/>
</svg>

After

Width:  |  Height:  |  Size: 963 B

View file

@ -0,0 +1 @@
<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="M29.782 199.732L256 493.714 8.074 309.699c-6.856-5.142-9.712-13.996-7.141-21.993l28.849-87.974zm75.405-174.806c-3.142-8.854-15.709-8.854-18.851 0L29.782 199.732h131.961L105.187 24.926zm56.556 174.806L256 493.714l94.257-293.982H161.743zm349.324 87.974l-28.849-87.974L256 493.714l247.926-184.015c6.855-5.142 9.711-13.996 7.141-21.993zm-85.404-262.78c-3.142-8.854-15.709-8.854-18.851 0l-56.555 174.806h131.961L425.663 24.926z"></path></svg>

After

Width:  |  Height:  |  Size: 651 B

View file

@ -0,0 +1 @@
<svg{{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 67 67;" version="1.1" viewBox="0 0 67 67" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M42.271,26.578v-0.006c0.502,0,1.005,0.01,1.508-0.002 c0.646-0.017,1.172-0.57,1.172-1.217c0-0.963,0-1.927,0-2.89c0-0.691-0.547-1.24-1.236-1.241c-0.961,0-1.922-0.001-2.883,0 c-0.688,0.001-1.236,0.552-1.236,1.243c-0.001,0.955-0.004,1.91,0.003,2.865c0.001,0.143,0.028,0.291,0.073,0.426 c0.173,0.508,0.639,0.82,1.209,0.823C41.344,26.579,41.808,26.578,42.271,26.578z M33,27.817c-3.384-0.002-6.135,2.721-6.182,6.089 c-0.049,3.46,2.72,6.201,6.04,6.272c3.454,0.074,6.248-2.686,6.321-6.043C39.254,30.675,36.462,27.815,33,27.817z M21.046,31.116 v0.082c0,4.515-0.001,9.03,0,13.545c0,0.649,0.562,1.208,1.212,1.208c7.16,0.001,14.319,0.001,21.479,0 c0.656,0,1.215-0.557,1.215-1.212c0.001-4.509,0-9.02,0-13.528v-0.094h-2.912c0.411,1.313,0.537,2.651,0.376,4.014 c-0.161,1.363-0.601,2.631-1.316,3.803s-1.644,2.145-2.779,2.918c-2.944,2.006-6.821,2.182-9.946,0.428 c-1.579-0.885-2.819-2.12-3.685-3.713c-1.289-2.373-1.495-4.865-0.739-7.451C22.983,31.116,22.021,31.116,21.046,31.116z M45.205,49.255c0.159-0.026,0.318-0.049,0.475-0.083c1.246-0.265,2.264-1.304,2.508-2.557c0.025-0.137,0.045-0.273,0.067-0.409 V21.794c-0.021-0.133-0.04-0.268-0.065-0.401c-0.268-1.367-1.396-2.428-2.78-2.618c-0.058-0.007-0.113-0.02-0.17-0.03H20.761 c-0.147,0.027-0.296,0.047-0.441,0.08c-1.352,0.308-2.352,1.396-2.545,2.766c-0.008,0.057-0.02,0.114-0.029,0.171V46.24 c0.028,0.154,0.05,0.311,0.085,0.465c0.299,1.322,1.427,2.347,2.77,2.52c0.064,0.008,0.13,0.021,0.195,0.03H45.205z M33,64 C16.432,64,3,50.569,3,34S16.432,4,33,4s30,13.431,30,30S49.568,64,33,64z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,3 @@
<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 65 65;" version="1.1" viewBox="0 0 65 65" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path d="M50.837,48.137V36.425c0-6.275-3.35-9.195-7.816-9.195 c-3.604,0-5.219,1.983-6.119,3.374V27.71h-6.79c0.09,1.917,0,20.427,0,20.427h6.79V36.729c0-0.609,0.044-1.219,0.224-1.655 c0.49-1.22,1.607-2.483,3.482-2.483c2.458,0,3.44,1.873,3.44,4.618v10.929H50.837z M22.959,24.922c2.367,0,3.842-1.57,3.842-3.531 c-0.044-2.003-1.475-3.528-3.797-3.528s-3.841,1.524-3.841,3.528c0,1.961,1.474,3.531,3.753,3.531H22.959z M34,64 C17.432,64,4,50.568,4,34C4,17.431,17.432,4,34,4s30,13.431,30,30C64,50.568,50.568,64,34,64z M26.354,48.137V27.71h-6.789v20.427 H26.354z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/>
</svg>

After

Width:  |  Height:  |  Size: 878 B

View file

@ -0,0 +1,3 @@
<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 170 170;" version="1.1" viewBox="0 0 170 170" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<path d="M46.5340803,65.2157554 C46.6968378,63.6076572 46.0836,62.018231 44.8828198,60.93592 L32.6512605,46.2010582 L32.6512605,44 L70.6302521,44 L99.9859944,108.380952 L125.794585,44 L162,44 L162,46.2010582 L151.542017,56.2281011 C150.640424,56.9153477 150.193188,58.0448862 150.380019,59.1628454 L150.380019,132.837155 C150.193188,133.955114 150.640424,135.084652 151.542017,135.771899 L161.755369,145.798942 L161.755369,148 L110.38282,148 L110.38282,145.798942 L120.963119,135.527337 C122.002801,134.487948 122.002801,134.182246 122.002801,132.592593 L122.002801,73.0417402 L92.585901,147.755438 L88.6106443,147.755438 L54.3622782,73.0417402 L54.3622782,123.115814 C54.0767278,125.221069 54.7759199,127.3406 56.2581699,128.863022 L70.0186741,145.55438 L70.0186741,147.755438 L31,147.755438 L31,145.55438 L44.7605042,128.863022 C46.2319621,127.338076 46.8903838,125.204485 46.5340803,123.115814 L46.5340803,65.2157554 Z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,3 @@
<svg {{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 1000 1000;" version="1.1" viewBox="0 0 1000 1000" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<path d="M598 128h298v298h-86v-152l-418 418-60-60 418-418h-152v-86zM810 810v-298h86v298c0 46-40 86-86 86h-596c-48 0-86-40-86-86v-596c0-46 38-86 86-86h298v86h-298v596h596z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/>
</svg>

After

Width:  |  Height:  |  Size: 496 B

View file

@ -0,0 +1 @@
<svg{{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 67 67;" version="1.1" viewBox="0 0 67 67" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M37.167,22.283c-2.619,0.953-4.274,3.411-4.086,6.101 l0.063,1.038l-1.048-0.127c-3.813-0.487-7.145-2.139-9.974-4.915l-1.383-1.377l-0.356,1.017c-0.754,2.267-0.272,4.661,1.299,6.271 c0.838,0.89,0.649,1.017-0.796,0.487c-0.503-0.169-0.943-0.296-0.985-0.233c-0.146,0.149,0.356,2.076,0.754,2.839 c0.545,1.06,1.655,2.097,2.871,2.712l1.027,0.487l-1.215,0.021c-1.173,0-1.215,0.021-1.089,0.467 c0.419,1.377,2.074,2.839,3.918,3.475l1.299,0.444l-1.131,0.678c-1.676,0.976-3.646,1.526-5.616,1.568 C19.775,43.256,19,43.341,19,43.405c0,0.211,2.557,1.397,4.044,1.864c4.463,1.377,9.765,0.783,13.746-1.568 c2.829-1.673,5.657-5,6.978-8.221c0.713-1.716,1.425-4.851,1.425-6.354c0-0.975,0.063-1.102,1.236-2.267 c0.692-0.678,1.341-1.419,1.467-1.631c0.21-0.403,0.188-0.403-0.88-0.043c-1.781,0.636-2.033,0.551-1.152-0.402 c0.649-0.678,1.425-1.907,1.425-2.267c0-0.063-0.314,0.042-0.671,0.233c-0.377,0.212-1.215,0.53-1.844,0.72l-1.131,0.361l-1.027-0.7 c-0.566-0.381-1.361-0.805-1.781-0.932C39.766,21.902,38.131,21.944,37.167,22.283z M33,64C16.432,64,3,50.569,3,34S16.432,4,33,4 s30,13.431,30,30S49.568,64,33,64z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1 @@
<svg{{ with .size }} height="{{ . }}" {{ end }} style="enable-background:new 0 0 67 67;" version="1.1" viewBox="0 0 67 67" width="{{ .size }}" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M42.527,41.34c-0.278,0-0.478,0.078-0.6,0.244 c-0.121,0.156-0.18,0.424-0.18,0.796v0.896h1.543V42.38c0-0.372-0.062-0.64-0.185-0.796C42.989,41.418,42.792,41.34,42.527,41.34z M36.509,41.309c0.234,0,0.417,0.076,0.544,0.23c0.123,0.155,0.185,0.383,0.185,0.682v4.584c0,0.286-0.053,0.487-0.153,0.611 c-0.1,0.127-0.256,0.189-0.47,0.189c-0.148,0-0.287-0.033-0.421-0.096c-0.135-0.062-0.274-0.171-0.415-0.313v-5.531 c0.119-0.122,0.239-0.213,0.36-0.271C36.26,41.335,36.383,41.309,36.509,41.309z M41.748,44.658v1.672 c0,0.468,0.057,0.792,0.17,0.974c0.118,0.181,0.313,0.269,0.592,0.269c0.289,0,0.491-0.076,0.606-0.229 c0.114-0.153,0.175-0.489,0.175-1.013v-0.405h1.795v0.456c0,0.911-0.217,1.596-0.657,2.059c-0.435,0.459-1.089,0.687-1.958,0.687 c-0.781,0-1.398-0.242-1.847-0.731c-0.448-0.486-0.676-1.157-0.676-2.014v-3.986c0-0.768,0.249-1.398,0.742-1.882 c0.493-0.484,1.128-0.727,1.911-0.727c0.799,0,1.413,0.225,1.843,0.674c0.429,0.448,0.642,1.093,0.642,1.935v2.264H41.748z M38.623,48.495c-0.271,0.336-0.669,0.501-1.187,0.501c-0.343,0-0.646-0.062-0.912-0.192c-0.267-0.129-0.519-0.327-0.746-0.601 v0.681h-1.764V36.852h1.764v3.875c0.237-0.27,0.485-0.478,0.748-0.616c0.267-0.143,0.534-0.212,0.805-0.212 c0.554,0,0.975,0.189,1.265,0.565c0.294,0.379,0.438,0.933,0.438,1.66v4.926C39.034,47.678,38.897,48.159,38.623,48.495z M30.958,48.884v-0.976c-0.325,0.361-0.658,0.636-1.009,0.822c-0.349,0.191-0.686,0.282-1.014,0.282 c-0.405,0-0.705-0.129-0.913-0.396c-0.201-0.266-0.305-0.658-0.305-1.189v-7.422h1.744v6.809c0,0.211,0.037,0.362,0.107,0.457 c0.077,0.095,0.196,0.141,0.358,0.141c0.128,0,0.292-0.062,0.488-0.188c0.197-0.125,0.375-0.283,0.542-0.475v-6.744h1.744v8.878 H30.958z M24.916,38.6v10.284h-1.968V38.6h-2.034v-1.748h6.036V38.6H24.916z M32.994,32.978c0-0.001,12.08,0.018,13.514,1.45 c1.439,1.435,1.455,8.514,1.455,8.555c0,0-0.012,7.117-1.455,8.556C45.074,52.969,32.994,53,32.994,53s-12.079-0.031-13.516-1.462 c-1.438-1.435-1.441-8.502-1.441-8.556c0-0.041,0.004-7.12,1.441-8.555C20.916,32.996,32.994,32.977,32.994,32.978z M42.52,29.255 h-1.966v-1.08c-0.358,0.397-0.736,0.703-1.13,0.909c-0.392,0.208-0.771,0.312-1.14,0.312c-0.458,0-0.797-0.146-1.027-0.437 c-0.229-0.291-0.345-0.727-0.345-1.311v-8.172h1.962v7.497c0,0.231,0.045,0.399,0.127,0.502c0.08,0.104,0.216,0.156,0.399,0.156 c0.143,0,0.327-0.069,0.548-0.206c0.22-0.137,0.423-0.312,0.605-0.527v-7.422h1.966V29.255z M31.847,27.588 c0.139,0.147,0.339,0.219,0.6,0.219c0.266,0,0.476-0.075,0.634-0.223c0.157-0.152,0.235-0.358,0.235-0.618v-5.327 c0-0.214-0.08-0.387-0.241-0.519c-0.16-0.131-0.37-0.196-0.628-0.196c-0.241,0-0.435,0.065-0.586,0.196 c-0.148,0.132-0.225,0.305-0.225,0.519v5.327C31.636,27.233,31.708,27.439,31.847,27.588z M30.408,19.903 c0.528-0.449,1.241-0.674,2.132-0.674c0.812,0,1.48,0.237,2.001,0.711c0.517,0.473,0.777,1.083,0.777,1.828v5.051 c0,0.836-0.255,1.491-0.762,1.968c-0.513,0.476-1.212,0.714-2.106,0.714c-0.858,0-1.547-0.246-2.064-0.736 c-0.513-0.492-0.772-1.152-0.772-1.983v-5.068C29.613,20.954,29.877,20.351,30.408,19.903z M24.262,16h-2.229l2.634,8.003v5.252 h2.213v-5.5L29.454,16h-2.25l-1.366,5.298h-0.139L24.262,16z M33,64C16.432,64,3,50.569,3,34S16.432,4,33,4s30,13.431,30,30 S49.568,64,33,64z" style="fill-rule:evenodd;clip-rule:evenodd;fill:{{ .fill }};"/></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,9 @@
<ul>
{{ range .Params.tags }}
<li>
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">
{{- . -}}
</a>
</li>
{{ end }}
</ul>

23
layouts/post/list.html Normal file
View file

@ -0,0 +1,23 @@
{{ define "main" }}
{{/*
This template is the same as the default and is here to demonstrate that if you have a content directory called "post"
you can create a layouts directory, just for that section.
*/}}
<article>
<section>
{{ .Content }}
</section>
<aside>
{{ range .Paginator.Pages }}
<div>
{{/*
Note we can use `.Render` here for items just in this section, instead of a partial to pull in items for the list
page. https://gohugo.io/functions/render/
*/}}
{{ .Render "summary" }}
</div>
{{ end }}
</aside>
{{ template "_internal/pagination.html" . }}
</article>
{{ end }}

15
layouts/post/summary.html Normal file
View file

@ -0,0 +1,15 @@
<div>
{{ if .Date }}
<div>
{{ .Date.Format "January 2, 2006" }}
</div>
{{ end }}
<h1>
<a href="{{ .Permalink }}">
{{ .Title }}
</a>
</h1>
<div>
{{ .Summary }}
</div>
</div>

7
layouts/robots.txt Normal file
View file

@ -0,0 +1,7 @@
User-agent: *
# robotstxt.org - if ENV production variable is false robots will be disallowed.
{{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }}
Disallow:
{{ else }}
Disallow: /
{{ end }}

1
static/dist/app.css vendored Normal file
View file

@ -0,0 +1 @@
/*! modern-normalize | MIT License | https://github.com/sindresorhus/modern-normalize */html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{-webkit-text-size-adjust:100%;line-height:1.15}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;margin:0}hr{height:0}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{padding:0}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}

0
static/dist/app.js vendored Normal file
View file

@ -1 +0,0 @@
Subproject commit d876912bf596a5257b3c3fab674a0ff6bf544c5b

42
webpack/base.config.js Normal file
View file

@ -0,0 +1,42 @@
const path = require('path');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
module.exports = {
context: path.resolve(__dirname, '../src'),
plugins: [new MiniCssExtractPlugin()],
entry: {
app: ['./js/index.js']
},
output: {
path: path.resolve(__dirname, '../static/dist')
},
module: {
rules: [
{
test: /\.(css|scss)$/,
use: [
MiniCssExtractPlugin.loader,
'css-loader',
{
loader: 'postcss-loader'
},
{
loader: 'sass-loader'
}
]
},
{
test: /\.js$/,
exclude: /node_modules/,
use: 'babel-loader'
}
]
},
optimization: {
minimizer: [
`...`,
new CssMinimizerPlugin(),
],
},
}

8
webpack/dev.config.js Normal file
View file

@ -0,0 +1,8 @@
const baseConfig = require('./base.config.js');
const { merge } = require('webpack-merge');
module.exports = merge(baseConfig, {
mode: 'development',
devtool: 'eval-source-map',
watch: true
});

11
webpack/prod.config.js Normal file
View file

@ -0,0 +1,11 @@
const baseConfig = require('./base.config.js');
const { merge } = require('webpack-merge');
const TerserPlugin = require("terser-webpack-plugin");
module.exports = merge(baseConfig, {
mode: 'production',
optimization: {
minimize: true,
minimizer: [new TerserPlugin()],
},
});