aboutsummaryrefslogtreecommitdiffstats
path: root/bin/ssg-template
diff options
context:
space:
mode:
Diffstat (limited to 'bin/ssg-template')
-rw-r--r--bin/ssg-template194
1 files changed, 0 insertions, 194 deletions
diff --git a/bin/ssg-template b/bin/ssg-template
deleted file mode 100644
index eacf2ae..0000000
--- a/bin/ssg-template
+++ /dev/null
@@ -1,194 +0,0 @@
-#!/bin/sh
-
-SRC_FILE="${1}"
-
-_echo_ifset() {
- [ ! -z "${1}" ] && echo "${1}"
-}
-
-_get_value() {
- # 1: filename
- # 2: key
- # stdout: value
- local value
- local ret
-
- value=$(lowdown -T ms -X "${2}" "${1}" 2>/dev/null)
- ret="${?}"
-
- echo "${value:-${3}}"
-
- return "${ret}"
-}
-
-_get_value_date() {
- _get_value "${1}" "${2}" "1970-01-01"
-}
-
-_get_out_path() {
- # 1: filename
- # stdout: filename
- local path
-
- path=$(echo "${1}" | sed -e 's/^src/out/g' -e 's/.md$/.html/g' -e 's/_//g')
-
- if _get_value "${1}" "draft" >/dev/null; then
- path="$(dirname ${path})/$(echo ${path} | sha1).html"
- fi
-
- echo "${path}"
-}
-
-_get_final_path() {
- # 1: filename
- # stdout: filename
- _get_out_path "${1}" | sed 's/^out\///g'
-}
-
-_get_title() {
- # 1: filename
- local title
- local file_title
-
- file_title=$(basename "${1}" | sed 's/\..*//g' | tr - " ")
- title=$(_get_value "${1}" "title" "${file_title}")
-
- echo "${title}"
-}
-
-_get_date_human() {
- # 1: filename
- date -j -f "%Y-%m-%d" $(_get_value_date ${1} "date") +"%B %d, %Y"
-}
-
-_get_index_files() {
- # 1: filename
- local path
-
- path=$(_get_value "${1}" index)
- find "src/${path}" -mindepth 1 -maxdepth 1
-}
-
-_sort_index_per_date() {
- # 1: filename
- local files
- local file
- local date
-
- for file in $(_get_index_files "${1}"); do
- date=$(_get_value_date "${file}" "date")
- files="${files} ${date}@${file}"
- done
-
- echo ${files} | tr " " "\n" | sort -rn | cut -d "@" -f 2
-}
-
-_get_filetype() {
- # 1: filename
- local filetype
-
- filetype=$(ls -ld "${1}" | cut -c 1)
-
- case "${filetype}" in
- -)
- filetype="file"
- ;;
- d)
- filetype="directory"
- ;;
- esac
-
- echo "${filetype}"
-}
-
-_get_chapters() {
- # 1: filename
- grep "^#" "${1}" | sed 's/# /#_/g'
-}
-
-_get_chapter_title() {
- # 1: chapter
- echo "${1}" | sed -e 's/#_//' -e 's/#//g'
-}
-
-_parse_option() {
- # 1: metadata
- # 2: key
- echo "${metadata}" | grep "^${2}"
-}
-
-_cleanup_tmp_file() {
- [ -f "${1}" ] && rm "${1}"
-}
-
-_parse_metadata() {
- # 1: filename
- sed -n '/^$/q;p' "${file}" | grep "^.*: .*$"
-}
-
-_render_metadata() {
- # 1: filename
- # 2: output
- local key
- local value
- local title
-
- # _ENABLED_METADATA="date author"
- title=$(_get_value "${1}" "title")
-
- echo "<ul class=\"metadata\">"
- for key in ${_ENABLED_METADATA}; do
- value=$(lowdown -X "${key}" "${1}" 2>/dev/null)
- [ -z "${value}" ] && continue
-
- echo "<li>${key}: ${value}</li>"
- done
- echo "</ul>"
-
- if [ "${title}" ]; then
- echo "<h1>${title}</h1>"
- fi
-}
-
-_render_index() {
- # 1: filename
- # 2: out
- # 3: path
- local file
- local path
- local title
-
- echo "<ul class=\"index\">"
- for file in $(_sort_index_per_date "${1}"); do
- path=$(_get_final_path "${file}")
- [ "${path}" = "$(_get_final_path ${1})" ] && continue
- _get_value "${file}" "draft" >/dev/null && continue
-
- title=$(_get_value "${file}" "title" "$(_get_title ${file})")
-
- echo "<li>"
- if _get_value "${1}" "index_show_date" >/dev/null; then
- echo "<span>$(_get_date_human ${file})</span>"
- fi
- echo "<a href=\"${path}\">${title}</a>"
- echo "</li>"
- done
- echo "</ul>"
-}
-
-_render_toc() {
- local chapter
- local chapter_title
-
- echo "<ul class=\"toc\">"
- for chapter in $(_get_chapters "${1}"); do
- chapter_title=$(_get_chapter_title "${chapter}")
-
- cat <<-EOF
- <li>
- <a href=#${chapter_title}>${chapter_title}</a>
- </li>
- EOF
- done
- echo "</ul>"
-}
remember that computers suck.