From c5a935587111533f7f4b4521b750ec326ad9aac6 Mon Sep 17 00:00:00 2001 From: "N0\\A" Date: Thu, 19 Mar 2026 21:45:38 +0100 Subject: [PATCH] fix: config slashes --- awk/collect_dir_info.awk | 1 + awk/generate_sidebar.awk | 7 +++++++ awk/render_template.awk | 7 +++++++ awk/update_site_conf.awk | 5 ++++- kewt.sh | 20 ++++++++++---------- 5 files changed, 29 insertions(+), 11 deletions(-) diff --git a/awk/collect_dir_info.awk b/awk/collect_dir_info.awk index 0f4ec58..1f0850e 100644 --- a/awk/collect_dir_info.awk +++ b/awk/collect_dir_info.awk @@ -1,4 +1,5 @@ BEGIN { + src = ENVIRON["AWK_SRC"] slen = length(src) } diff --git a/awk/generate_sidebar.awk b/awk/generate_sidebar.awk index ee9bead..20b575a 100644 --- a/awk/generate_sidebar.awk +++ b/awk/generate_sidebar.awk @@ -33,6 +33,13 @@ function compare_paths(p1, p2, parts1, parts2, n1, n2, i, name1, name2, lname } BEGIN { + src = ENVIRON["AWK_SRC"] + single_file_index = ENVIRON["AWK_SINGLE_FILE_INDEX"] + flatten = ENVIRON["AWK_FLATTEN"] + order = ENVIRON["AWK_ORDER"] + home_name = ENVIRON["AWK_HOME_NAME"] + show_home_in_nav = ENVIRON["AWK_SHOW_HOME_IN_NAV"] + dinfo = ENVIRON["AWK_DINFO"] n_dlines = split(dinfo, dlines, "\n") for (i = 1; i <= n_dlines; i++) { if (split(dlines[i], dparts, "|") == 3) { diff --git a/awk/render_template.awk b/awk/render_template.awk index ca103d9..b91b233 100644 --- a/awk/render_template.awk +++ b/awk/render_template.awk @@ -9,6 +9,13 @@ function replace_all(text, token, value, pos, token_len, res) { } BEGIN { + current_url = ENVIRON["AWK_CURRENT_URL"] + nav = ENVIRON["AWK_NAV"] + title = ENVIRON["AWK_TITLE"] + footer = ENVIRON["AWK_FOOTER"] + style_path = ENVIRON["AWK_STYLE_PATH"] + head_extra = ENVIRON["AWK_HEAD_EXTRA"] + header_brand = ENVIRON["AWK_HEADER_BRAND"] if (current_url != "") { nav = replace_all(nav, "href=\"" current_url "\"", "href=\"" current_url "\" class=\"current-page\"") } diff --git a/awk/update_site_conf.awk b/awk/update_site_conf.awk index 9bd31e8..1e159b5 100644 --- a/awk/update_site_conf.awk +++ b/awk/update_site_conf.awk @@ -1,4 +1,7 @@ -BEGIN { done = 0 } +BEGIN { + new_title = ENVIRON["AWK_NEW_TITLE"] + done = 0 +} /^title[[:space:]]*=/ { print "title = \"" new_title "\"" done = 1 diff --git a/kewt.sh b/kewt.sh index a99a20a..d83b3a2 100755 --- a/kewt.sh +++ b/kewt.sh @@ -105,7 +105,7 @@ create_new_site() { printf "# _kewt_ website\n" > "$new_dir/index.md" if [ -n "$new_title" ]; then - awk -v new_title="$new_title" -f "$awk_dir/update_site_conf.awk" "$new_dir/site.conf" > "$new_dir/site.conf.tmp" && mv "$new_dir/site.conf.tmp" "$new_dir/site.conf" + AWK_NEW_TITLE="$new_title" awk -f "$awk_dir/update_site_conf.awk" "$new_dir/site.conf" > "$new_dir/site.conf.tmp" && mv "$new_dir/site.conf.tmp" "$new_dir/site.conf" fi echo "Created new site at '$new_dir'." @@ -421,12 +421,12 @@ done < "$KEWT_TMPDIR/kewt_preserve" rm -f "$KEWT_TMPDIR/kewt_preserve" generate_nav() { - dinfo=$(eval "find \"$1\" \( $IGNORE_ARGS -o $HIDE_ARGS -o $PRESERVE_ARGS \) -prune -o -print" | sort | awk -v src="$1" -f "$awk_dir/collect_dir_info.awk") + dinfo=$(eval "find \"$1\" \( $IGNORE_ARGS -o $HIDE_ARGS -o $PRESERVE_ARGS \) -prune -o -print" | sort | AWK_SRC="$1" awk -f "$awk_dir/collect_dir_info.awk") find_cmd="find \"$1\" \( $IGNORE_ARGS -o $HIDE_ARGS -o $PRESERVE_ARGS \) -prune -o -name \"*.md\" -print" if [ -n "$posts_dir" ] && [ -d "$1/$posts_dir" ]; then find_cmd="$find_cmd && echo \"$1/$posts_dir/index.md\"" fi - eval "$find_cmd" | sort -u | awk -v src="$1" -v single_file_index="$single_file_index" -v flatten="$flatten" -v order="$order" -v home_name="$home_name" -v show_home_in_nav="$show_home_in_nav" -v dinfo="$dinfo" -f "$awk_dir/generate_sidebar.awk" + eval "$find_cmd" | sort -u | AWK_SRC="$1" AWK_SINGLE_FILE_INDEX="$single_file_index" AWK_FLATTEN="$flatten" AWK_ORDER="$order" AWK_HOME_NAME="$home_name" AWK_SHOW_HOME_IN_NAV="$show_home_in_nav" AWK_DINFO="$dinfo" awk -f "$awk_dir/generate_sidebar.awk" } title="kewt" @@ -482,7 +482,7 @@ load_config() { case "$key" in title) title="$val" ;; - style) style="$val" ;; + style) style="${val#/}" ;; dir_indexes) dir_indexes="$val" ;; single_file_index) single_file_index="$val" ;; flatten) flatten="$val" ;; @@ -492,19 +492,19 @@ load_config() { nav_links) nav_links="$val" ;; nav_extra) nav_extra="$val" ;; footer) footer="$val" ;; - logo) logo="$val" ;; + logo) logo="${val#/}" ;; display_logo) display_logo="$val" ;; display_title) display_title="$val" ;; logo_as_favicon) logo_as_favicon="$val" ;; - favicon) favicon="$val" ;; + favicon) favicon="${val#/}" ;; generate_page_title) generate_page_title="$val" ;; - error_page) error_page="$val" ;; + error_page) error_page="${val#/}" ;; versioning) versioning="$val" ;; enable_header_links) enable_header_links="$val" ;; base_url) base_url="$val" ;; generate_feed) generate_feed="$val" ;; - feed_file) feed_file="$val" ;; - posts_dir) posts_dir="$val" ;; + feed_file) feed_file="${val#/}" ;; + posts_dir) posts_dir="${val#/}" ;; esac done < "$1" } @@ -715,7 +715,7 @@ render_markdown() { fi fi - ENABLE_HEADER_LINKS="$enable_header_links" MARKDOWN_SITE_ROOT="$src" MARKDOWN_FALLBACK_FILE="$script_dir/styles/$style.css" sh "$script_dir/markdown.sh" "$content_file" | awk -v current_url="$current_url" -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" + ENABLE_HEADER_LINKS="$enable_header_links" MARKDOWN_SITE_ROOT="$src" MARKDOWN_FALLBACK_FILE="$script_dir/styles/$style.css" sh "$script_dir/markdown.sh" "$content_file" | AWK_CURRENT_URL="$current_url" AWK_TITLE="$page_title" AWK_NAV="$nav" AWK_FOOTER="$footer" AWK_STYLE_PATH="${style_path}${asset_version}" AWK_HEADER_BRAND="$header_brand" AWK_HEAD_EXTRA="$head_extra" awk -f "$awk_dir/render_template.awk" "$local_template" } echo "Building site from '$src' to '$out'..."