From 3ad6bd151364a3278618e3a26e21918d17680d24 Mon Sep 17 00:00:00 2001 From: Volpeon Date: Sun, 10 Jan 2021 13:24:21 +0100 Subject: Moved output filename handling into Pandoc filter, implemented path rewriting --- scripts/build_content.sh | 73 +++++++++++++++++------------------------------- 1 file changed, 26 insertions(+), 47 deletions(-) (limited to 'scripts/build_content.sh') diff --git a/scripts/build_content.sh b/scripts/build_content.sh index 63bc525..97f57a3 100755 --- a/scripts/build_content.sh +++ b/scripts/build_content.sh @@ -26,29 +26,16 @@ FILTERS=$(get_filters) get_filename_out() { local filename=$1 filename=${filename#"$CONTENT_DIR"} - if [ "${filename##*.}" = "md" ]; then - filename="${filename%.md}.html" - fi - if [ "${filename##*/}" != "index.html" ]; then - filename="${filename%.html}/index.html" - fi echo "$OUTPUT_DIR$filename" } get_metadata() { - local file_out=$(get_filename_out "$1") - local base_file_out="$2" - - if [ -z "$2" ]; then - base_file_out="$file_out" - fi - pandoc "$1" \ -f markdown \ -t plain \ + --metadata content_dir="$CONTENT_DIR" \ --metadata output_dir="$OUTPUT_DIR" \ - --metadata base_file_out="$base_file_out" \ - --metadata file_out="$file_out" \ + --metadata file_in="$1" \ --metadata-file metadata/metadata.yaml \ --no-highlight \ --template scripts/metadata_tpl.json \ @@ -56,19 +43,12 @@ get_metadata() { } get_content() { - local file_out=$(get_filename_out "$1") - local base_file_out="$2" - - if [ -z "$2" ]; then - base_file_out="$file_out" - fi - pandoc "$1" \ -f markdown \ -t markdown \ + --metadata content_dir="$CONTENT_DIR" \ --metadata output_dir="$OUTPUT_DIR" \ - --metadata base_file_out="$base_file_out" \ - --metadata file_out="$file_out" \ + --metadata file_in="$1" \ --metadata-file metadata/metadata.yaml \ --no-highlight \ --lua-filter scripts/metadata_filter.lua @@ -84,9 +64,7 @@ get_subpages_basedir() { } get_subpages_metadata() { - local base_file_in=$1 - local base_file_out=$2 - local base_dir_in=$(get_subpages_basedir "$base_file_in") + local base_dir_in=$(get_subpages_basedir "$1") local child_pages=() if [ -d "$base_dir_in" ]; then @@ -103,10 +81,10 @@ get_subpages_metadata() { local pages="[]" for file_in in "${child_pages[@]}"; do - local content=$(get_content "$file_in" "$base_file_out" | sed -z 's/\\/\\\\/g;s/\n/\\n/g;s/"/\"/g') + local content=$(get_content "$file_in" | sed -z 's/\\/\\\\/g;s/\n/\\n/g;s/"/\"/g') - local metadata=$(get_metadata "$file_in" "$base_file_out" | jq "{ \ - url: .url, \ + local metadata=$(get_metadata "$file_in" | jq "{ \ + file_out: .file_out, \ author: .author, \ title: .title, \ date: .date, \ @@ -122,19 +100,18 @@ get_subpages_metadata() { } handle () { - local file_out=$(get_filename_out "$1") + if [ "${1#*.}" = "md" ]; then + local included_metadata=$(get_metadata "$1") + local file_out=$(echo "$included_metadata" | jq -r .file_out) + local create_feed=$(echo "$included_metadata" | jq -r .create_feed) - mkdir -p $(dirname "$file_out") + mkdir -p $(dirname "$file_out") - if [ "${1#*.}" = "md" ]; then echo -e "\033[0;32m[COMPILE ]\033[0m $1 -> $file_out" - echo -e "\033[0;90m[COMPILE ]\033[0m Getting metadata" - - local included_metadata=$(get_metadata "$1") - local added_metadata=$(get_subpages_metadata "$1" "$file_out") + echo -e "\033[0;90m[COMPILE ]\033[0m Getting subpages" - local create_feed=$(echo "$included_metadata" | jq -r .create_feed) + local added_metadata=$(get_subpages_metadata "$1") local meta_file=$(mktemp) @@ -143,16 +120,15 @@ handle () { if [ "$create_feed" = "true" ]; then echo -e "\033[0;90m[COMPILE ]\033[0m Creating feed" - local feed_file_out="${file_out%.html}.xml" - pandoc "$1" \ -f markdown \ -t html5 \ --no-highlight \ --template "${TEMPLATES_DIR}feed.xml" \ - -o "$feed_file_out" \ + -o "${file_out%.html}.xml" \ + --metadata content_dir="$CONTENT_DIR" \ --metadata output_dir="$OUTPUT_DIR" \ - --metadata file_out="$feed_file_out" \ + --metadata file_in="$1" \ --metadata page_type=feed \ --metadata-file metadata/metadata.yaml \ --metadata-file "$meta_file" \ @@ -167,8 +143,9 @@ handle () { --no-highlight \ --template "${TEMPLATES_DIR}base.html" \ -o "$file_out" \ + --metadata content_dir="$CONTENT_DIR" \ --metadata output_dir="$OUTPUT_DIR" \ - --metadata file_out="$file_out" \ + --metadata file_in="$1" \ --metadata-file metadata/metadata.yaml \ --metadata-file "$meta_file" \ --lua-filter scripts/metadata_filter.lua \ @@ -179,8 +156,9 @@ handle () { # -t plain \ # --no-highlight \ # --template scripts/metadata_tpl.json \ + # --metadata content_dir="$CONTENT_DIR" \ # --metadata output_dir="$OUTPUT_DIR" \ - # --metadata file_out="$file_out" \ + # --metadata file_in="$1" \ # --metadata-file metadata/metadata.yaml \ # --metadata-file "$meta_file" \ # --lua-filter scripts/metadata_filter.lua \ @@ -188,11 +166,12 @@ handle () { rm "$meta_file" - # echo "$included_metadata" - # echo "$added_metadata" - echo -e "\033[0;90m[COMPILE ]\033[0m Done" else + local file_out=$(get_filename_out "$1") + + mkdir -p $(dirname "$file_out") + echo -e "\033[0;32m[COPY ]\033[0m $1 -> $file_out" cp "$1" "$file_out" -- cgit v1.2.3-54-g00ecf