Init
This commit is contained in:
commit
1a6d1fc887
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
public/
|
||||||
|
*.lock
|
5
archetypes/default.md
Normal file
5
archetypes/default.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
+++
|
||||||
|
date = '{{ .Date }}'
|
||||||
|
draft = true
|
||||||
|
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||||
|
+++
|
BIN
assets/banner-left.jpg
Normal file
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
BIN
assets/banner-right.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 841 KiB |
8
content/en/first-record.md
Normal file
8
content/en/first-record.md
Normal 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?”
|
||||||
|
|
||||||
|

|
8
content/ru/first-record.md
Normal file
8
content/ru/first-record.md
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
+++
|
||||||
|
date = '2025-08-01T00:15:49-04:00'
|
||||||
|
title = 'First Record'
|
||||||
|
+++
|
||||||
|
|
||||||
|
— А по вечерам зато откровеннее! По вечерам задушевнее и откровеннее! — с жаром обернулся к нему Лебедев, — простодушнее и определительнее, честнее и почтеннее, и хоть этим я вам и бок подставляю, но наплевать-с; я вас всех вызываю теперь, всех атеистов: чем вы спасете мир и нормальную дорогу ему в чем отыскали, — вы, люди науки, промышленности, ассоциаций, платы заработной и прочего? Чем? Кредитом? Что такое кредит? К чему приведет вас кредит?
|
||||||
|
|
||||||
|

|
4
hugo.toml
Normal file
4
hugo.toml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
baseURL = 'https://example.org/'
|
||||||
|
languageCode = 'en-us'
|
||||||
|
|
||||||
|
theme = 'lugo'
|
21
themes/lugo/README.md
Normal file
21
themes/lugo/README.md
Normal 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.
|
6
themes/lugo/archetypes/default.md
Normal file
6
themes/lugo/archetypes/default.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
title: "{{ replace .Name "-" " " | title }}"
|
||||||
|
date: {{ .Date }}
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
26
themes/lugo/config.toml
Normal file
26
themes/lugo/config.toml
Normal 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
|
62
themes/lugo/layouts/_default/baseof.html
Normal file
62
themes/lugo/layouts/_default/baseof.html
Normal 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>
|
20
themes/lugo/layouts/_default/list.html
Normal file
20
themes/lugo/layouts/_default/list.html
Normal 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> – {{ end -}}
|
||||||
|
<a href="{{ .RelPermalink }}">{{ .Title }}</a>
|
||||||
|
{{- if .Param "authorsinlist" }}
|
||||||
|
{{ with .Params.authors }}
|
||||||
|
by
|
||||||
|
{{ delimit . ", " " and " }}
|
||||||
|
{{end}}
|
||||||
|
{{ end -}}
|
||||||
|
</li>
|
||||||
|
{{- end }}
|
||||||
|
</ul>
|
||||||
|
{{- end }}
|
26
themes/lugo/layouts/_default/rss.xml
Normal file
26
themes/lugo/layouts/_default/rss.xml
Normal 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>
|
3
themes/lugo/layouts/_default/single.html
Normal file
3
themes/lugo/layouts/_default/single.html
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{{ define "title" -}}
|
||||||
|
{{ .Title }}
|
||||||
|
{{- end }}
|
8
themes/lugo/layouts/partials/nav.html
Normal file
8
themes/lugo/layouts/partials/nav.html
Normal 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>
|
10
themes/lugo/layouts/partials/nextprev.html
Normal file
10
themes/lugo/layouts/partials/nextprev.html
Normal 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 -}}
|
13
themes/lugo/layouts/partials/taglist.html
Normal file
13
themes/lugo/layouts/partials/taglist.html
Normal 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) }} · {{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
</div>
|
||||||
|
{{- end -}}
|
||||||
|
{{- end }}
|
10
themes/lugo/layouts/shortcodes/hidvid.html
Normal file
10
themes/lugo/layouts/shortcodes/hidvid.html
Normal 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>
|
21
themes/lugo/layouts/shortcodes/img.html
Normal file
21
themes/lugo/layouts/shortcodes/img.html
Normal 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>
|
3
themes/lugo/layouts/shortcodes/tagcloud.html
Normal file
3
themes/lugo/layouts/shortcodes/tagcloud.html
Normal 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 }}
|
6
themes/lugo/layouts/shortcodes/vid.html
Normal file
6
themes/lugo/layouts/shortcodes/vid.html
Normal 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>
|
1
themes/lugo/static/rss.svg
Normal file
1
themes/lugo/static/rss.svg
Normal 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 |
48
themes/lugo/static/style.css
Normal file
48
themes/lugo/static/style.css
Normal 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;
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user