96 lines
4.2 KiB
Bash
96 lines
4.2 KiB
Bash
#!/bin/bash
|
|
#############
|
|
# DESCRIPTION
|
|
#############
|
|
# Pulls all the Arise-specific metadata from the header of a given page.
|
|
#
|
|
# This function is meant to be run inline before other functions so that it can populate the information other functions need to operate upon.
|
|
#
|
|
#############
|
|
# Usage:
|
|
# get_page_metadata source.md
|
|
|
|
get_page_metadata() {
|
|
if [[ -e $1 ]]; then
|
|
metadata=$(sed -e '/END ARISE/,$d' < $1)
|
|
|
|
# Main page metadata
|
|
title="$(grep "Title::" <<< $metadata)" # Grab the line with the metadata we want
|
|
title="${title%\"}" # Remove the trailing quote at the end
|
|
title="${title#Title:: }" # Remove the name of the metadata variable from the start
|
|
title="${title#\"}" # Remove the quote at the start of the parsed variable
|
|
|
|
author="$(grep "Author::" <<< $metadata)"
|
|
author="${author%\"}"
|
|
author="${author#Author:: }"
|
|
author="${author#\"}"
|
|
|
|
description="$(grep "Description::" <<< $metadata)"
|
|
description="${description%\"}"
|
|
description="${description#Description:: }"
|
|
description="${description#\"}"
|
|
|
|
language="$(grep "Language::" <<< $metadata)"
|
|
language="${language%\"}"
|
|
language="${language#Language:: }"
|
|
language="${language#\"}"
|
|
|
|
thumbnail="$(grep "Thumbnail::" <<< $metadata)"
|
|
thumbnail="${thumbnail%\"}"
|
|
thumbnail="${thumbnail#Thumbnail:: }"
|
|
thumbnail="${thumbnail#\"}"
|
|
|
|
published_date="$(grep "Published Date::" <<< $metadata)"
|
|
published_date="${published_date%\"}"
|
|
published_date="${published_date#Published Date:: }"
|
|
published_date="${published_date#\"}"
|
|
|
|
modified_date="$(grep "Modified Date::" <<< $metadata)"
|
|
modified_date="${modified_date%\"}"
|
|
modified_date="${modified_date#Modified Date:: }"
|
|
modified_date="${modified_date#\"}"
|
|
|
|
# Clean metadata of XML special characters so we don't break the sitemap or RSS feed
|
|
title="$(clean_xml_string "$title")"
|
|
author="$(clean_xml_string "$author")"
|
|
description="$(clean_xml_string "$description")"
|
|
language="$(clean_xml_string "$language")"
|
|
thumbnail="$(clean_xml_string "$thumbnail")"
|
|
published_date="$(clean_xml_string "$published_date")"
|
|
modified_date="$(clean_xml_string "$modified_date")"
|
|
|
|
# Optional page settings with default settings
|
|
|
|
# is_toc default: false
|
|
is_toc=$(grep "toc::" <<< $metadata | cut -d '"' -f2)
|
|
if [[ $is_toc != "true" ]]; then
|
|
is_toc="false"
|
|
fi
|
|
|
|
# process_markdown default: true
|
|
process_markdown=$(grep "process_markdown::" <<< $metadata | cut -d '"' -f2)
|
|
if [[ $process_markdown != "false" ]]; then
|
|
process_markdown="true"
|
|
fi
|
|
|
|
# content_header default: true
|
|
content_header=$(grep "content_header::" <<< $metadata | cut -d '"' -f2)
|
|
if [[ $content_header != "false" ]]; then
|
|
content_header="true"
|
|
fi
|
|
|
|
# rss_hide default: false
|
|
rss_hide=$(grep "rss_hide::" <<< $metadata | cut -d '"' -f2)
|
|
if [[ $rss_hide != "true" ]]; then
|
|
rss_hide="false"
|
|
fi
|
|
|
|
# URL
|
|
relative_url="$(realpath $(dirname $1) | sed 's@.*arise-out@@g')"'/'
|
|
canonical_url="$base_url""$relative_url"
|
|
else
|
|
# Clear out metadata so that anything calling this function expecting to get new data cannot get old values on accident if the requested file does not exist.
|
|
clear_metadata
|
|
fi
|
|
|
|
}
|