38 lines
2 KiB
Bash
38 lines
2 KiB
Bash
#!/bin/bash
|
|
#############
|
|
# DESCRIPTION
|
|
#############
|
|
# Builds the page header
|
|
#
|
|
# This function assumes that metadata has already been fetched in the current subshell. If no metadata is present, it will do nothing.
|
|
#
|
|
#############
|
|
# Usage:
|
|
# build_header destination.html
|
|
|
|
build_header() {
|
|
# Verify that metadata variables are populated before running.
|
|
[[ $title != '' ]] && {
|
|
cat $config/header.html > $1
|
|
|
|
# If enabled (default:true), add a configurable content header after the metadata header. The purpose of this is to enable a standardised header for stuff like post dates that should be on *most* pages, but can be disabled on pages the user considers special and wants to build out completely on their own.
|
|
[[ $content_header == "true" ]] && cat $config/content_header.html >> $1
|
|
|
|
# Replace all tags in {{this format}} with their value. We do this using Bash pattern replacement.
|
|
page_contents="$(cat $1)"
|
|
|
|
page_contents="${page_contents//\{\{title\}\}/"$title"}"
|
|
page_contents="${page_contents//\{\{author\}\}/"$author"}"
|
|
page_contents="${page_contents//\{\{description\}\}/"$description"}"
|
|
page_contents="${page_contents//\{\{language\}\}/"$language"}"
|
|
page_contents="${page_contents//\{\{thumbnail\}\}/"$thumbnail"}"
|
|
page_contents="${page_contents//\{\{published_date\}\}/"$published_date"}"
|
|
page_contents="${page_contents//\{\{modified_date\}\}/"$modified_date"}"
|
|
page_contents="${page_contents//\{\{canonical_url\}\}/"$canonical_url"}"
|
|
page_contents="${page_contents//\{\{base_url\}\}/"$base_url"}"
|
|
page_contents="${page_contents//\{\{global_name\}\}/"$global_name"}"
|
|
|
|
echo "$page_contents" > $1
|
|
page_contents=""
|
|
}
|
|
}
|