This commit is contained in:
NaiJi ✨ 2025-08-01 00:44:04 -04:00
commit 1a6d1fc887
23 changed files with 311 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
public/
*.lock

5
archetypes/default.md Normal file
View File

@ -0,0 +1,5 @@
+++
date = '{{ .Date }}'
draft = true
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
+++

BIN
assets/banner-left.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
assets/banner-right.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 KiB

View File

@ -0,0 +1,8 @@
+++
date = '2025-08-01T00:15:49-04:00'
title = 'First Record'
+++
“But, on the other hand, more frank in the evening! In the evening sincere and frank,” repeated Lebedeff, earnestly. “More candid, more exact, more honest, more honourable, and... although I may show you my weak side, I challenge you all; you atheists, for instance! How are you going to save the world? How find a straight road of progress, you men of science, of industry, of cooperation, of trades unions, and all the rest? How are you going to save it, I say? By what? By credit? What is credit? To what will credit lead you?”
![img](https://upload.wikimedia.org/wikipedia/commons/thumb/0/04/%D0%9B%D0%B5%D0%B2%D0%B8%D1%82%D0%B0%D0%BD_%D0%92%D0%B5%D1%87%D0%B5%D1%80_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D0%B4%D0%BE%D0%B6%D0%B4%D1%8F.jpg/1024px-%D0%9B%D0%B5%D0%B2%D0%B8%D1%82%D0%B0%D0%BD_%D0%92%D0%B5%D1%87%D0%B5%D1%80_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D0%B4%D0%BE%D0%B6%D0%B4%D1%8F.jpg)

View File

@ -0,0 +1,8 @@
+++
date = '2025-08-01T00:15:49-04:00'
title = 'First Record'
+++
А по вечерам зато откровеннее! По вечерам задушевнее и откровеннее! — с жаром обернулся к нему Лебедев, — простодушнее и определительнее, честнее и почтеннее, и хоть этим я вам и бок подставляю, но наплевать-с; я вас всех вызываю теперь, всех атеистов: чем вы спасете мир и нормальную дорогу ему в чем отыскали, — вы, люди науки, промышленности, ассоциаций, платы заработной и прочего? Чем? Кредитом? Что такое кредит? К чему приведет вас кредит?
![img](https://upload.wikimedia.org/wikipedia/commons/thumb/0/04/%D0%9B%D0%B5%D0%B2%D0%B8%D1%82%D0%B0%D0%BD_%D0%92%D0%B5%D1%87%D0%B5%D1%80_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D0%B4%D0%BE%D0%B6%D0%B4%D1%8F.jpg/1024px-%D0%9B%D0%B5%D0%B2%D0%B8%D1%82%D0%B0%D0%BD_%D0%92%D0%B5%D1%87%D0%B5%D1%80_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5_%D0%B4%D0%BE%D0%B6%D0%B4%D1%8F.jpg)

4
hugo.toml Normal file
View File

@ -0,0 +1,4 @@
baseURL = 'https://example.org/'
languageCode = 'en-us'
theme = 'lugo'

21
themes/lugo/README.md Normal file
View File

@ -0,0 +1,21 @@
# Luke's Hugo Theme
A simple Hugo theme I plan on using for my personal website, [Based.Cooking](https://based.cooking) and [LandChad.net](https://landchad.net).
## get started
```sh
hugo new site new-site
cd new-site
git clone https://github.com/lukesmithxyz/lugo themes/lugo
echo "theme = 'lugo'" >> config.toml
cp themes/lugo/static/style.css static/
```
## stuff
- Makes one RSS feed for the entire site at `/index.xml`
- Stylesheet is in `/style.css` and includes some important stuff for partials.
- If a post is tagged, links to the tags are placed at the bottom of the post.
- `nextprev.html` adds links to the Next and Previous articles to the bottom of a page.
- `taglist.html` links all tags an article is tagged to for related content.

View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

26
themes/lugo/config.toml Normal file
View File

@ -0,0 +1,26 @@
title = "Website Name"
baseURL = 'https://example.org'
[languages]
[languages.en]
languageCode = 'en-us'
contentDir = "content/en"
languageName = "English"
[languages.ru]
languageCode = 'ru-ru'
contentDir = "content/ru"
languageName = "Русский"
[params]
# "relatedtext" is the text that appears above the tag list at the bottom of pages.
relatedtext = "Related"
favicon = "/favicon.ico"
#list items
datesinlist = true
authorsinlist = true
#footer items
nextprev = true
taglist = true
showrss = true

View File

@ -0,0 +1,62 @@
<!DOCTYPE html>
<html lang="{{ .Site.Language }}">
<head>
<title>{{ if not .IsHome }}{{ .Title | title }} | {{ end }}{{ .Site.Title }}</title>
<link rel="canonical" href="{{ .Site.BaseURL }}">
<link rel='alternate' type='application/rss+xml' title="{{ .Site.Title }} RSS" href='/index.xml'>
<link rel='stylesheet' type='text/css' href='/style.css'>
{{ with .Site.Params.favicon }}<link rel="icon" href="{{ . }}">{{ end -}}
<meta name="description" content="{{ with .Params.description }}{{ . }}{{ else }}{{ .Summary }}{{ end }}">
{{ if isset .Params "tags" }}<meta name="keywords" content="{{ with .Params.tags }}{{ delimit . ", " }}{{ end }}">{{ end -}}
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="index, follow">
<meta charset="utf-8">
</head>
<body>
<!-- Left Banner -->
<div class="banner-left"></div>
<!-- Main Content Wrapper -->
<div class="content-wrapper">
{{ if .Site.Menus.main }}{{ partial "nav.html" . }}{{ end -}}
<!-- Main Content Area -->
<main>
<header><h1 id="tag_{{ .Title }}">{{ block "title" . }}{{ end }}</h1></header>
<article>
{{ block "main" . }}
{{ .Content }}
{{ end }}
{{ if .Param "nextprev" }}{{ partial "nextprev.html" . }}{{ end -}}
{{ if .Param "taglist" }}{{ partial "taglist.html" . }}{{ end -}}
</article>
</main>
<!-- Language Switcher Footer -->
<footer class="language-switcher">
{{ block "footer" . }}
<a href="{{ .Site.BaseURL }}">{{ .Site.BaseURL }}</a>
<footer class="language-switcher">
{{ if eq .Language.Lang "en" }}
<span class="flag active">🇬🇧</span>
<a href="{{ replace .Permalink "/en/" "/ru/" }}" class="flag">🇷🇺</a>
{{ else }}
<a href="{{ replace .Permalink "/ru/" "/en/" }}" class="flag">🇬🇧</a>
<span class="flag active">🇷🇺</span>
{{ end }}
</footer>
{{- if .Param "showrss" }}
<br><br>
<a href="/index.xml">
<img src="/rss.svg" style="max-height:1.5em" alt="RSS Feed" title="Subscribe via RSS for updates.">
</a>
<p>The side banners are fragments of Blooming Lilacs by Kiriak Konstantinovich Kostandi</p>
{{ end }}
{{ end }}
</footer>
</div>
<!-- Right Banner -->
<div class="banner-right"></div>
</body>
</html>

View File

@ -0,0 +1,20 @@
{{ define "title" -}}
{{ .Title | title }}
{{- end }}
{{ define "main" -}}
{{ .Content }}
<ul>
{{- range.Pages }}
<li>
{{- if .Param "datesinlist" }}<time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format "2006 Jan 02" }}</time> &ndash; {{ end -}}
<a href="{{ .RelPermalink }}">{{ .Title }}</a>
{{- if .Param "authorsinlist" }}
{{ with .Params.authors }}
by
{{ delimit . ", " " and " }}
{{end}}
{{ end -}}
</li>
{{- end }}
</ul>
{{- end }}

View File

@ -0,0 +1,26 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ .Site.Title }}</title>
<link>{{ .Permalink }}</link>
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>
<generator>Hugo -- gohugo.io</generator>{{ with .Site.LanguageCode }}
<language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
<managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
<webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
{{ with .OutputFormats.Get "RSS" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{ end }}
{{ range .Site.RegularPages }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
{{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
<guid>{{ .Permalink }}</guid>
<description>{{- .Content | html -}}</description>
</item>
{{ end }}
</channel>
</rss>

View File

@ -0,0 +1,3 @@
{{ define "title" -}}
{{ .Title }}
{{- end }}

View File

@ -0,0 +1,8 @@
<nav>
<ul>
{{- $sec := .Page.Section }}{{ $file := .File.TranslationBaseName -}}
{{ range.Site.Menus.main.ByWeight }}{{ $base := path.Base .URL }}
<li><a {{ if or ( eq $sec $base ) ( eq $file $base ) ( and (eq $sec "") ( eq $file "_index") (eq $base "/") ) }}class="menuactive" {{ end }}href="{{ .URL }}"><span class=pre>{{ .Pre }}</span><span class=menuname>{{ .Name }}</span></a></li>
{{- end }}
</ul>
</nav>

View File

@ -0,0 +1,10 @@
{{ if or .Next .Prev -}}
<div id="nextprev">
{{- with .Prev }}
<a href="{{ .RelPermalink}}"><div id="prevart">Previous:<br>{{.Title}}</div></a>
{{ end -}}
{{- with .Next -}}
<a href="{{ .RelPermalink}}"><div id="nextart">Next:<br>{{.Title}}</div></a>
{{ end -}}
</div>
{{ end -}}

View File

@ -0,0 +1,13 @@
{{- if isset .Params "tags" -}}
{{- $tagsLen := len .Params.tags -}}
{{- if gt $tagsLen 0 -}}
<div style="clear:both" class=taglist>
{{- with .Site.Params.relatedtext }}{{ . }}<br>{{ end -}}
{{- range $k, $v := .Params.tags -}}
{{- $url := printf "/tags/%s" (. | urlize | lower) -}}
<a id="tag_{{ . | lower }}" href="{{ $url | absURL }}">{{ . | title }}</a>
{{- if lt $k (sub $tagsLen 1) }} &middot; {{ end -}}
{{- end -}}
</div>
{{- end -}}
{{- end }}

View File

@ -0,0 +1,10 @@
<details>
<summary>Click to reveal video.</summary>
<iframe src="{{ index .Params 0 }}"
loading="lazy"
sandbox="allow-same-origin allow-scripts allow-popups"
allowfullscreen frameborder="0"
class="embvid"
title="Embedded Video">
</iframe>
</details>

View File

@ -0,0 +1,21 @@
<!--
class: class of the figure
link: url the image directs to
alt: alternative text
caption: caption
mouse: what the image says when moused over ("title" in HTML)
-->
<figure {{ with .Get "class" }}class="{{.}}"{{ end -}}>
{{- with .Get "link"}}<a href="{{.}}">{{ end -}}
<img src="{{ .Get "src" }}"
{{- with .Get "mouse" }} title="{{.}}"{{ end -}}
{{- with .Get "alt" }} alt="{{.}}"{{ end -}}
loading="lazy"
>
{{- if .Get "link"}}</a>{{ end -}}
{{- with .Get "caption" -}}
<figcaption>
{{- . -}}
</figcaption>
{{- end -}}
</figure>

View File

@ -0,0 +1,3 @@
{{ if isset .Site.Taxonomies "tags" }}{{ if not (eq (len .Site.Taxonomies.tags) 0) }} <ul id="tagcloud">
{{ range $name, $items := .Site.Taxonomies.tags }}{{ $url := printf "%s/%s" "tags" ($name | urlize | lower)}}<li><a href="{{ $url | absURL }}" id="tag_{{ $name }}">{{ $name | title }}</a></li>
{{ end }}</ul>{{ end }}{{ end }}

View File

@ -0,0 +1,6 @@
<iframe src="{{ index .Params 0 }}"
loading="lazy"
sandbox="allow-same-origin allow-scripts allow-popups"
allowfullscreen frameborder="0"
title="Embedded Video">
</iframe>

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 455.731 455.731" style="enable-background:new 0 0 455.731 455.731;" xml:space="preserve"><g><rect x="0" y="0" style="fill:#F78422;" width="455.731" height="455.731"/><g><path style="fill:#FFFFFF;" d="M296.208,159.16C234.445,97.397,152.266,63.382,64.81,63.382v64.348 c70.268,0,136.288,27.321,185.898,76.931c49.609,49.61,76.931,115.63,76.931,185.898h64.348 C391.986,303.103,357.971,220.923,296.208,159.16z"/><path style="fill:#FFFFFF;" d="M64.143,172.273v64.348c84.881,0,153.938,69.056,153.938,153.939h64.348 C282.429,270.196,184.507,172.273,64.143,172.273z"/><circle style="fill:#FFFFFF;" cx="109.833" cy="346.26" r="46.088"/></g></g></svg>

After

Width:  |  Height:  |  Size: 920 B

View File

@ -0,0 +1,48 @@
/* Main layout container */
body {
margin: 0;
padding: 0;
display: flex;
min-height: 100vh;
font-family: Garamond, Baskerville, "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif;
}
p {
padding: 20px;
line-height: 1.2;
font-size: 20px;
}
/* Side banners */
.banner-left {
flex: 1;
background-image: url('./banner-left.jpg');
background-size: cover;
background-position: center right;
}
.banner-right {
flex: 1;
background-image: url('./banner-right.jpg');
background-size: cover;
background-position: center left;
}
/* Centered content box */
.content-wrapper {
min-height:20%;
min-width:60%;
max-width:67%;
width: 1000px; /* Fixed width or use max-width */
padding: 20px;
background: #ffffff;
box-shadow: 0 0 30px rgba(0,0,0,0.9);
}
/* Language switcher */
.language-switcher {
text-align: center;
padding: 20px 0;
margin-top: 40px;
}