diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/build_content.sh | 74 | ||||
| -rwxr-xr-x | scripts/watch_content.sh | 10 | ||||
| -rwxr-xr-x | scripts/watch_metadata.sh | 2 | ||||
| -rwxr-xr-x | scripts/watch_sass.sh | 2 | ||||
| -rwxr-xr-x | scripts/watch_templates.sh | 2 |
5 files changed, 69 insertions, 21 deletions
diff --git a/scripts/build_content.sh b/scripts/build_content.sh index 6b50cd8..1344be1 100755 --- a/scripts/build_content.sh +++ b/scripts/build_content.sh | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | 2 | ||
| 3 | target () { | 3 | target_filename () { |
| 4 | if [ "${1#*.}" = "md" ]; then | 4 | if [ "${1#*.}" = "md" ]; then |
| 5 | echo "output/$(echo "${1%.md}.html" | cut -sd / -f 2-)" | 5 | echo "output/$(echo "${1%.md}.html" | cut -sd / -f 2-)" |
| 6 | else | 6 | else |
| @@ -8,40 +8,88 @@ target () { | |||
| 8 | fi | 8 | fi |
| 9 | } | 9 | } |
| 10 | 10 | ||
| 11 | get_subpages_basedir() { | ||
| 12 | filename=$(basename "$1") | ||
| 13 | if [ "$filename" = "index.md" ]; then | ||
| 14 | dirname "$1" | ||
| 15 | else | ||
| 16 | echo "${1%.md}" | ||
| 17 | fi | ||
| 18 | } | ||
| 19 | |||
| 20 | get_subpages() { | ||
| 21 | basedir=$(get_subpages_basedir "$1") | ||
| 22 | child_pages=() | ||
| 23 | |||
| 24 | if [ -d "$basedir" ]; then | ||
| 25 | mapfile -d $'\0' child_pages_1 < <(find $basedir/ \ | ||
| 26 | -type f \ | ||
| 27 | -name "*.md" ! -name "index.md" \ | ||
| 28 | -maxdepth 1 \ | ||
| 29 | -print0) | ||
| 30 | |||
| 31 | mapfile -d $'\0' child_pages_2 < <(find $basedir/ \ | ||
| 32 | -type f \ | ||
| 33 | -name "index.md" \ | ||
| 34 | -mindepth 2 \ | ||
| 35 | -maxdepth 2 \ | ||
| 36 | -print0) | ||
| 37 | |||
| 38 | child_pages=("${child_pages_1[@]}" "${child_pages_2[@]}") | ||
| 39 | fi | ||
| 40 | |||
| 41 | if [ ${#child_pages[@]} -ne 0 ]; then | ||
| 42 | echo -e "\033[0;90m[////////]\033[0m Child pages:" | ||
| 43 | |||
| 44 | for file in "${child_pages[@]}"; do | ||
| 45 | echo -e "\033[0;90m[////////]\033[0m - $file" | ||
| 46 | done | ||
| 47 | fi | ||
| 48 | } | ||
| 49 | |||
| 11 | handle () { | 50 | handle () { |
| 12 | TARGET=$(target "$1") | 51 | target=$(target_filename "$1") |
| 13 | mkdir -p $(dirname "$TARGET") | 52 | mkdir -p $(dirname "$target") |
| 14 | 53 | ||
| 15 | if [ "${1#*.}" = "md" ]; then | 54 | if [ "${1#*.}" = "md" ]; then |
| 16 | echo -e "\033[0;32m[COMPILE ]\033[0m $1 -> $TARGET" | 55 | echo -e "\033[0;32m[COMPILE ]\033[0m $1 -> $target" |
| 56 | |||
| 57 | subpages_meta=$(mktemp) | ||
| 58 | |||
| 59 | # $(get_subpages "$1") > "$subpages_meta" | ||
| 60 | |||
| 61 | get_subpages "$1" | ||
| 17 | 62 | ||
| 18 | pandoc "$1" \ | 63 | pandoc "$1" \ |
| 19 | -f markdown \ | 64 | -f markdown \ |
| 20 | -t html5 \ | 65 | -t html5 \ |
| 21 | --template templates/base.html \ | 66 | --template templates/base.html \ |
| 22 | -o "$TARGET" \ | 67 | -o "$target" \ |
| 23 | --metadata-file metadata/metadata.json | 68 | --metadata-file metadata/metadata.yaml \ |
| 69 | --metadata-file "$subpages_meta" | ||
| 70 | |||
| 71 | rm "$subpages_meta" | ||
| 24 | else | 72 | else |
| 25 | echo -e "\033[0;32m[COPY ]\033[0m $1 -> $TARGET" | 73 | echo -e "\033[0;32m[COPY ]\033[0m $1 -> $target" |
| 26 | 74 | ||
| 27 | cp "$1" "$TARGET" | 75 | cp "$1" "$target" |
| 28 | fi | 76 | fi |
| 29 | } | 77 | } |
| 30 | 78 | ||
| 31 | if [ -z "$1" ]; then | 79 | if [ -z "$1" ]; then |
| 32 | find content/ \ | 80 | find content/ \ |
| 33 | -type f \ | 81 | -type f \ |
| 34 | | while read FILE | 82 | | while read file |
| 35 | do | 83 | do |
| 36 | handle "$FILE" | 84 | handle "$file" |
| 37 | done | 85 | done |
| 38 | elif [ "$1" = "all_md" ]; then | 86 | elif [ "$1" = "all_md" ]; then |
| 39 | find content/ \ | 87 | find content/ \ |
| 40 | -type f \ | 88 | -type f \ |
| 41 | -name "*.md" \ | 89 | -name "*.md" \ |
| 42 | | while read FILE | 90 | | while read file |
| 43 | do | 91 | do |
| 44 | handle "$FILE" | 92 | handle "$file" |
| 45 | done | 93 | done |
| 46 | elif [ "$1" = "single" ]; then | 94 | elif [ "$1" = "single" ]; then |
| 47 | if [ -z "$2" ]; then | 95 | if [ -z "$2" ]; then |
| @@ -53,7 +101,7 @@ elif [ "$1" = "delete" ]; then | |||
| 53 | if [ -z "$2" ]; then | 101 | if [ -z "$2" ]; then |
| 54 | echo -e "\033[0;31m[ERROR ]\033[0m \"delete\" operation requires file argument" | 102 | echo -e "\033[0;31m[ERROR ]\033[0m \"delete\" operation requires file argument" |
| 55 | else | 103 | else |
| 56 | TARGET=$(target "$2") | 104 | TARGET=$(target_filename "$2") |
| 57 | echo -e "\033[0;32m[DELETE ]\033[0m $2 -> $TARGET" | 105 | echo -e "\033[0;32m[DELETE ]\033[0m $2 -> $TARGET" |
| 58 | rm -rf $TARGET | 106 | rm -rf $TARGET |
| 59 | fi | 107 | fi |
diff --git a/scripts/watch_content.sh b/scripts/watch_content.sh index 769f2c5..f0d1b42 100755 --- a/scripts/watch_content.sh +++ b/scripts/watch_content.sh | |||
| @@ -1,11 +1,11 @@ | |||
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | 2 | ||
| 3 | inotifywait -qrme close_write,delete,move --format "%w%f" content \ | 3 | inotifywait -qrme close_write,delete,move --format "%w%f" content \ |
| 4 | | while read FILENAME | 4 | | while read file |
| 5 | do | 5 | do |
| 6 | if [ -f "$FILENAME" ]; then | 6 | if [ -f "$file" ]; then |
| 7 | scripts/build_content.sh "single" "$FILENAME" | 7 | scripts/build_content.sh "single" "$file" |
| 8 | elif [ ! -d "$FILENAME" ]; then | 8 | elif [ ! -d "$file" ]; then |
| 9 | scripts/build_content.sh "delete" "$FILENAME" | 9 | scripts/build_content.sh "delete" "$file" |
| 10 | fi | 10 | fi |
| 11 | done | 11 | done |
diff --git a/scripts/watch_metadata.sh b/scripts/watch_metadata.sh index 41457e1..780177e 100755 --- a/scripts/watch_metadata.sh +++ b/scripts/watch_metadata.sh | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | 2 | ||
| 3 | inotifywait -qrme close_write,delete,move --format "%w%f" metadata \ | 3 | inotifywait -qrme close_write,delete,move --format "%w%f" metadata \ |
| 4 | | while read FILENAME | 4 | | while read file |
| 5 | do | 5 | do |
| 6 | scripts/build_content.sh "all_md" | 6 | scripts/build_content.sh "all_md" |
| 7 | done | 7 | done |
diff --git a/scripts/watch_sass.sh b/scripts/watch_sass.sh index a5649e7..d451135 100755 --- a/scripts/watch_sass.sh +++ b/scripts/watch_sass.sh | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | 2 | ||
| 3 | inotifywait -qrme close_write,delete,move --format "%w%f" assets \ | 3 | inotifywait -qrme close_write,delete,move --format "%w%f" assets \ |
| 4 | | while read FILENAME | 4 | | while read file |
| 5 | do | 5 | do |
| 6 | scripts/build_sass.sh | 6 | scripts/build_sass.sh |
| 7 | done | 7 | done |
diff --git a/scripts/watch_templates.sh b/scripts/watch_templates.sh index 3482ac6..9b464d4 100755 --- a/scripts/watch_templates.sh +++ b/scripts/watch_templates.sh | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | 2 | ||
| 3 | inotifywait -qrme close_write,delete,move --format "%w%f" templates \ | 3 | inotifywait -qrme close_write,delete,move --format "%w%f" templates \ |
| 4 | | while read FILENAME | 4 | | while read file |
| 5 | do | 5 | do |
| 6 | scripts/build_content.sh "all_md" | 6 | scripts/build_content.sh "all_md" |
| 7 | done | 7 | done |
