major update, put everything in 1 script - static-site-scripts - static site ge… | |
git clone git://git.codemadness.org/static-site-scripts | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 6774b61fbd2c346550101ab1e2c22b6aafadc69e | |
parent 7173e52a5358a4c681716f00945dabdb5ed95b83 | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Fri, 28 Feb 2014 12:42:54 +0100 | |
major update, put everything in 1 script | |
Signed-off-by: Hiltjo Posthuma <[email protected]> | |
Diffstat: | |
M generate.sh | 316 ++++++++++++++++++++++-------… | |
A output/print.css | 9 +++++++++ | |
A output/style.css | 67 +++++++++++++++++++++++++++++… | |
D site.conf | 28 ---------------------------- | |
D site/layout/atom/atom.sh | 14 -------------- | |
D site/layout/atom/atomitem.sh | 16 ---------------- | |
D site/layout/index/index.sh | 52 -----------------------------… | |
D site/layout/index/indexitem.sh | 3 --- | |
D site/layout/page/page.sh | 50 -----------------------------… | |
D site/layout/rss/rss.sh | 14 -------------- | |
D site/layout/rss/rssitem.sh | 12 ------------ | |
D site/output/print.css | 12 ------------ | |
D site/output/style.css | 69 ------------------------------ | |
D site/pages/example-page-template.h… | 1 - | |
D site/pages/example-page-template.sh | 11 ----------- | |
D site/pages/markdown-test.md | 61 -----------------------------… | |
D site/pages/markdown-test.sh | 11 ----------- | |
17 files changed, 306 insertions(+), 440 deletions(-) | |
--- | |
diff --git a/generate.sh b/generate.sh | |
@@ -1,125 +1,269 @@ | |
#!/bin/sh | |
+# site title (part of ${pagetitle} probably). | |
+sitetitle="Codemadness" | |
+# main site domain. | |
+sitedomain="http://www.codemadness.nl" | |
+# short site domain. | |
+sitedomainshort="codemadness.nl" | |
+# relative site url. | |
+siteurlrel="" | |
+# full site url. | |
+siteurlfull="${sitedomain}${siteurlrel}" | |
+# site keywords (default). | |
+sitekeywords="blog, suckless, dwm-hiltjo" | |
+# site description (default). | |
+sitedescription="blog with various projects and articles about computer-relate… | |
+# sitem mail used for contact "mail link". | |
+sitemail="hiltjo@[email protected]" | |
+# site author (global). | |
+siteauthor="hiltjo" | |
+# site last updated (default use date when script was run). | |
+siteupdated=$(date "+%Y-%m-%dT%H:%M:%SZ") | |
-# Syntax highlight code. | |
-code_highlight() { | |
- printf '%s\n' '<pre><code>' | |
- # escape some HTML entities, prefix code with linenumbers. | |
- sed -e 's@&@\&@g' -e 's@>@\>@g' -e 's@<@\<@g' | nl -w 4 -s '… | |
- printf '%s\n' '</code></pre>' | |
-} | |
+# Directories containing content and metadata. | |
+# NOTE: it's recommended to use absolute paths here. | |
+pagesdir="pages" | |
+# Output dir. | |
+outputdir="output" | |
+# Markdown processor: default: is "smu". | |
+markdown="smu" | |
-# page_metadata(filename) | |
-page_metadata() { | |
+# initial values for page variables. | |
+#page_reset() | |
+page_reset() { | |
id="" | |
tags="" | |
title="" | |
url="" | |
description="${sitedescription}" | |
keywords="${sitekeywords}" | |
- filename="" | |
content="" | |
categories="" | |
- timestamp="" | |
- [ ! "$1" = "" ] && [ -f "$1" ] && . "$1" # include page metadata. | |
+ timecreated="" | |
+ datecreated="" | |
+ timeupdated="" | |
+ dateupdated="" | |
+ author="${siteauthor}" | |
} | |
-# load config (evaluate shellscript). | |
-# loadconfig(configfile) | |
-loadconfig() { | |
- # allow to specify config via argv[1]. | |
- if [ ! "$1" = "" ]; then | |
- # get absolute path of config file. | |
- config=$(readlink -f "$1") | |
- else | |
- # default config location. | |
- config="./site.conf" | |
- fi | |
- # load config: config is loaded here to be able to override above vari… | |
- # (sfeedpath, sfeedfile, etc). | |
- if [ -r "${config}" ]; then | |
- . "${config}" | |
+#makeid(title) | |
+makeid() { | |
+ printf '%s\n' "$1" | tr '[:upper:]' '[:lower:]' | sed -e 's@[^a-zA-Z0-… | |
+ -e 's@[-]*$@@g' -e 's@^[-]*@@g' | |
+} | |
+ | |
+# escape some HTML entities, prefix code with linenumbers. | |
+code_highlight() { | |
+ printf '%s' '<pre><code>' | |
+ sed -e 's@&@\&@g' -e 's@>@\>@g' -e 's@<@\<@g' | nl -w 4 -s '… | |
+ printf '%s' '</code></pre>' | |
+} | |
+ | |
+pageheader() { | |
+ # prefix page title with site title, make sure its neatly formatted. | |
+ if [ "${title}" = "" ]; then | |
+ pagetitle="${sitetitle}" | |
else | |
- echo "$0 [configfile]" >&2 | |
- echo "" >&2 | |
- echo "Error: configuration file \"${config}\" does not exist o… | |
- exit 1 | |
+ pagetitle="${title} - ${sitetitle}" | |
fi | |
+ cat <<!__EOF__ | |
+<!DOCTYPE HTML> | |
+<html dir="ltr" lang="en"> | |
+ <head> | |
+ <title>${pagetitle}</title> | |
+ <link rel="stylesheet" href="style.css" type="text/css" media=… | |
+ <link rel="stylesheet" href="print.css" type="text/css" media=… | |
+ <link rel="alternate" type="application/rss+xml" title="${site… | |
+ <link rel="alternate" type="application/atom+xml" title="${sit… | |
+ <link rel="icon" type="image/png" href="/favicon.png" /> | |
+ <meta http-equiv="Content-Type" content="text/html; charset=UT… | |
+ <meta http-equiv="Content-Language" content="en" /> | |
+ <meta content="width=device-width" name="viewport" /> | |
+ <meta content="${keywords}" name="keywords" /> | |
+ <meta content="${description}" name="description" /> | |
+ </head> | |
+ <body> | |
+ <div id="menuwrap"> | |
+ <div id="menu"> | |
+ <span id="links"> | |
+ <a href="${siteurlrel}/index.html" tit… | |
+ <a href="/downloads/projects/" title="… | |
+ <a href="https://github.com/hiltjo/" t… | |
+ </span> | |
+ <span id="links-contact"> | |
+ <span class="hidden"> | </span> | |
+ <a href="rss.xml" title="Syndicate thi… | |
+ <a href="atom.xml" title="Atom feed" c… | |
+ <a href="mailto:${sitemail}" title="Ma… | |
+ </span> | |
+ </div> | |
+ </div> | |
+ <hr class="hidden" /> | |
+ <div id="mainwrap"> | |
+ <div id="main"> | |
+!__EOF__ | |
} | |
-# Default config options. | |
-markdown="smu" # default markdown processor. | |
- | |
-# Read config file. | |
-loadconfig "$1" | |
-config="$1" | |
+pagefooter() { | |
+ cat <<!__EOF__ | |
+ </div> | |
+ </div> | |
+ </body> | |
+</html> | |
+!__EOF__ | |
+} | |
if [ ! -d "${pagesdir}" ]; then | |
echo "Error: pages directory \"${pagesdir}\" not found." >&2 | |
exit 1 | |
fi | |
-# Try to make output dir. | |
+# try to make output dir. | |
mkdir -p "${outputdir}" | |
-# process pages. | |
-# truncate pages where content is appended. | |
-for name in "rss.xml" "atom.xml" "index.html"; do | |
- echo > "${outputdir}/${name}" | |
-done | |
-find "${pagesdir}" -type f -name "*.sh" | while read -r page; do | |
- page_metadata "${page}" # load page metadata. | |
- printf "%s\t%s\n" "${timestamp}" "${page}" | |
-done | sort -rn | while read -r ts meta; do # process in order of time descend… | |
- pagename=$(basename "${meta}" ".sh") | |
- page_metadata "${meta}" | |
+> "${outputdir}/urllist.txt" # truncate urllist.txt | |
+contentindex="" | |
+contentrss="" | |
+contentatom="" | |
+contentsitemap="" | |
+while read -r meta; do | |
+ page_reset | |
+ basename=$(basename "${meta}" ".sh") | |
+ | |
+ . "$meta" # source page metadata. | |
+ datecreated=$(printf '%s' "${timecreated}" | cut -b 1-10) | |
+ dateupdated=$(printf '%s' "${timeupdated}" | cut -b 1-10) | |
+ | |
+ # set unset variables. | |
+ if [ "${id}" = "" ] && [ ! "${title}" = "" ]; then | |
+ id=$(makeid "${title}") | |
+ fi | |
+ if [ "${url}" = "" ]; then | |
+ url="${id}.html" | |
+ fi | |
urlfull="${siteurlfull}/${url}" | |
filename="" | |
- if [ "${content}" = "" ]; then # content not set: try data from file. | |
- if [ -f "${pagesdir}/${pagename}.html" ]; then | |
- filename="${pagesdir}/${pagename}.html" | |
+ # content not set; try data from filetypes. | |
+ if [ "${content}" = "" ]; then | |
+ if [ -f "${pagesdir}/${basename}.html" ]; then | |
+ filename="${pagesdir}/${basename}.html" | |
content=$(cat "${filename}") | |
- elif [ -f "${pagesdir}/${pagename}.md" ]; then | |
- filename="${pagesdir}/${pagename}.md" | |
+ elif [ -f "${pagesdir}/${basename}.md" ]; then | |
+ filename="${pagesdir}/${basename}.md" | |
content=$("${markdown}" "${filename}") | |
+# elif [ -f "${pagesdir}/${basename}.txt" ]; then | |
+# filename="${pagesdir}/${basename}.txt" | |
+# content=$(cat "${filename}") | |
+# content="<pre>${content}</pre>" | |
fi | |
fi | |
- . "${layoutdir}/page/page.sh" > "${outputdir}/${pagename}.html" | |
- . "${layoutdir}/index/indexitem.sh" >> "${outputdir}/index.html" | |
- . "${layoutdir}/rss/rssitem.sh" >> "${outputdir}/rss.xml" | |
- . "${layoutdir}/atom/atomitem.sh" >> "${outputdir}/atom.xml" | |
-done | |
- | |
-# Index page. | |
-page_metadata "" | |
-title="Posts" | |
-content=$(cat "${outputdir}/index.html") | |
-. "${layoutdir}/index/index.sh" > "${outputdir}/index.html" | |
+ # page | |
+ if [ "${datecreated}" = "${dateupdated}" ]; then | |
+ created="<strong>Created on:</strong> ${dateupdated}<br/>" | |
+ else | |
+ created="<strong>Created on:</strong> ${datecreated}<br/> | |
+ <strong>Last update on:</strong> ${dateupdated}<br/>" | |
+ fi | |
+ (pageheader | |
+ cat <<!__EOF__ | |
+ <h1><a href="${siteurlrel}/${url}" title="${title}">${title}</… | |
+ <em>${created}</em> | |
+ ${content} | |
+!__EOF__ | |
+ pagefooter) > "${outputdir}/${url}" | |
-# RSS | |
-page_metadata "" | |
-content=$(cat "${outputdir}/rss.xml") | |
-. "${layoutdir}/rss/rss.sh" > "${outputdir}/rss.xml" | |
+ # index: append item on index page. | |
+ contentindex="${contentindex}<tr><td class=\"lm\">${dateupdated}</td> | |
+ <td><a href=\"${url}\" title=\"${description}\">${title}<… | |
-# Atom | |
-page_metadata "" | |
-content=$(cat "${outputdir}/atom.xml") | |
-. "${layoutdir}/atom/atom.sh" > "${outputdir}/atom.xml" | |
+ # RSS item: append | |
+ contentrsspubdate=$(date "+%a, %d %b %Y %H:%M:%S GMT" -d "${timeupdate… | |
+ contentrss="${contentrss}$( | |
+ cat <<!__EOF__ | |
+ <item> | |
+ <title>${title}</title> | |
+ <link>${urlfull}</link> | |
+ <pubDate>${contentrsspubdate}</pubDate> | |
+ <author>${author}</author> | |
+ <guid isPermaLink=\"false\">${urlfull}</guid> | |
+ <description><![CDATA[${description}]]></description> | |
+ </item> | |
+!__EOF__ | |
+)" | |
+ | |
+ # Atom item: append | |
+ contentatomupdated=$(date "+%Y-%m-%dT%H:%M:%SZ" -d "${timeupdated}") | |
+ contentatompublished=$(date "+%Y-%m-%dT%H:%M:%SZ" -d "${timecreated}") | |
+ contentatom="${contentatom}$( | |
+ cat <<!__EOF__ | |
+ <entry> | |
+ <title type=\"html\"><![CDATA[${title}]]></title> | |
+ <link rel=\"alternate\" type=\"text/html\" href=\"${urlfull}\"… | |
+ <id>${urlfull}</id> | |
+ <updated>${contentatomupdated}</updated> | |
+ <published>${contentatompublished}</published> | |
+ <author> | |
+ <name>${author}</name> | |
+ <uri>${siteurlfull}</uri> | |
+ </author> | |
+ <summary type=\"html\"><![CDATA[${description}]]></summary> | |
+ </entry> | |
+!__EOF__ | |
+)" | |
-# Goto output dir to make relative urls for find. | |
-cd "${outputdir}" | |
+ # sitemap: sitemap.xml, append item. | |
+ contentsitemap="${contentsitemap}<url><loc>${urlfull}</loc></url>" | |
-# Sitemap: urllist.txt | |
-find ./ -type f -name "*.html" | sort | sed 's@^\./@'${siteurlfull}'/@' > "url… | |
+ # sitemap: urllist.txt, just write directly. | |
+ printf '%s\n' "${urlfull}" >> "${outputdir}/urllist.txt" | |
+done <<!FILELIST | |
+$(find "${pagesdir}" -type f -name "*.sh" | sort -rn) | |
+!FILELIST | |
+# process pages (reverse numeric order). | |
+# above heredoc is used to make sure content* variables are known | |
+# in this scope after the while loop. | |
+ | |
+# index page. | |
+page_reset | |
+title="Posts" | |
+(pageheader | |
+cat <<!__EOF__ | |
+ <h1>${title}</h1> | |
+ <table> | |
+ ${contentindex} | |
+ </table> | |
+!__EOF__ | |
+pagefooter) > "${outputdir}/index.html" | |
-# Sitemap: sitemap.xml | |
-(cat <<! | |
+# RSS | |
+cat <<!__EOF__ > "${outputdir}/rss.xml" | |
<?xml version="1.0" encoding="UTF-8"?> | |
-<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> | |
-! | |
+<rss version="2.0"> | |
+ <channel> | |
+ <title>${sitetitle}</title> | |
+ <link>${siteurlfull}</link> | |
+ <description>${sitedescription}</description> | |
+ <language>en</language> | |
+ ${contentrss} | |
+ </channel> | |
+</rss> | |
+!__EOF__ | |
-find ./ -type f -name "*.html" | sort | sed 's@^\./\(.*\)$@<url><loc>'${siteur… | |
+# Atom | |
+cat <<!__EOF__ > "${outputdir}/atom.xml" | |
+<?xml version="1.0" encoding="UTF-8"?> | |
+<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"> | |
+ <title type="text">${sitetitle}</title> | |
+ <subtitle type="text">${sitedescription}</subtitle> | |
+ <updated>${siteupdated}</updated> | |
+ <link rel="alternate" type="text/html" href="${siteurlfull}" /> | |
+ <id>${siteurlfull}/atom.xml</id> | |
+ <link rel="self" type="application/atom+xml" href="${siteurlfull}/atom… | |
+ ${contentatom} | |
+</feed> | |
+!__EOF__ | |
-cat <<! | |
-</urlset> | |
-! | |
-) > "sitemap.xml" | |
+# sitemap: sitemap.xml | |
+cat <<!__EOF__ > "${outputdir}/sitemap.xml" | |
+<?xml version="1.0" encoding="UTF-8"?><urlset>${contentsitemap}</urlset> | |
+!__EOF__ | |
diff --git a/output/print.css b/output/print.css | |
@@ -0,0 +1,9 @@ | |
+body { | |
+ text-align: left; | |
+} | |
+#menuwrap { | |
+ display: none; | |
+} | |
+#menu, #main { | |
+ margin: 0; | |
+} | |
diff --git a/output/style.css b/output/style.css | |
@@ -0,0 +1,67 @@ | |
+body { | |
+ font-family: sans-serif, monospace; | |
+ text-align: center; | |
+ overflow-y: scroll; | |
+ color: #333; | |
+ background-color: #fff; | |
+ margin: 0; | |
+ padding: 0; | |
+} | |
+table { | |
+ border: 0; | |
+} | |
+hr { | |
+ height: 1px; | |
+ color: #ccc; | |
+ background-color: #ccc; | |
+ border: 0; | |
+} | |
+h1 { | |
+ font-size: 140%; | |
+} | |
+h2 { | |
+ font-size: 120%; | |
+} | |
+h3 { | |
+ font-size: 100%; | |
+} | |
+h1, h1 a, h1 a:visited, | |
+h2, h2 a, h2 a:visited, | |
+h3, h3 a, h3 a:visited, | |
+h1 a:hover, h2 a:hover, h3 a:hover { | |
+ color: inherit; | |
+ text-decoration: none; | |
+} | |
+table tr td { | |
+ padding: 2px 10px 2px 0px; | |
+} | |
+pre { | |
+ border: 1px dashed #777; | |
+ background-color: #eee; | |
+ padding: 5px; | |
+ overflow-x: auto; | |
+} | |
+#menuwrap { | |
+ background-color: #eee; | |
+ padding: 1ex; | |
+ border-bottom: 1px solid #ccc; | |
+} | |
+#main { | |
+ padding: 1ex; | |
+} | |
+#menu, | |
+#main { | |
+ margin: 0px auto; | |
+ text-align: left; | |
+ max-width: 80ex; | |
+} | |
+#menu a { | |
+ font-weight: bold; | |
+ vertical-align: middle; | |
+} | |
+#links-contact { | |
+ float: right; | |
+} | |
+.hidden { | |
+ display: none; | |
+} | |
diff --git a/site.conf b/site.conf | |
@@ -1,28 +0,0 @@ | |
-#!/bin/sh | |
-# | |
-# Site title (part of ${pagetitle} probably). | |
-sitetitle="Codemadness" | |
-# Main site domain. | |
-sitedomain="http://www.codemadness.nl" | |
-# Short site domain. | |
-sitedomainshort="codemadness.nl" | |
-# Relative site url. | |
-siteurlrel="" | |
-# Full site url. | |
-siteurlfull="${sitedomain}${siteurlrel}" | |
-# Site keywords (default). | |
-sitekeywords="blog, suckless, dwm-hiltjo" | |
-# Site description (default). | |
-sitedescription="blog with various projects and articles about computer-relate… | |
-# used for contact "mail link". | |
-sitemail="hiltjo@[email protected]" | |
- | |
-# Directories containing content and metadata. | |
-# NOTE: it's recommended to use absolute paths here. | |
-pagesdir="site/pages" | |
-# Output dir. | |
-outputdir="site/output" | |
-# Layout dir. | |
-layoutdir="site/layout" | |
-#Markdown processor: default: is "smu". | |
-#markdown="smu" | |
diff --git a/site/layout/atom/atom.sh b/site/layout/atom/atom.sh | |
@@ -1,14 +0,0 @@ | |
-#!/bin/sh | |
- | |
-cat <<!__EOF__ | |
-<?xml version="1.0" encoding="UTF-8"?> | |
-<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"> | |
- <title type="text">${sitetitle}</title> | |
- <subtitle type="text">${sitedescription}</subtitle> | |
- <updated>$(date "+%Y-%m-%dT%H:%M:%SZ" -d "${builddate}")</updated> | |
- <link rel="alternate" type="text/html" href="${siteurlfull}" /> | |
- <id>${siteurlfull}/atom.xml</id> | |
- <link rel="self" type="application/atom+xml" href="${siteurlfull}/atom… | |
- ${content} | |
-</feed> | |
-!__EOF__ | |
diff --git a/site/layout/atom/atomitem.sh b/site/layout/atom/atomitem.sh | |
@@ -1,16 +0,0 @@ | |
-#!/bin/sh | |
- | |
-cat <<!__EOF__ | |
-<entry> | |
- <author> | |
- <name>${author}</name> | |
- <uri>${sitefullurl}</uri> | |
- </author> | |
- <title type="html"><![CDATA[${title}]]></title> | |
- <link rel="alternate" type="text/html" href="${urlfull}" /> | |
- <id>${urlfull}</id> | |
- <updated>$(date "+%Y-%m-%dT%H:%M:%SZ" -d "${timestamp}")</updated> | |
- <published>$(date "+%Y-%m-%dT%H:%M:%SZ" -d "${timestamp}")</published> | |
- <summary type="html"><![CDATA[${description}]]></summary> | |
-</entry> | |
-!__EOF__ | |
diff --git a/site/layout/index/index.sh b/site/layout/index/index.sh | |
@@ -1,52 +0,0 @@ | |
-#!/bin/sh | |
- | |
-# prefix page title with site title, make sure its neatly formatted. | |
-if [ "${title}" = "" ]; then | |
- pagetitle="${sitetitle}" | |
-else | |
- pagetitle="${title} - ${sitetitle}" | |
-fi | |
- | |
-cat <<!__EOF__ | |
-<!DOCTYPE HTML> | |
-<html dir="ltr" lang="en"> | |
- <head> | |
- <title>${pagetitle}</title> | |
- <link rel="stylesheet" href="style.css" type="text/css" media=… | |
- <link rel="stylesheet" href="print.css" type="text/css" media=… | |
- <link rel="alternate" type="application/rss+xml" title="${site… | |
- <link rel="alternate" type="application/atom+xml" title="${sit… | |
- <link rel="icon" type="image/png" href="/favicon.png" /> | |
- <meta http-equiv="Content-Type" content="text/html; charset=UT… | |
- <meta http-equiv="Content-Language" content="en" /> | |
- <meta content="width=device-width" name="viewport" /> | |
- <meta content="${sitekeywords}" name="keywords" /> | |
- <meta content="${sitedescription}" name="description" /> | |
- </head> | |
- <body> | |
- <div id="menuwrap"> | |
- <div id="menu"> | |
- <span id="links"> | |
- <a href="${siteurlrel}/" title="Blog">… | |
- <a href="/downloads/projects/" title="… | |
- </span> | |
- <span id="links-contact"> | |
- <span class="hidden"> | </span> | |
- <a href="rss.xml" title="Syndicate thi… | |
- <a href="atom.xml" title="Atom feed" c… | |
- <a href="mailto:${sitemail}" title="Ma… | |
- </span> | |
- </div> | |
- </div> | |
- <hr class="hidden" /> | |
- <div id="mainwrap"> | |
- <div id="main"> | |
-<h1>${title}</h1> | |
-<table> | |
- ${content} | |
-</table> | |
- </div> | |
- </div> | |
- </body> | |
-</html> | |
-!__EOF__ | |
diff --git a/site/layout/index/indexitem.sh b/site/layout/index/indexitem.sh | |
@@ -1,3 +0,0 @@ | |
-#!/bin/sh | |
-# row for index page. | |
-printf '<tr><td class="lm">%s</td><td><a href="%s" title="%s">%s</a></td></tr>… | |
diff --git a/site/layout/page/page.sh b/site/layout/page/page.sh | |
@@ -1,50 +0,0 @@ | |
-#!/bin/sh | |
- | |
-# prefix page title with site title, make sure its neatly formatted. | |
-if [ "${title}" = "" ]; then | |
- pagetitle="${sitetitle}" | |
-else | |
- pagetitle="${title} - ${sitetitle}" | |
-fi | |
- | |
-cat <<!__EOF__ | |
-<!DOCTYPE HTML> | |
-<html dir="ltr" lang="en"> | |
- <head> | |
- <title>${pagetitle}</title> | |
- <link rel="stylesheet" href="style.css" type="text/css" media=… | |
- <link rel="stylesheet" href="print.css" type="text/css" media=… | |
- <link rel="alternate" type="application/rss+xml" title="${site… | |
- <link rel="alternate" type="application/atom+xml" title="${sit… | |
- <link rel="icon" type="image/png" href="/favicon.png" /> | |
- <meta http-equiv="Content-Type" content="text/html; charset=UT… | |
- <meta http-equiv="Content-Language" content="en" /> | |
- <meta content="width=device-width" name="viewport" /> | |
- <meta content="${keywords}" name="keywords" /> | |
- <meta content="${description}" name="description" /> | |
- </head> | |
- <body> | |
- <div id="menuwrap"> | |
- <div id="menu"> | |
- <span id="links"> | |
- <a href="${siteurlrel}/" title="Blog">… | |
- <a href="/downloads/projects/" title="… | |
- </span> | |
- <span id="links-contact"> | |
- <span class="hidden"> | </span> | |
- <a href="rss.xml" title="Syndicate thi… | |
- <a href="atom.xml" title="Atom feed" c… | |
- <a href="mailto:${sitemail}" title="Ma… | |
- </span> | |
- </div> | |
- </div> | |
- <hr class="hidden" /> | |
- <div id="mainwrap"> | |
- <div id="main"> | |
- <h1><a href="${urlrel}" title="${title}">${tit… | |
- ${content} | |
- </div> | |
- </div> | |
- </body> | |
-</html> | |
-!__EOF__ | |
diff --git a/site/layout/rss/rss.sh b/site/layout/rss/rss.sh | |
@@ -1,14 +0,0 @@ | |
-#!/bin/sh | |
- | |
-cat <<!__EOF__ | |
-<?xml version="1.0" encoding="UTF-8"?> | |
-<rss version="2.0"> | |
- <channel> | |
- <title>${sitetitle}</title> | |
- <link>${siteurlfull}</link> | |
- <description></description> | |
- <language>en</language> | |
- ${content} | |
- </channel> | |
-</rss> | |
-!__EOF__ | |
diff --git a/site/layout/rss/rssitem.sh b/site/layout/rss/rssitem.sh | |
@@ -1,12 +0,0 @@ | |
-#!/bin/sh | |
- | |
-cat <<!__EOF__ | |
-<item> | |
- <title>${title}</title> | |
- <link>${urlfull}</link> | |
- <pubDate>$(date -R -d "${timestamp}")</pubDate> | |
- <author>${author}</author> | |
- <guid isPermaLink="false">${urlfull}</guid> | |
- <description><![CDATA[${description}]]></description> | |
-</item> | |
-!__EOF__ | |
diff --git a/site/output/print.css b/site/output/print.css | |
@@ -1,12 +0,0 @@ | |
-body { | |
- text-align: left; | |
-} | |
-#menuwrap { | |
- display: none; | |
-} | |
-#menu, #main { | |
- margin: 0; | |
-} | |
-pre, code { | |
- white-space: pre-wrap; | |
-} | |
diff --git a/site/output/style.css b/site/output/style.css | |
@@ -1,69 +0,0 @@ | |
-body { | |
- font-family: sans-serif, monospace; | |
- text-align: center; | |
- overflow-y: scroll; | |
- color: #333; | |
- background-color: #fff; | |
- margin: 0; | |
- padding: 0; | |
-} | |
-table { | |
- border: 0; | |
-} | |
-hr { | |
- height: 1px; | |
- color: #ccc; | |
- background-color: #ccc; | |
- border: 0; | |
-} | |
-h1 { | |
- font-size: 140%; | |
-} | |
-h2 { | |
- font-size: 120%; | |
-} | |
-h3 { | |
- font-size: 100%; | |
-} | |
-h1, h1 a, h1 a:visited, | |
-h2, h2 a, h2 a:visited, | |
-h3, h3 a, h3 a:visited, | |
-h1 a:hover, h2 a:hover, h3 a:hover { | |
- color: inherit; | |
- text-decoration: none; | |
-} | |
-table tr td { | |
- padding: 2px 10px 2px 0px; | |
-} | |
-code { | |
- border: 1px dashed #777; | |
- background-color: #eee; | |
- padding: 5px; | |
- overflow-x: auto; | |
- white-space: nowrap; | |
- word-wrap: normal; | |
-} | |
-#menuwrap { | |
- background-color: #eee; | |
- padding: 1ex; | |
- border-bottom: 1px solid #ccc; | |
-} | |
-#main { | |
- padding: 1ex; | |
-} | |
-#menu, | |
-#main { | |
- margin: 0px auto; | |
- text-align: left; | |
- max-width: 80ex; | |
-} | |
-#menu a { | |
- font-weight: bold; | |
- vertical-align: middle; | |
-} | |
-#links-contact { | |
- float: right; | |
-} | |
-.hidden { | |
- display: none; | |
-} | |
diff --git a/site/pages/example-page-template.html b/site/pages/example-page-te… | |
@@ -1 +0,0 @@ | |
-<p>This is an example page :)</p> | |
diff --git a/site/pages/example-page-template.sh b/site/pages/example-page-temp… | |
@@ -1,11 +0,0 @@ | |
-#!/bin/sh | |
-title="Example title" | |
-description="description here" | |
-id="example-page-template" | |
-url="${id}.html" | |
-tags="tags, comma, separated" | |
-keywords="keywords, comma, separated" | |
-categories="Category name" | |
-timestamp="2013-01-01" | |
-author="author" | |
-#content="custom stuff" | |
diff --git a/site/pages/markdown-test.md b/site/pages/markdown-test.md | |
@@ -1,61 +0,0 @@ | |
-simple tests | |
------------- | |
- | |
-first paragraph. | |
-testing surround: _emph_ then **strong** and `code`. | |
- | |
-`\`escaped backticks\``. | |
- | |
-`x = *y * 6;` | |
- | |
-horizontal rule: | |
- | |
-- - - | |
- | |
- | |
-blocks and entities | |
-------------------- | |
- | |
-preformatted block: | |
- .'''' .'.'. | | | |
- '''. | ' | | | | |
- '''' ' ' "" | |
- | |
-quoted text: | |
-> When in doubt, | |
-> use brute force. | |
- | |
-list: | |
-* Make each program do one thing well. | |
-* Expect the output of every program to become the input to another, | |
-as yet unknown, program. | |
-* Design and build software, even operating systems, to be tried early, | |
-ideally within weeks. | |
-* Use tools in preference to unskilled help to lighten a programming task. | |
- | |
-list in list: | |
-* a | |
- * b | |
- 1. c | |
- 2. d | |
- * e | |
-* f | |
- | |
-entity: &, <, > | |
- | |
-code: | |
- int powerof2(unsigned int n) { | |
- return !((n - 1) & n) && n > 0; | |
- } | |
- | |
-links | |
------ | |
- | |
-[suckless](http://suckless.org) | |
- | |
-inline html | |
------------ | |
- | |
-<center> | |
- ABC | |
-</center> | |
diff --git a/site/pages/markdown-test.sh b/site/pages/markdown-test.sh | |
@@ -1,11 +0,0 @@ | |
-#!/bin/sh | |
-title="Markdown test" | |
-description="description here" | |
-id="markdown-test" | |
-url="${id}.html" | |
-tags="tags, comma, separated" | |
-keywords="keywords, comma, separated" | |
-categories="Category name" | |
-timestamp="2013-01-02" | |
-author="author" | |
-#content="custom stuff" |