diff --git a/awk/fenced_code.awk b/awk/fenced_code.awk index eaef47f..6a866ea 100644 --- a/awk/fenced_code.awk +++ b/awk/fenced_code.awk @@ -11,6 +11,7 @@ BEGIN { in_fence = 0; first_line = 0 } next } if (in_fence) { + gsub(/&/, "\\&"); gsub(//, "\\>") if (first_line) { first_line = 0 if ($0 == "") next diff --git a/awk/indented_code.awk b/awk/indented_code.awk index b5e7407..c67dd02 100644 --- a/awk/indented_code.awk +++ b/awk/indented_code.awk @@ -2,7 +2,7 @@ BEGIN { in_code = 0 } /^ | / { if (!in_code) { print "
"; in_code = 1 }
     sub(/^	|    /, "", $0)
-    gsub(/&/, "&"); gsub(//, ">")
+    gsub(/&/, "\\&"); gsub(//, "\\>")
     print; next
 }
 { if (in_code) { print "
"; in_code = 0 } print } diff --git a/kewt.sh b/kewt.sh index 192baa4..d4381ed 100755 --- a/kewt.sh +++ b/kewt.sh @@ -90,8 +90,8 @@ create_new_site() { } generate_nav() { - dinfo=$(find "$1" ! -path '*/.*' | sort | awk -v src="$1" -f "$awk_dir/collect_dir_info.awk") - find "$1" -name "*.md" | sort | awk -v src="$1" -v single_file_index="$single_file_index" -v flatten="$flatten" -v order="$order" -v dinfo="$dinfo" -f "$awk_dir/generate_sidebar.awk" + dinfo=$(find "$1" \( -name ".*" ! -name "." ! -name ".." -prune \) -o -print | sort | awk -v src="$1" -f "$awk_dir/collect_dir_info.awk") + find "$1" \( -name ".*" ! -name "." ! -name ".." -prune \) -o -name "*.md" -print | sort | awk -v src="$1" -v single_file_index="$single_file_index" -v flatten="$flatten" -v order="$order" -v dinfo="$dinfo" -f "$awk_dir/generate_sidebar.awk" } src="" @@ -287,7 +287,7 @@ render_markdown() { echo "Building site from '$src' to '$out'..." -find "$src" -type d | sort | while read -r dir; do +find "$src" \( -name ".*" ! -name "." ! -name ".." -prune \) -o -type d -print | sort | while read -r dir; do rel_dir="${dir#$src/}" [ "$dir" = "$src" ] && rel_dir="." out_dir="$out/$rel_dir" @@ -316,7 +316,7 @@ find "$src" -type d | sort | while read -r dir; do [ -z "$display_dir" ] && display_dir="/" echo "# Index of $display_dir" > "$temp_index" echo "" >> "$temp_index" - find "$dir" ! -name "$(basename "$dir")" -prune ! -path '*/.*' | sort | while read -r entry; do + find "$dir" ! -name "$(basename "$dir")" -prune ! -name ".*" -print | sort | while read -r entry; do name="${entry##*/}" case "$name" in template.html|site.conf|style.css|index.md) continue ;; @@ -338,7 +338,7 @@ if [ ! -f "$out/styles.css" ] && [ -f "styles/$style.css" ]; then copy_style_with_resolved_vars "styles/$style.css" "$out/styles.css" fi -find "$src" -type f | sort | while IFS= read -r file; do +find "$src" \( -name ".*" ! -name "." ! -name ".." -prune \) -o -type f -print | sort | while IFS= read -r file; do rel_path="${file#$src/}" dir_rel=$(dirname "$rel_path") out_dir="$out/$dir_rel"