summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Makefile25
-rw-r--r--partials/footer.html6
-rw-r--r--partials/meta.html8
-rw-r--r--partials/nav.html6
-rwxr-xr-xscripts/awink28
-rw-r--r--src/index.html40
-rw-r--r--src/sitemap.xml7
-rw-r--r--src/style.css102
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;
+}