summaryrefslogtreecommitdiffstats
path: root/scripts/build_content.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build_content.sh')
-rwxr-xr-xscripts/build_content.sh50
1 files changed, 47 insertions, 3 deletions
diff --git a/scripts/build_content.sh b/scripts/build_content.sh
index b7d0c24..5b4bb85 100755
--- a/scripts/build_content.sh
+++ b/scripts/build_content.sh
@@ -1,6 +1,7 @@
1#!/bin/bash 1#!/bin/bash
2 2
3CONTENT_DIR="content/" 3CONTENT_DIR="content/"
4TEMPLATES_DIR="templates/"
4OUTPUT_DIR="output/" 5OUTPUT_DIR="output/"
5 6
6target_filename () { 7target_filename () {
@@ -23,6 +24,22 @@ target_url_rel () {
23 echo "$filename" 24 echo "$filename"
24} 25}
25 26
27target_url_abs () {
28 url=$(target_url_rel "$CONTENT_DIR" "$1")
29 echo "/$url"
30}
31
32get_section() {
33 filename=$1
34 filename=${filename#"$CONTENT_DIR"}
35 filename=${filename%.md}
36 filename=$(echo "$filename" | cut -f1 -d /)
37 if [ "$filename" = "index.md" ]; then
38 filename="home"
39 fi
40 echo "$filename"
41}
42
26get_subpages_basedir() { 43get_subpages_basedir() {
27 filename=$1 44 filename=$1
28 if [ "${filename##*/}" = "index.md" ]; then 45 if [ "${filename##*/}" = "index.md" ]; then
@@ -55,20 +72,45 @@ get_subpages() {
55 if [ ${#child_pages[@]} -ne 0 ]; then 72 if [ ${#child_pages[@]} -ne 0 ]; then
56 echo -e "\033[0;90m[////////]\033[0m Child pages:" 73 echo -e "\033[0;90m[////////]\033[0m Child pages:"
57 74
75 collected_metadata="[]"
76
58 for file in "${child_pages[@]}"; do 77 for file in "${child_pages[@]}"; do
59 link=$(target_url_rel "$basedir" "$file") 78 echo -e "\033[0;90m[////////]\033[0m - $file"
60 echo -e "\033[0;90m[////////]\033[0m - $file -> rel. URL: $link" 79
80 url_rel=$(target_url_rel "$basedir" "$file")
81 url_abs=$(target_url_abs "$file")
82
83 metadata=$(pandoc "$file" \
84 -f markdown \
85 -t plain \
86 --template scripts/metadata_tpl.json)
87
88 metadata=$(echo "$metadata" | jq ". + { url_rel: \"$url_rel\", url_abs: \"$url_abs\" }")
89
90 collected_metadata=$(echo "$collected_metadata" | jq ". + [ $metadata ]")
61 done 91 done
92
93 collected_metadata=$(echo "$collected_metadata" | jq "sort_by(.date)")
94
95 echo "$collected_metadata"
62 fi 96 fi
63} 97}
64 98
65handle () { 99handle () {
66 target=$(target_filename "$1") 100 target=$(target_filename "$1")
101
67 mkdir -p $(dirname "$target") 102 mkdir -p $(dirname "$target")
68 103
69 if [ "${1#*.}" = "md" ]; then 104 if [ "${1#*.}" = "md" ]; then
70 echo -e "\033[0;32m[COMPILE ]\033[0m $1 -> $target" 105 echo -e "\033[0;32m[COMPILE ]\033[0m $1 -> $target"
71 106
107 is_home=false
108 section=$(get_section "$1")
109
110 if [ "$target" = "${OUTPUT_DIR}index.html" ]; then
111 is_home=true
112 fi
113
72 subpages_meta=$(mktemp) 114 subpages_meta=$(mktemp)
73 115
74 # $(get_subpages "$1") > "$subpages_meta" 116 # $(get_subpages "$1") > "$subpages_meta"
@@ -78,8 +120,10 @@ handle () {
78 pandoc "$1" \ 120 pandoc "$1" \
79 -f markdown \ 121 -f markdown \
80 -t html5 \ 122 -t html5 \
81 --template templates/base.html \ 123 --template "${TEMPLATES_DIR}base.html" \
82 -o "$target" \ 124 -o "$target" \
125 --metadata isHome=$is_home \
126 --metadata section=$section \
83 --metadata-file metadata/metadata.yaml \ 127 --metadata-file metadata/metadata.yaml \
84 --metadata-file "$subpages_meta" 128 --metadata-file "$subpages_meta"
85 129