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