Introduction
Introduction Statistics Contact Development Disclaimer Help
consistency, cleanup, pagecontent is a function now - static-site-scripts - sta…
git clone git://git.codemadness.org/static-site-scripts
Log
Files
Refs
README
LICENSE
---
commit dee3000de975dabe546a8fc9ab5700cda891063a
parent 20caaadb4840307b4601a4ff4019c2efd93bdb53
Author: Hiltjo Posthuma <[email protected]>
Date: Mon, 24 Mar 2014 22:06:03 +0100
consistency, cleanup, pagecontent is a function now
Signed-off-by: Hiltjo Posthuma <[email protected]>
Diffstat:
M generate.sh | 114 ++++++++++++++++++-----------…
1 file changed, 65 insertions(+), 49 deletions(-)
---
diff --git a/generate.sh b/generate.sh
@@ -27,8 +27,14 @@ outputdir="output"
# Markdown processor: default: is "smu".
markdown="smu"
+#makeid(title), format "Some title" to "some-title".
+makeid() {
+ printf '%s\n' "$1" | tr '[:upper:]' '[:lower:]' | sed -e 's@[^a-zA-Z0-…
+ -e 's@[-]*$@@g' -e 's@^[-]*@@g'
+}
+
# initial values for page variables, use some site vars as global defaults.
-page_reset() {
+pagereset() {
id=""
title=""
url=""
@@ -44,10 +50,41 @@ page_reset() {
dateupdated=""
}
-#makeid(title), format "Some title" to "some-title".
-makeid() {
- printf '%s\n' "$1" | tr '[:upper:]' '[:lower:]' | sed -e 's@[^a-zA-Z0-…
- -e 's@[-]*$@@g' -e 's@^[-]*@@g'
+pageread() {
+ meta="$1"
+ . "$meta" # source page metadata.
+ basename=$(basename "${meta}" ".sh")
+ datecreated=$(printf '%s' "${timecreated}" | cut -b 1-10)
+ dateupdated=$(printf '%s' "${timeupdated}" | cut -b 1-10)
+
+ # if ${id} is empty and title is set: create id based on title.
+ if [ "${id}" = "" ] && [ ! "${title}" = "" ]; then
+ id=$(makeid "${title}")
+ fi
+ if [ "${id}" = "" ]; then
+ printf '%s\n' "Warning: \$id or \$title not set in \"${meta}\"…
+ continue
+ fi
+ if [ "${url}" = "" ]; then
+ url="${id}.html"
+ fi
+ outfile="${id}.html"
+ urlfull="${siteurlfull}/${outfile}"
+ filename=""
+ # ${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}/${basename}.md" ]; then
+ filename="${pagesdir}/${basename}.md"
+ content=$("${markdown}" "${filename}")
+ fi
+ fi
+ created="<strong>Created on:</strong> ${datecreated}<br/>"
+ if [ ! "${datecreated}" = "${dateupdated}" ]; then
+ created="${created}<strong>Last update on:</strong> ${dateupda…
+ fi
}
pageheader() {
@@ -96,6 +133,16 @@ pageheader() {
!__EOF__
}
+pagecontent() {
+ pageheader
+ cat <<!__EOF__
+ <h1><a href="">${title}</a></h1>
+ <em>${created}</em>
+ ${content}
+!__EOF__
+ pagefooter
+}
+
pagefooter() {
cat <<!__EOF__
</div>
@@ -110,57 +157,26 @@ if [ ! -d "${pagesdir}" ]; then
exit 1
fi
+# process single page as argument (handy for testing a single page).
+if [ ! "$1" = "" ]; then
+ pagereset
+ pageread "$1"
+ pagecontent
+ exit 0
+fi
+
# try to make output dir.
mkdir -p "${outputdir}"
-> "${outputdir}/urllist.txt" # truncate urllist.txt
+> "${outputdir}/urllist.txt" # truncate urllist.txt (sitemap).
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)
-
- # if ${id} is empty and title is set: create id based on title.
- if [ "${id}" = "" ] && [ ! "${title}" = "" ]; then
- id=$(makeid "${title}")
- fi
- if [ "${id}" = "" ]; then
- printf '%s\n' "Warning: \$id or \$title not set in \"${meta}\"…
- continue
- fi
- if [ "${url}" = "" ]; then
- url="${id}.html"
- fi
- outfile="${id}.html"
- urlfull="${siteurlfull}/${outfile}"
- filename=""
- # ${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}/${basename}.md" ]; then
- filename="${pagesdir}/${basename}.md"
- content=$("${markdown}" "${filename}")
- fi
- fi
- created="<strong>Created on:</strong> ${datecreated}<br/>"
- if [ ! "${datecreated}" = "${dateupdated}" ]; then
- created="${created}<strong>Last update on:</strong> ${dateupda…
- fi
- (pageheader
- cat <<!__EOF__
- <h1><a href="">${title}</a></h1>
- <em>${created}</em>
- ${content}
-!__EOF__
- pagefooter) > "${outputdir}/${outfile}"
+ pagereset
+ pageread "$meta"
+ pagecontent > "${outputdir}/${outfile}"
# index / posts item: append.
contentindex="${contentindex}$(cat <<!__EOF__
@@ -219,7 +235,7 @@ $(find "${pagesdir}" -type f -name "*.sh" | sort -rn)
# standard manner).
# index page.
-page_reset
+pagereset
title="Posts"
(pageheader
cat <<!__EOF__
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.