|
|
|
|
@@ -6,7 +6,7 @@ die() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
usage() {
|
|
|
|
|
invoked_as="${KEWT_INVOKED_AS:-$0}"
|
|
|
|
|
invoked_as=$(basename "${KEWT_INVOKED_AS:-$0}")
|
|
|
|
|
cat <<EOF
|
|
|
|
|
Usage: $invoked_as [--from <src>] [--to <out>]
|
|
|
|
|
$invoked_as [src] [out]
|
|
|
|
|
@@ -46,6 +46,9 @@ display_logo = false
|
|
|
|
|
display_title = true
|
|
|
|
|
logo_as_favicon = true
|
|
|
|
|
favicon = ""
|
|
|
|
|
generate_page_title = true
|
|
|
|
|
error_page = "not_found.html"
|
|
|
|
|
versioning = false
|
|
|
|
|
EOF
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
@@ -155,7 +158,14 @@ ensure_root_defaults
|
|
|
|
|
src="${src%/}"
|
|
|
|
|
out="${out%/}"
|
|
|
|
|
|
|
|
|
|
[ -d "$src" ] || die "Source directory '$src' does not exist."
|
|
|
|
|
if [ ! -d "$src" ]; then
|
|
|
|
|
if [ "$src" = "site" ]; then
|
|
|
|
|
usage
|
|
|
|
|
exit 1
|
|
|
|
|
else
|
|
|
|
|
die "Source directory '$src' does not exist."
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
IGNORE_ARGS="-name '.kewtignore' -o -path '$src/.*'"
|
|
|
|
|
|
|
|
|
|
@@ -269,6 +279,9 @@ display_logo="false"
|
|
|
|
|
display_title="true"
|
|
|
|
|
logo_as_favicon="true"
|
|
|
|
|
favicon=""
|
|
|
|
|
generate_page_title="true"
|
|
|
|
|
error_page="not_found.html"
|
|
|
|
|
versioning="false"
|
|
|
|
|
|
|
|
|
|
load_config() {
|
|
|
|
|
[ -f "$1" ] || return
|
|
|
|
|
@@ -306,6 +319,9 @@ load_config() {
|
|
|
|
|
display_title) display_title="$val" ;;
|
|
|
|
|
logo_as_favicon) logo_as_favicon="$val" ;;
|
|
|
|
|
favicon) favicon="$val" ;;
|
|
|
|
|
generate_page_title) generate_page_title="$val" ;;
|
|
|
|
|
error_page) error_page="$val" ;;
|
|
|
|
|
versioning) versioning="$val" ;;
|
|
|
|
|
esac
|
|
|
|
|
done < "$1"
|
|
|
|
|
}
|
|
|
|
|
@@ -313,6 +329,11 @@ load_config() {
|
|
|
|
|
load_config "./site.conf"
|
|
|
|
|
load_config "$src/site.conf"
|
|
|
|
|
|
|
|
|
|
asset_version=""
|
|
|
|
|
if [ "$versioning" = "true" ]; then
|
|
|
|
|
asset_version="?v=$(date +%s)"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
escape_html_text() {
|
|
|
|
|
printf '%s' "$1" | sed \
|
|
|
|
|
-e 's/&/\&/g' \
|
|
|
|
|
@@ -462,7 +483,21 @@ render_markdown() {
|
|
|
|
|
head_extra="<link rel=\"icon\" href=\"$favicon_src\" />"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
MARKDOWN_SITE_ROOT="$src" MARKDOWN_FALLBACK_FILE="$script_dir/styles/$style.css" sh "$script_dir/markdown.sh" "$file" | awk -v title="$title" -v nav="$nav" -v footer="$footer" -v style_path="$style_path" -v header_brand="$header_brand" -v head_extra="$head_extra" -f "$awk_dir/render_template.awk" "$local_template"
|
|
|
|
|
page_title="$title"
|
|
|
|
|
if [ "$generate_page_title" = "true" ] && [ -n "$file" ] && [ -f "$file" ]; then
|
|
|
|
|
first_heading=$(grep -m 1 '^# ' "$file" | sed 's/^# *//; s/ *$//')
|
|
|
|
|
if [ -n "$first_heading" ]; then
|
|
|
|
|
page_title="$first_heading - $title"
|
|
|
|
|
else
|
|
|
|
|
basename_no_ext=$(basename "$file" .md)
|
|
|
|
|
if [ "$basename_no_ext" != "index" ] && [ "$basename_no_ext" != "404_gen" ]; then
|
|
|
|
|
cap_basename=$(echo "$basename_no_ext" | awk '{print toupper(substr($0,1,1)) substr($0,2)}')
|
|
|
|
|
page_title="$cap_basename - $title"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
MARKDOWN_SITE_ROOT="$src" MARKDOWN_FALLBACK_FILE="$script_dir/styles/$style.css" sh "$script_dir/markdown.sh" "$file" | awk -v title="$page_title" -v nav="$nav" -v footer="$footer" -v style_path="${style_path}${asset_version}" -v header_brand="$header_brand" -v head_extra="$head_extra" -f "$awk_dir/render_template.awk" "$local_template"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
echo "Building site from '$src' to '$out'..."
|
|
|
|
|
@@ -547,5 +582,13 @@ eval "find \"$src\" \( $IGNORE_ARGS \) -prune -o -type f -print" | sort | while
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
if [ -n "$error_page" ] && [ ! -f "$out/$error_page" ]; then
|
|
|
|
|
temp_404="$KEWT_TMPDIR/404_gen.md"
|
|
|
|
|
echo "# 404 - Not Found" > "$temp_404"
|
|
|
|
|
echo "" >> "$temp_404"
|
|
|
|
|
echo "The requested page could not be found." >> "$temp_404"
|
|
|
|
|
render_markdown "$temp_404" > "$out/$error_page"
|
|
|
|
|
rm -f "$temp_404"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "Build complete."
|
|
|
|
|
|