From 7da7f1d7957bd4b9f29d55226eea395bd4a15f4d Mon Sep 17 00:00:00 2001 From: prokopparuzek Date: Mon, 18 Aug 2025 16:59:37 +0200 Subject: [PATCH] init --- .gitignore | 2 + .gitmodules | 3 + archetypes/default.md | 4 + config.toml | 45 ++++ content/_index.md | 8 + content/other/_index.md | 4 + content/other/ottd.md | 8 + content/roguelikes/_index.md | 4 + content/roguelikes/cogmind.md | 4 + content/roguelikes/crypt.md | 6 + content/roguelikes/dcss.md | 15 ++ content/roguelikes/nethack.md | 8 + layouts/404.html | 9 + static/favicon.png | Bin 0 -> 238 bytes static/og-image.png | Bin 0 -> 17426 bytes static/robots.txt | 2 + static/terminal.css | 387 ++++++++++++++++++++++++++++++++++ themes/terminal | 1 + 18 files changed, 510 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 archetypes/default.md create mode 100644 config.toml create mode 100644 content/_index.md create mode 100644 content/other/_index.md create mode 100644 content/other/ottd.md create mode 100644 content/roguelikes/_index.md create mode 100644 content/roguelikes/cogmind.md create mode 100644 content/roguelikes/crypt.md create mode 100644 content/roguelikes/dcss.md create mode 100644 content/roguelikes/nethack.md create mode 100644 layouts/404.html create mode 100644 static/favicon.png create mode 100644 static/og-image.png create mode 100644 static/robots.txt create mode 100644 static/terminal.css create mode 160000 themes/terminal diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e7e3002 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.hugo_build.lock +public diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a6851ba --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "themes/terminal"] + path = themes/terminal + url = https://github.com/panr/hugo-theme-terminal.git diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..72d6c92 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,4 @@ ++++ +date = '{{ .Date }}' +title = '{{ replace .File.ContentBaseName "-" " " | title }}' ++++ diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..30d2189 --- /dev/null +++ b/config.toml @@ -0,0 +1,45 @@ +baseurl = "/" +languageCode = "cs" +theme = "terminal" +pagination.pagerSize = 8 +defaultContentLanguage = "cs" + +[markup.goldmark.renderer] + unsafe = true + +[params] + contentTypeName = "posts" + showMenuItems = 5 + fullWidthTheme = true + centerTheme = false + +[languages] + [languages.cs] + title = "Hry" + [languages.cs.params] + subtitle = "Prokop approved games" + keywords = "" + copyright = "" + menuMore = "Více" + readMore = "Pokračování" + readOtherPosts = "Další" + newerPosts = "Novější" + olderPosts = "Starší" + missingContentMessage = "Stránka nenalezena" + missingBackButtonLabel = "Zpět na hlavní stranu" + + [languages.cs.params.logo] + logoText = "Hry" + logoHomeLink = "/" + + [languages.cs.menu] + [[languages.cs.menu.main]] + identifier = "roguelikes" + name = "Roguelikes" + url = "/roguelikes" + weight = 1 + [[languages.cs.menu.main]] + identifier = "other" + name = "Další hry" + url = "/other" + weight = 10 diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..d7e6eac --- /dev/null +++ b/content/_index.md @@ -0,0 +1,8 @@ ++++ +title = "Vítejte" +date = "2025-08-18T13:47:11+02:00" ++++ + +Seznamy her, které považuji za dobré a nejspíš jsem je i někdy hrál. + +Seznamy jsou rozdělené dle kategorií v menu nahoře. diff --git a/content/other/_index.md b/content/other/_index.md new file mode 100644 index 0000000..f4e6afd --- /dev/null +++ b/content/other/_index.md @@ -0,0 +1,4 @@ ++++ +title = "Další hry" +date = "2025-08-18T13:47:11+02:00" ++++ diff --git a/content/other/ottd.md b/content/other/ottd.md new file mode 100644 index 0000000..e345d43 --- /dev/null +++ b/content/other/ottd.md @@ -0,0 +1,8 @@ ++++ +date = '2025-08-18T13:46:52+02:00' +title = 'Open TTD' ++++ + +Velmi dobrý simulátor dopravního magnáta. + +[https://www.openttd.org/](https://www.openttd.org/) diff --git a/content/roguelikes/_index.md b/content/roguelikes/_index.md new file mode 100644 index 0000000..f305dae --- /dev/null +++ b/content/roguelikes/_index.md @@ -0,0 +1,4 @@ ++++ +title = "Roguelikes" +date = "2025-08-18T13:47:11+02:00" ++++ diff --git a/content/roguelikes/cogmind.md b/content/roguelikes/cogmind.md new file mode 100644 index 0000000..c607af3 --- /dev/null +++ b/content/roguelikes/cogmind.md @@ -0,0 +1,4 @@ ++++ +date = '2025-08-18T16:39:23+02:00' +title = 'Cogmind' ++++ diff --git a/content/roguelikes/crypt.md b/content/roguelikes/crypt.md new file mode 100644 index 0000000..911629e --- /dev/null +++ b/content/roguelikes/crypt.md @@ -0,0 +1,6 @@ ++++ +date = '2025-08-18T16:39:18+02:00' +title = 'Crypt of the NecroDancer' ++++ + +Zábavná rytmická hra, hrajete velmi jednoduchý roguelike, avšak na každý tah máte čas jen mezi dvěma dobami. diff --git a/content/roguelikes/dcss.md b/content/roguelikes/dcss.md new file mode 100644 index 0000000..8171f5c --- /dev/null +++ b/content/roguelikes/dcss.md @@ -0,0 +1,15 @@ ++++ +date = '2025-08-18T13:46:52+02:00' +title = 'Dungeon Crawl Stone Soup' ++++ + +Nethack, ale dá se hrát. Má rozumné ovládání myší, webové rozhraní, integrovanou nápovědu ve hře, není závislý na +obskurních technikách a wiki, velmi aktivně vyvíjený se snahou, aby hra byla fér. + +Má celkem aktivní komunitu, vždy při vydání nové verze se pořádají turnaje. + +Dá se hrát zde [https://dcss.h21.cz](https://dcss.h21.cz). + +Případně stáhnout a hrát na tomto odkaze [https://crawl.develz.org/](https://crawl.develz.org/). + +[http://crawl.chaosforge.org/Crawl_Wiki](http://crawl.chaosforge.org/Crawl_Wiki) diff --git a/content/roguelikes/nethack.md b/content/roguelikes/nethack.md new file mode 100644 index 0000000..0cb187a --- /dev/null +++ b/content/roguelikes/nethack.md @@ -0,0 +1,8 @@ ++++ +date = '2025-08-18T13:46:52+02:00' +title = 'Nethack' ++++ + +[https://www.thegreatestgameyouwilleverplay.com/](https://www.thegreatestgameyouwilleverplay.com/) + +[https://nethackwiki.com/wiki/Main_Page](https://nethackwiki.com/wiki/Main_Page) diff --git a/layouts/404.html b/layouts/404.html new file mode 100644 index 0000000..2852625 --- /dev/null +++ b/layouts/404.html @@ -0,0 +1,9 @@ +{{ define "main" }} +

404 Stránka nenalezena

+

Chceš se dostat na neexistující stránku.

+

+ + Zpět na domovskou stránku + +

+{{ end }} diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..255829352beae484f765c573e6289742633b703a GIT binary patch literal 238 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 S@jm{di|jR^=bmue{Qm(AVF>sD literal 0 HcmV?d00001 diff --git a/static/robots.txt b/static/robots.txt new file mode 100644 index 0000000..1f53798 --- /dev/null +++ b/static/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/static/terminal.css b/static/terminal.css new file mode 100644 index 0000000..0c461eb --- /dev/null +++ b/static/terminal.css @@ -0,0 +1,387 @@ +/* Fira Code: https://github.com/tonsky/FiraCode */ +@import url('https://cdn.staticdelivr.com/gfonts/css2?family=Fira+Code:wght@300..700&display=swap'); + +:root { + --background: #1a170f; + --foreground: #eceae5; + --accent: #32858b; + --radius: 0; + --font-size: 1rem; + --line-height: 1.54em; +} + +html { + box-sizing: border-box; +} + +*, +*:before, +*:after { + box-sizing: inherit; + margin: 0; + padding: 0; +} + +body { + font-family: + "Fira Code", + "JetBrains Mono", + Monaco, + Consolas, + "Ubuntu Mono", + monospace; + font-size: var(--font-size); + font-weight: 400; + line-height: var(--line-height); + background-color: var(--background); + color: var(--foreground); + text-rendering: optimizeLegibility; + font-variant-ligatures: contextual; + -webkit-overflow-scrolling: touch; + -webkit-text-size-adjust: 100%; + margin: 0; + padding: 0; +} + +h1 { + font-size: calc(var(--font-size) * 1.45); + letter-spacing: 0; +} + +h2 { + font-size: calc(var(--font-size) * 1.35); + letter-spacing: 0; +} + +h3 { + font-size: calc(var(--font-size) * 1.15); + letter-spacing: 0; +} + +h4, +h5, +h6 { + font-size: calc(var(--font-size) * 1); + letter-spacing: 0; +} + +h1, h2, h3, h4, h5, h6, +p, ul, ol, +img, figure, video, +table { + margin: 25px 0; +} + +a { + color: var(--accent); +} + +button { + position: relative; + font: inherit; + font-weight: bold; + text-decoration: none; + text-align: center; + background: transparent; + color: var(--accent); + padding: 5px 18px; + border: 4px solid var(--accent); + border-radius: var(--radius); + transition: background 0.15s linear; + appearance: none; + cursor: pointer; + outline: none; +} + +button:hover { + background: color-mix(in srgb, var(--accent) 15%, transparent); +} + +button:focus-visible, +a:focus-visible { + outline: 1px solid var(--accent); + outline-offset: 2px; +} + +fieldset { + display: inline-block; + border: 2px solid var(--foreground); + border-radius: calc(var(--radius) * 1.6); + padding: 10px; +} + +fieldset *:first-child { + margin-top: 0; +} + +fieldset input, +fieldset select, +fieldset textarea, +fieldset label, +fieldset button { + margin-top: calc(var(--line-height) * 0.5); + width: 100%; +} + +label { + display: inline-block; +} + +label input { + margin-top: 0; +} + +input, +textarea, +select { + background: transparent; + color: var(--foreground); + border: 1px solid var(--foreground); + border-radius: var(--radius); + padding: 10px; + font: inherit; + appearance: none; +} + +input[type="checkbox"] { + width: auto; +} + +input:focus-visible, +input:active, +textarea:focus-visible, +textarea:active, +select:focus-visible, +select:active { + border-color: var(--accent); + outline: 1px solid var(--accent); + outline-offset: 2px; +} + +input:active, +textarea:active, +select:active { + box-shadow: none; +} + +select { + background-image: linear-gradient( + 45deg, + transparent 50%, + var(--foreground) 50% + ), + linear-gradient(135deg, var(--foreground) 50%, transparent 50%); + background-position: calc(100% - 20px), calc(100% - 15px); + background-size: + 5px 5px, + 5px 5px; + background-repeat: no-repeat; + padding-right: 40px; +} + +select option { + background: var(--background); +} + +input[type="checkbox"], +input[type="radio"] { + vertical-align: middle; + padding: 10px; + box-shadow: inset 0 0 0 3px var(--background); +} + +input[type="radio"] { + display: inline-block; + width: 10px !important; + height: 10px !important; + border-radius: 20px; +} + +input[type="checkbox"]:checked, +input[type="radio"]:checked { + background: var(--accent); +} + +img { + display: block; + max-width: 100%; + border: 8px solid var(--accent); + border-radius: var(--radius); + padding: 8px; + overflow: hidden; +} + +figure img, +figure video { + margin-bottom: 0; +} + +figure figcaption { + background: var(--accent); + color: var(--background); + text-align: center; + font-size: 1em; + font-weight: normal; + margin-top: -8px; + border-radius: 0 0 var(--radius) var(--radius); +} + +ul, +ol { + margin-left: 4ch; + padding: 0; +} + +ul ul, +ul ol, +ol ul, +ol ol { + margin-top: 0; +} + +li::marker { + color: var(--accent); +} + +ul li, +ol li { + position: relative; +} + +code, +kbd { + font-family: + "Fira Code", + "JetBrains Mono", + Monaco, + Consolas, + Ubuntu Mono, + monospace !important; + font-feature-settings: normal; + background: color-mix(in srgb, var(--foreground) 5%, transparent); + color: color-mix(in srgb, var(--foreground) 5%, var(--accent)); + padding: 0 6px; + margin: 0 2px; + font-size: 0.95em; +} + +code { + border: 1px solid color-mix(in srgb, var(--foreground) 25%, transparent); +} + +kbd { + border-top: 1px solid color-mix(in srgb, var(--accent) 25%, transparent); + border-left: 1px solid var(--accent); + border-right: 1px solid var(--accent); + border-bottom: 4px solid var(--accent); + border-radius: 4px; +} + +code code { + background: transparent; + padding: 0; + margin: 0; +} + +pre { + tab-size: 4; + background: color-mix(in srgb, var(--foreground) 5%, transparent) !important; + color: color-mix(in srgb, var(--foreground) 5%, var(--accent)); + padding: 20px 10px; + font-size: 0.95em !important; + overflow: auto; + border-radius: var(--radius); + border: 1px solid color-mix(in srgb, var(--foreground) 25%, transparent); +} + +pre code { + background: none !important; + margin: 0; + padding: 0; + font-size: inherit; + border: none; +} + +sup { + line-height: 0; +} + +abbr { + position: relative; + text-decoration-style: wavy; + text-decoration-color: var(--accent); + cursor: help; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.25em; +} + +mark { + background: color-mix(in srgb, var(--accent) 45%, transparent); + color: var(--foreground); +} + +blockquote { + position: relative; + border-top: 1px solid var(--accent); + border-bottom: 1px solid var(--accent); + margin: 0; + padding: 25px; +} + +blockquote:before { + content: ">"; + display: block; + position: absolute; + left: 0; + color: var(--accent); +} + +blockquote p:first-child { + margin-top: 0; +} + +blockquote p:last-child { + margin-bottom: 0; +} + +table { + table-layout: auto; + border-collapse: collapse; +} + +table, +th, +td { + border: 2px solid var(--foreground); + padding: 10px; +} + +th { + border-style: solid; + color: var(--foreground); + text-align: left; + text-transform: uppercase; + letter-spacing: 0.04em; +} + +hr { + width: 100%; + border: none; + background: var(--accent); + height: 2px; +} + +/* Bold elements */ + +h1, h2, h3, h4, h5, h6, +b, strong, +th, +button { + font-weight: 600; +} diff --git a/themes/terminal b/themes/terminal new file mode 160000 index 0000000..5a2b4c0 --- /dev/null +++ b/themes/terminal @@ -0,0 +1 @@ +Subproject commit 5a2b4c0f1fdb9180d525930b2c8f68a90221d245