diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 25 | ||||
-rw-r--r-- | partials/footer.html | 6 | ||||
-rw-r--r-- | partials/meta.html | 8 | ||||
-rw-r--r-- | partials/nav.html | 6 | ||||
-rwxr-xr-x | scripts/awink | 28 | ||||
-rw-r--r-- | src/index.html | 40 | ||||
-rw-r--r-- | src/sitemap.xml | 7 | ||||
-rw-r--r-- | src/style.css | 102 |
9 files changed, 223 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..84c048a --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/build/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..32b2e6d --- /dev/null +++ b/Makefile @@ -0,0 +1,25 @@ +HTML := index.html +CSS := style.css + +PARTIALS := $(addprefix partials/, meta.html nav.html footer.html) + +FILES := $(HTML) $(CSS) sitemap.xml + +site: $(addprefix build/, $(FILES)) + +clean: + -rm $(addprefix build/, $(FILES)) + +build/%.html: src/%.html $(PARTIALS) + @./scripts/awink $< $@ + @echo Compiled $< → $@ + +build/%.css: src/%.css + @install -Dm644 $< $@ + @echo Compiled $< → $@ + +build/sitemap.xml: src/sitemap.xml + @install -Dm644 $< $@ + @echo Compiled $< → $@ + +partials/%: diff --git a/partials/footer.html b/partials/footer.html new file mode 100644 index 0000000..6542ac6 --- /dev/null +++ b/partials/footer.html @@ -0,0 +1,6 @@ +<footer> + <p id="copy"> + © <span itemprop="copyrightYear">2014</span> + by <a itemprop="copyrightHolder" rel="author" href="https://theos.kyriasis.com/~kyrias">Johannes Löthberg</a> + </p> +</footer> diff --git a/partials/meta.html b/partials/meta.html new file mode 100644 index 0000000..247e002 --- /dev/null +++ b/partials/meta.html @@ -0,0 +1,8 @@ +<link href="style.css" rel="stylesheet"> + +<meta name="viewport" content="width=device-width, initial-scale=1.0"> + +<meta name="author" content="Johannes Löthberg"> + +<link rel="author" href="https://theos.kyriasis.com/~kyrias/about.html" + title="Johannes Löthberg <johannes@kyriasis.com>"> diff --git a/partials/nav.html b/partials/nav.html new file mode 100644 index 0000000..7da0ab2 --- /dev/null +++ b/partials/nav.html @@ -0,0 +1,6 @@ +<nav> + <ul> + <li><a href="index.html">theos/</a></li> + <li><a href="http://git.kyriasis.com">cgit/</a></li> + </ul> +</nav> diff --git a/scripts/awink b/scripts/awink new file mode 100755 index 0000000..1456c8b --- /dev/null +++ b/scripts/awink @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +## +# arguments: +# $1 In file +# $2 Out file +build() { + gawk '{ + if (NF == 2 && $1 == "%include") { + while ((getline line < $2) > 0) { + print line; + } + close($2); + } else { + print; + } + }' "$1" > "$2" +} + +main() { + if [[ "$#" != 2 ]]; then + printf "%s\n" "awink <in file> <out file>" + exit 2 + fi + + build "$1" "$2" +} +main "$@" diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..b352644 --- /dev/null +++ b/src/index.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>theos/</title> +%include partials/meta.html +</head> +<body itemscope itemtype="http://schema.org/WebPage"> + <header> +%include partials/nav.html + <h1>theos/</h1> + </header> + + <article id="content"> + <h3>Welcome to theos.kyriasis.com</h3> + + <p>Theos is a server under the kyriasis domain owned and operated by <a href="https://theos.kyriasis.com/~kyrias/about.html">kyrias</a>, who also owns kyriasis.com itself (albeit not the server that the A record on kyriasis.com points to for historical reasons.) + </p> + + <p>The server hosts an HTTP server running <a href="http://nginx.org/">NGINX</a>, an LDAP directory running <a href="http://www.openldap.org/">OpenLDAP</a>, email services using <a href="https://www.opensmtpd.org/">OpenSMTPD</a> and <a href="http://www.dovecot.org/">Dovecot</a>, Kerberos using <a href="http://web.mit.edu/kerberos/">MIT Kerberos</a> and the LDAP backend for storage, and Git hosting using a combination of <a href="http://git.zx2c4.com/cgit/about/">cgit</a> and a slighly modified version of <a href="http://gitolite.com">gitolite</a> and OpenSSH to enable Kerberos authentication. + </p> + + <p>All users with shell access have the option to get an email under the kyriasis.com domain, web hosting under the theos.kyriasis.com domain or possibly under a custom subdomain, and git hosting. (All git push access is done using Kerberos authentication.) + </p> + </article> + + <article id="users"> + <h3>User pages</h3> + <ul> + <li><a href="/~kyrias">kyrias</a></li> + <li><a href="/~arch-tk">Arch-TK</a></li> + </ul> + </article> + + <p class="info-right">Last updated <time itemprop="dateModified" datetime="2014-10-10">2014-10-10</time></p> + <p class="info-right botborder"><a rel="author" href="about.html">Johannes Löthberg</a></p> + +%include partials/footer.html +</body> +</html> diff --git a/src/sitemap.xml b/src/sitemap.xml new file mode 100644 index 0000000..c8ab856 --- /dev/null +++ b/src/sitemap.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> + <sitemap> + <loc>https://theos.kyriasis.com/~kyrias/sitemap.xml</loc> + <lastmod>2014-10-10</lastmod> + </sitemap> +</sitemapindex> diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..746460f --- /dev/null +++ b/src/style.css @@ -0,0 +1,102 @@ +@import url(https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700); + +*, *:before, *:after { box-sizing: border-box; } +html { + background-color: #eee; +} +body { + font-size: 16px; + font-family: 'PT Sans'; + max-width: 42rem; + margin: -1.5rem auto; + padding: 0 1rem; + border: 1px solid #ccc; + background-color: #fcfcfc; + -moz-hyphens:auto; -webkit-hyphens:auto; + -ms-hyphens:auto; hyphens:auto; +} + +a, a:visited { + text-decoration: none; + color: #32609C; +} +a:hover { + color: #339; +} + +header { + font-size: 0.9rem; + padding-top: 1.25rem; +} +header nav ul { + padding: 0; + font-size: 0.9rem; + font-family: 'DejaVu Sans Mono'; + list-style-type: none; +} +header nav ul li { + display: inline; + margin-right: 0.5rem; +} +header nav a, header nav a:visited { + color: #444; +} +header nav a:hover { + color: #000; +} +header h1 { + margin: 0; +} + +#content { + padding-bottom: 0.5rem; + color: #222; +} + +#content > p:first-of-type:first-letter { + float: left; + color: #903; + font-size: 3rem; + line-height: 2rem; + padding-top: 0.4rem; + padding-right: 0.4rem; + padding-left: 0.1rem; + font-family: 'Georgia'; +} +@media (max-width: 767px) { + #content > p:first-of-type:first-letter { + padding-top: 0.3rem; + padding-right: 0.2rem; + font-size: 2.7rem; + } +} + +#users h3 { + margin: 0 0 -0.5rem 0; +} +#users ul { + list-style-type: none; + padding: 0 0 0 0.5rem; +} + +#users ul li { + padding-bottom: 0.25rem; +} + +.info-right { + font-size: 14px; + text-align: right; + margin: 0; +} + +.botborder { + border-bottom: 0.15rem; + border-bottom-style: dotted; + border-bottom-color: #bbb; + padding-bottom: 0.5rem; +} + +footer p { + color: #333; + margin: 1rem 0; +} |