init hugo

This commit is contained in:
nek0 2025-06-02 00:24:29 +02:00
parent 624b2326f2
commit c213816f33
75 changed files with 298 additions and 988 deletions

0
.hugo_build.lock Normal file
View File

View File

@ -1,5 +0,0 @@
# Revision history for chaoszone
## 0.0.0.0 -- YYYY-mm-dd
* First version. Released on an unsuspecting world.

View File

@ -1,2 +0,0 @@
import Distribution.Simple
main = defaultMain

5
archetypes/default.md Normal file
View File

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

View File

@ -1,29 +0,0 @@
-- Initial chaoszone.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
name: chaoszone
version: 0.0.0.0
synopsis: build files for the chaoszone.cz website
-- description:
homepage: https://chaoszone.cz
license: PublicDomain
author: nek0
maintainer: nek0@chelnok.de
category: Web
build-type: Simple
extra-source-files: ChangeLog.md
cabal-version: >=1.10
executable chaoszone
main-is: Main.hs
-- other-modules:
other-extensions: OverloadedStrings
build-depends: base >=4.10 && < 5
, time
, filepath >=1.4
, hakyll >=4.9.8.0
, HTTP
, aeson
hs-source-dirs: src
default-language: Haskell2010
ghc-options: -Wall -threaded

4
content/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
public/
resources/
deploy
.hugo_build.lock

13
content/_index.md Normal file
View File

@ -0,0 +1,13 @@
+++
date = 2025-06-01T22:39:26+02:00
draft = true
+++
ChaosZone is the project to setting up a collaborative assembly at the Chaos
Communication Congress and similar events.
ChaosZone wants to become a place -- a platform -- to unite hackerspaces from
eastern germany and further east.
We are focused on hacking (software, hardware and other stuff). We are
providing a friendly environment for learning from each other.

4
hugo.yaml Normal file
View File

@ -0,0 +1,4 @@
baseURL: https://chaoszone.cz/
languageCode: en-us
title: ChaosZone
theme: zone

View File

@ -1,36 +0,0 @@
#! /bin/sh
date=$(date +%Y-%m-%d)
title=
author=
function input {
echo "Enter post title:"
read title
echo "Enter author name:"
read author
}
function confirmation {
echo "Is the following correct?"
echo "title: $title"
echo "author: $author"
echo "y/n"
}
function main {
local conf="n"
while [ "$conf" != "y" ]
do
input
confirmation
read conf
done
postname="./site/posts/$date-${title// /-}.md"
echo -e "---\ntitle: ${title}\nauthor: ${author}\ndescription: \n---" >> $postname
${VISUAL:-vim} $postname
}
main
unset date title author

View File

@ -2,13 +2,9 @@
, chaoszone ? import ./default.nix { inherit pkgs; packageName = "chaoszone"; } , chaoszone ? import ./default.nix { inherit pkgs; packageName = "chaoszone"; }
}: }:
pkgs.haskellPackages.shellFor { pkgs.mkShell {
packages = p: [ chaoszone ]; packages = with pkgs; [
withHoogle = true; hugo
buildInputs = with pkgs.haskellPackages; with pkgs; [
haskell-language-server
ghcid
cabal-install
vim vim
]; ];
} }

View File

@ -1,12 +0,0 @@
---
title: About
---
ChaosZone is the project to setting up an collaborative Assembly at the 37th
Chaos Communication Congress.
ChaosZone wants to become a place - a platform - to unite hackspaces from
eastern germany and farther east
We are focused on hacking (software, hardware and other stuff). We are
providing a friendly environment for learning from each other.

View File

@ -1,7 +0,0 @@
---
title: Contact
---
If you want to talk to the people behind ChaosZone, head on over to [our Matrix Channel](https://app.element.io/#/room/#chaoszone:matrix.eigenbaukombinat.de).
To contact the administrator of this site, write to <nek0@chaoszone.cz>.

View File

@ -1,204 +0,0 @@
body {
color: black;
font-family: 'CMUTypewriter';
font-size: 23pt;
font-weight: normal;
font-style: normal;
padding: 0 2rem 0;
margin: 0;
display: grid;
min-height: 100vh;
grid-template-columns: [leftcol] 23rem [maincol] auto [rightcol] 1fr;
grid-template-rows: [headerrow] 6rem [mainrow] auto [footerrow] 2rem;
grid-template-areas:
"logo header header"
"logo main main"
"logo footer footer";
background-color: #a21d10;
}
body::before {
z-index: -1;
content: ' ';
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-image: url(/images/Chaoszone.black.svg);
background-size: contain;
background-attachment:fixed;
background-repeat:no-repeat;
background-position: center;
opacity: 0.05;
}
header {
border-bottom: 2px solid white;
margin-bottom: 30px;
padding: 12px 0px 12px 0px;
grid-area: header;
}
header, header a {
font-family: 'CMUTypewriter';
font-size: 23pt;
}
h1, h2, h3, h4, h5 {
font-family: 'CMUTypewriter';
}
a {
color: #ccc000;
text-decoration: none;
}
a:hover {
color: #aaa000;
text-decoration: underline
}
#logo {
grid-area: logo;
}
#logo, #logo img {
max-width: 23rem;
}
#logo {
position: fixed;
padding-top: 1rem;
}
div#logo a {
color: white;
font-weight: bold;
text-decoration: none;
}
nav {
display: inline-block;
}
nav ul{
text-align: left;
list-style: none;
display: inline-block;
margin: 0;
padding: 0;
}
nav li {
display: inline-block;
}
nav li a {
color: white;
font-weight: bold;
margin-left: 12px;
text-decoration: none;
text-transform: uppercase;
}
nav li a:first-child {
margin: 0;
}
article {
grid-area: main;
}
article img {
max-width: 100%;
}
footer {
grid-area: footer;
border-top: solid 2px white;
font-size: 12px;
padding: 12px 0px 12px 0px;
text-align: right;
}
/*
h1 {
font-size: 24pt;
}
h2 {
font-size: 20pt;
}
*/
div.info {
font-size: 14px;
font-style: italic;
}
.pagination {
display: inline-block;
width: 100%
}
.wrapper {
flex: 1;
}
.left, .right {
display: inline-block;
fill: curentColor;
}
.left {
float: left;
margin-left: 10%;
}
.right {
float: right;
margin-right: 10%;
}
.left svg, .right svg {
margin-bottom: -3px;
margin-left: 0.8ex;
margin-right: 0.8ex;
}
#yacs {
width: 100%
}
.page img {
width: 100%
}
.authors_comments {
border: 1px solid white;
border-radius: 5px;
padding: 0 1em 0;
background-color: #454545;
box-shadow: 5px 5px 5px #ffffff;
margin: 2em 0 2em;
}
@media screen and (max-width: 750px){
body {
grid-template-columns: [maincol] auto;
grid-template-rows: [logorow] 20rem [headerrow] 6rem [mainrow] auto [footerrow] 2rem;
grid-template-areas:
"logo"
"header"
"main"
"footer";
}
#logo {
position: initial;
}
#logo img {
max-width: 100%;
}
}

View File

@ -1,34 +0,0 @@
@font-face {
font-family: 'Xolonium';
src: url('/fonts/Xolononiu-Regular.otf') format('opentype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'MontserratBlack';
src: url('/fonts/Montserrat/Montserrat-Black.otf') format('opentype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'MontserratLight';
src: url('/fonts/Montserrat/Montserrat-Light.otf') format('opentype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'CMUTypewriter';
src: url('/fonts/cmuntt.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'LePatinHelvete';
src: url('/fonts/Le-patin-helvete.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}

View File

@ -1,93 +0,0 @@
Copyright 2011 The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 36 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

View File

@ -1,13 +0,0 @@
---
title: ChaosZone
---
Hello there!
Here you will find more information on ChaosZone and its member hackerspaces.
Our recent Posts:
$partial("templates/post-list.html")$
and there are even more in the [archive](/archive.html).

View File

@ -1,17 +0,0 @@
---
title: Hello World!
author: nek0
description: The ChaosZone introduces itself
---
Hi there!
We are the ChaosZone, an assembly of hackers from eastern countries at the 34th
Chaos Communication Congress in Leipzig.
We aim to provide a comfy coding space with lots of collaboration, information
and knowledge sharing. There will surely be blinkenlights and mate!
I am nek0, the main curator of this site and I will be also present at the
congress. I am looking forward to seeing all of you and wish you a pleasant time
until then.

View File

@ -1,19 +0,0 @@
---
title: Work in Progress
author: nek0
description: we work hard to make things happen
---
Today we are planning out things for the Assembly and hopefully also our Chaos
Competence Center. We will build a nice shelter to make the space comfy, we have
also some workshops in mind to be held at that location.
I am also pleased to announce, that we have subassemblies. These are:
- [Dezentrale][dz]
- [Chaostreff Chemnitz][chch]
- [CTJB][ctjb]
[dz]: https://events.ccc.de/congress/2017/wiki/index.php/Assembly:Dezentrale
[chch]: https://events.ccc.de/congress/2017/wiki/index.php/Assembly:Chaostreff_Chemnitz
[ctjb]: https://events.ccc.de/congress/2017/wiki/index.php/Assembly:CTJB

View File

@ -1,15 +0,0 @@
---
title: Let the Chaos begin!
author: nek0
description:
---
Today is day 0 before congress, the day where most of the assembly build up
happens. We are also working on building a nice and comfy coding place. We
brought a lot of couches from different hackerspaces and lots of good mood.
So if you want to come, see colourful flashy lights, code on a comfy couch or
hang out woth us, you can find us in
[Hall 2](https://34c3.c3nav.de/l/chaoszone/@0,469.58,373.33,5).
I wish you all a nice time at the 34th Chaos Communication Congress.

View File

@ -1,7 +0,0 @@
---
title: Until next year
author: nek0
description:
---
Congress is over, I hope you had much fun. See you all next year

View File

@ -1,18 +0,0 @@
---
title: Here comes another year
author: nek0
description:
---
Hello folks,
As the 35C3 grows nearer, our plans for this years ChaosZone assembly grow more
concrete. Our plans are ambitions but not imposible, but we still need all
helping hands we can get. Let's make this year's Congress excellent for
everyone.
If You want to participate, help or just seek contakt, you can subscribe to the
mailing list "Zone" at <https://lists.c3d2.de> or join the channel #chaoszone on
[Hackint](https://hackint.org/).
Happy hacking until then!

View File

@ -1,17 +0,0 @@
---
title: ChaosZone at 36C3
author: nek0
description: Another year, another ChaosZone
---
Hi folks,
Like the previous years, we banded together again to make ChaosZone happen again
at 36C3. We are expecting a lot of people from everywhere. We even managed to
have a stage again, this time a lot bigger. To see the schedule, please follow
the link below.
Happy hacking everyone!
[![Gritty schedule logo](/images/FAHRPLAN.svg)][fahrplan]
[fahrplan]: https://cfp.chaoszone.cz/36c3/schedule/ "Link to the stage schedule"

View File

@ -1,36 +0,0 @@
---
title: ChaosZone goes 37c3 ~ Kombinate aller Länder vereinigt euch! ~
author: chaoszone
description: KOmmt uns auf dem Kongress besuchen!
---
![](/images/teaser.jpg)
## ostdeutsch
Genossinnen und Genossen!
Wir machen uns auf ins kapitalistische Ausland, um dort an der diesjährigen [Messe](https://events.ccc.de/category/37c3/) für Rechentechnik und Signalverarbeitung teilzunehmen.
Unsere Schwestern und Brüder im elektronischen Geiste aus Hamburg heißen uns Willkommen. Uns soll Platz zugewießen werden, so sagt man, mit Tischen und Stühlen bestückt. Eine Ecke zum Werken und Wirken soll es auch geben.
Desweiteren werden, mit etwas Glück, Eisbowlen gereicht und neumodische Anstecknadeln produziert.
Kommen Sie, schauen Sie und sprechen Sie uns an! Wir werden Sie gerne in die sozialistische Arbeit einführen.
Nach Ankunft werden wir ein Signal über [Sputnik42](https://chaos.social/@chaoszone) absenden, somit Sie uns finden können.
Solidarische Grüße,
Nerdschaft!
## deutsch
Einige Wesen der Chaoszone werden am diesjährigen [Congress](https://events.ccc.de/category/37c3/) des Chaos Computer Clubs in Hamburg teilnehmen.
Wir werden dort eine Assemblyfläche mit ein paar Tischen, Stühlen und einer kleinen Workshopecke haben! :)
Wenn alles klappt werden wir auch eine Slushimaschine und eine Buttonmaschine dahaben und Live Slushis und Buttons machen. ^^
Komm gerne vorbei! Eine genauere Ortsangabe wird später via [Mastodon](https://chaos.social/@chaoszone) bekannt gegeben.
## english
Some Chaoszone creatures will be attending this year's Chaos Computer Club [Congress](https://events.ccc.de/category/37c3/) in Hamburg.
We will have an assembly area with a few tables, chairs and a small workshop corner! :)
If everything works out well we will also have a slushi machine and a button machine there and make live slushis and buttons. ^^
Feel free to come by! A more exact location will be announced later via [Mastodon](https://chaos.social/@chaoszone).
## česky
Některé z bytostí Chaoszone se zúčastní letošního [kongresu](https://events.ccc.de/category/37c3/) Chaos Computer Clubu v Hamburgu.
Budeme tam mít prostor s několika stoly, židlemi a malým workshopovým koutkem! :)
Pokud vše vyjde, budeme tam mít také stroj na slushie, stroj na placky a budeme vyrábět živě slushie a placky. ^^
Neváhejte a přijďte! Přesnější místo oznámíme později prostřednictvím [Mastodonu](https://chaos.social/@chaoszone).

View File

@ -1,182 +0,0 @@
--------------------------------------------------------------------------------
{-# LANGUAGE OverloadedStrings #-}
import Data.Monoid ((<>))
import Hakyll
-- import Hakyll.Web.Sass
import Data.Time.Clock (UTCTime, getCurrentTime)
import Data.Time.Format (parseTimeM, defaultTimeLocale, formatTime)
import Data.List
import Data.Maybe (fromMaybe)
import System.FilePath (takeFileName)
import Control.Monad (liftM)
import Network.HTTP.Base (urlEncode)
--------------------------------------------------------------------------------
baseUrl :: String
baseUrl = "https://chaoszone.cz"
main :: IO ()
main = do
curtime <- formatTime defaultTimeLocale "%A %F %H:%M" <$> getCurrentTime
hakyllWith config $ do
let defaultCtx = constField "curtime" curtime <> defaultContext
is <- sortIdentifiersByDate <$> getMatches "site/posts/*.md"
match "templates/*" $ compile templateBodyCompiler
match
( "site/images/*"
.||. "site/fonts/**"
.||. "site/humans.txt"
.||. "site/robots.txt"
) $ do
route myRoute
compile copyFileCompiler
match "site/css/*.css" $ do
route myRoute
compile compressCssCompiler
match (fromList ["site/about.md", "site/contact.md"]) $ do
route $ myRoute `composeRoutes` setExtension "html"
compile $ do
pandocCompiler
>>= loadAndApplyTemplate "templates/default.html"
-- (menuCtx firstUrl latestUrl)
defaultCtx
>>= relativizeUrls
-- create ["index.html"] $ do
-- route idRoute
-- compile $ do
-- post <- fmap head . recentFirst =<< (loadAll "site/posts/*"
-- :: Compiler [Item String])
-- let indexCtx =
-- constField "date" "%B %e, %Y" <>
-- defaultCtx
-- makeItem (itemBody post)
-- >>= relativizeUrls
match "site/index.md" $ do
route $ myRoute `composeRoutes` setExtension "html"
compile $ do
posts <- fmap (take 5) . recentFirst =<< loadAll "site/posts/*"
let indexCtx = listField "posts" postCtx (return posts) <>
constField "title" "Home" <>
defaultCtx
getResourceBody
>>= applyAsTemplate indexCtx
>>= renderPandoc
>>= loadAndApplyTemplate "templates/default.html" defaultCtx
>>= relativizeUrls
create ["archive.html"] $ do
route idRoute
compile $ do
posts <- recentFirst =<< loadAll "site/posts/*"
let archiveCtx =
listField "posts" postCtx (return posts) <>
constField "title" "Archives" <>
-- (menuCtx firstUrl latestUrl)
defaultCtx
makeItem ""
>>= loadAndApplyTemplate "templates/archive.html" archiveCtx
>>= loadAndApplyTemplate "templates/default.html" archiveCtx
>>= relativizeUrls
pages <- buildPaginateWith
(liftM (paginateEvery 1) . sortRecentFirst)
"site/posts/*.md"
(\n -> is !! (n - 1))
paginateRules pages $ \num pat -> do
route $ myRoute `composeRoutes` setExtension "html"
compile $ do
ident <- getUnderlying
title <- getMetadataField' ident "title"
url <- return . fromMaybe "" =<< getRoute ident
compiled <- getResourceBody >>= renderPandoc
let pageCtx = paginateContext pages num
let flattrCtx = constField "enctitle" (urlEncode title) <>
constField "encurl" (urlEncode $ baseUrl ++ url)
let ctx = postCtx <> pageCtx <> flattrCtx
full <- loadAndApplyTemplate "templates/post.html" ctx compiled
_ <- saveSnapshot "content" compiled
loadAndApplyTemplate "templates/default.html"
defaultCtx full
>>= relativizeUrls
create ["atom.xml"] $ do
route idRoute
compile $ do
loadAllSnapshots "site/posts/*.md" "content"
>>= recentFirst
>>= renderAtom feedConf feedCtx
create ["rss.xml"] $ do
route idRoute
compile $ do
loadAllSnapshots "site/posts/*.md" "content"
>>= recentFirst
>>= renderRss feedConf feedCtx
--------------------------------------------------------------------------------
myRoute :: Routes
myRoute = gsubRoute "site/" (const "")
--------------------------------------------------------------------------------
postCtx :: Context String
postCtx =
dateField "date" "%B %e, %Y" <>
defaultContext
-- menuCtx :: String -> String -> Context String
-- menuCtx first latest =
-- constField "first" first <>
-- constField "latest" latest <>
-- defaultCtx
--------------------------------------------------------------------------------
config :: Configuration
config = defaultConfiguration
{ deployCommand = "rsync --del --checksum -arve 'ssh -p 5557 ' _site/* chaoszone@chaoszone.cz:/home/chaoszone/www/chaoszone"
}
--------------------------------------------------------------------------------
feedCtx :: Context String
feedCtx = mconcat
[ bodyField "description"
, defaultContext
]
--------------------------------------------------------------------------------
feedConf :: FeedConfiguration
feedConf = FeedConfiguration
{ feedTitle = "Chaosone news"
, feedDescription = "News from eastern european hackerspaces"
, feedAuthorName = "Chaoszone members"
, feedAuthorEmail = "nek0@chaoszone.cz"
, feedRoot = "https://chaoszone.cz"
}
--------------------------------------------------------------------------------
sortIdentifiersByDate :: [Identifier] -> [Identifier]
sortIdentifiersByDate =
sortBy byDate
where
byDate id1 id2 =
let fn1 = takeFileName $ toFilePath id1
fn2 = takeFileName $ toFilePath id2
parseTime' fn = parseTimeM True defaultTimeLocale "%Y-%m-%d" $
intercalate "-" $ take 3 $ splitAll "-" fn
in compare
(parseTime' fn1 :: Maybe UTCTime)
(parseTime' fn2 :: Maybe UTCTime)

View File

@ -1,3 +0,0 @@
Here you can find all previous posts:
$partial("templates/post-list.html")$

View File

@ -1,50 +0,0 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>
ChaosZone - $title$
</title>
<link rel="stylesheet" href="/css/default.css" />
<link rel="stylesheet" href="/css/font.css" />
<link rel="icon" type="image/svg+xml" href="/images/Chaoszone.svg">
<!-- RSS -->
<link rel="alternate" type="application/rss+xml" title="Chaoszone news" href="/rss.xml">
<!-- ATOM -->
<link rel="alternate" type="application/atom+xml" title="Chaoszone news" href="/atom.xml">
</head>
<body>
<div id="logo">
<a href="/">
<img src="/images/Chaoszone_crest.36c3.svg" alt="ChaosZone">
</a>
</div>
<header id="header">
<nav class="menu">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about.html">About</a></li>
<li><a href="/contact.html">Contact</a></li>
<li><a href="/archive.html">Archive</a></li>
</ul>
</nav>
</header>
<article id="content">
<h1>$title$</h1>
$body$
</article>
<footer id="footer">
last updated on: $curtime$ |
Site proudly generated by
<a href="http://jaspervdj.be/hakyll">Hakyll</a>
</footer>
</body>
</html>

View File

@ -1,5 +0,0 @@
<ul>
$for(posts)$
<li><a href="$url$">$title$</a> - $date$</li>
$endfor$
</ul>

View File

@ -1,17 +0,0 @@
<div class="info">
Posted on $date$
$if(author)$
by $author$
$endif$
</div>
$body$
<div class="pagination">
$if(previousPageNum)$
<a class="left" href="$previousPageUrl$"><svg width="1em" height="1em" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1664 896v128q0 53-32.5 90.5t-84.5 37.5h-704l293 294q38 36 38 90t-38 90l-75 76q-37 37-90 37-52 0-91-37l-651-652q-37-37-37-90 0-52 37-91l651-650q38-38 91-38 52 0 90 38l75 74q38 38 38 91t-38 91l-293 293h704q52 0 84.5 37.5t32.5 90.5z" fill="#fff"/></svg>previous page</a>
$endif$
$if(nextPageNum)$
<a class="right" href="$nextPageUrl$">next page<svg width="1em" height="1em" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1600 960q0 54-37 91l-651 651q-39 37-91 37-51 0-90-37l-75-75q-38-38-38-91t38-91l293-293h-704q-52 0-84.5-37.5t-32.5-90.5v-128q0-53 32.5-90.5t84.5-37.5h704l-293-294q-38-36-38-90t38-90l75-75q38-38 90-38 53 0 91 38l651 651q37 35 37 90z" fill="#fff"/></svg></a>
$endif$
</div>

21
themes/zone/LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) [year] [fullname]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

7
themes/zone/README.md Normal file
View File

@ -0,0 +1,7 @@
# Theme Name
## Features
## Installation
## Configuration

View File

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

View File

@ -0,0 +1,22 @@
body {
color: #222;
font-family: sans-serif;
line-height: 1.5;
margin: 1rem;
max-width: 768px;
}
header {
border-bottom: 1px solid #222;
margin-bottom: 1rem;
}
footer {
border-top: 1px solid #222;
margin-top: 1rem;
}
a {
color: #00e;
text-decoration: none;
}

View File

@ -0,0 +1 @@
console.log('This site was generated by Hugo.');

23
themes/zone/hugo.toml Normal file
View File

@ -0,0 +1,23 @@
baseURL = 'https://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'
[[menus.main]]
name = 'Home'
pageRef = '/'
weight = 10
[[menus.main]]
name = 'Posts'
pageRef = '/posts'
weight = 20
[[menus.main]]
name = 'Tags'
pageRef = '/tags'
weight = 30
[module]
[module.hugoVersion]
extended = false
min = "0.116.0"

View File

@ -0,0 +1,9 @@
{{ partial "header.html" . }}
<h1>Page Not Found</h1>
<p>This page doesn't exist.</p>
<p><a href="/">Go back to the home page</a></p>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,18 @@
{{ partial "header.html" . }}
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ range.Data.Pages }}
<article class="post-snippet">
<h3>
<a href="{{ .RelPermalink }}">{{ .Title }}</a>
</h3>
<time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">
{{ .Date.Format "January 2, 2006" }}
</time>
</article>
{{ end }}
{{ partial "footer.html" . }}

View File

@ -0,0 +1,7 @@
{{ partial "header.html" . }}
<h1>{{ .Title }}</h1>
{{ .Content }}
{{ partial "footer.html" . }}

View File

@ -0,0 +1,5 @@
{{ partial "header.html" . }}
{{ .Content }}
{{ partial "footer.html" . }}

View File

@ -0,0 +1,8 @@
</main>
<footer>
<p>&copy;{{ dateFormat "2006" now }} {{ .Site.Title }}</p>
</footer>
</body>
</html>

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>{{ if not .IsHome }}{{ .Title }} | {{ end }}{{ .Site.Title }}</title>
<link rel="stylesheet" href="/css/style.css" type="text/css" media="all" />
<link rel="icon" type="image/svg+xml" href="/img/Chaoszone.svg">
{{ with .OutputFormats.Get "rss" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}
</head>
<body>
{{ partial "nav.html" . }}
<main class="content">

View File

@ -0,0 +1,14 @@
<header class="site-header">
<nav class="site-nav">
<a class="logo" href="{{ .Site.BaseURL }}">
<img src="/img/Chaoszone_crest.png">
</a>
<ul class="main-menu">
{{ range.Site.Menus.main }}
<li>
<a href="{{ .URL }}">{{ .Name }}</a>
</li>
{{ end }}
</ul>
</nav>
</header>

Binary file not shown.

View File

@ -0,0 +1,58 @@
:root {
--bg-color: #DE4129;
--hl-color: #A72119;
--menu-font-color: white;
--font-color: #430C08;
--box-bg: #FF664B;
--main-font: 'Cubellan';
}
@font-face {
font-family: 'Cubellan';
src: url('../font/Cubellan.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
html {
background-color: var(--bg-color);
color: var(--font-color);
font-family: var(--main-font);
min-height: 100vh;
font-size: 20pt;
}
body {
margin: 3em;
}
nav a, nav a:visited {
color: var(--menu-font-color);
font-size: 120%;
}
nav ul {
list-style: none;
display: inline-block;
}
nav li {
display: inline-block;
}
.logo {
display: inline-block;
padding: 0.5em;
border-radius: 23px;
background-color: var(--hl-color);
}
.logo img {
max-width: 8em;
}
main {
padding: 2em;
border-radius: 23px;
background-color: var(--box-bg);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 180 KiB

31
themes/zone/theme.toml Normal file
View File

@ -0,0 +1,31 @@
name = 'Theme name'
license = 'MIT'
licenselink = 'https://github.com/owner/repo/LICENSE'
description = 'Theme description'
# The home page of the theme, where the source can be found
homepage = 'https://github.com/owner/repo'
# If you have a running demo of the theme
demosite = 'https://owner.github.io/repo'
# Taxonomy terms
tags = ['blog', 'company']
features = ['some', 'awesome', 'features']
# If the theme has multiple authors
authors = [
{name = 'Name of author', homepage = 'Website of author'},
{name = 'Name of author', homepage = 'Website of author'}
]
# If the theme has a single author
[author]
name = 'Your name'
homepage = 'Your website'
# If porting an existing theme
[original]
author = 'Name of original author'
homepage = 'Website of original author'
repo = 'https://github.com/owner/repo'