mirror of
https://github.com/LouisShark/chatgpt_system_prompt.git
synced 2025-07-05 14:20:33 -04:00
26 lines
No EOL
917 B
Bash
26 lines
No EOL
917 B
Bash
#!/bin/bash
|
||
|
||
generate_toc() {
|
||
local dir=$1
|
||
local base_dir=$(pwd)
|
||
|
||
for file in "$dir"/*; do
|
||
if [ -d "$file" ]; then
|
||
local dir_name=$(basename "$file")
|
||
echo "- $dir_name"
|
||
echo " $(generate_toc "$file")"
|
||
elif [ -f "$file" ] && [[ $file == *.md ]]; then
|
||
local title=$(basename "$file" .md)
|
||
# Replace Windows incompatible characters with '_'
|
||
local safe_title=$(echo "$title" | sed 's/[<>::"\/\\|?*]/_/g')
|
||
# Rename the source file with the safe_title
|
||
mv "$file" "$dir/$safe_title.md"
|
||
# shellcheck disable=SC2001
|
||
local link=$(echo "$dir/$safe_title.md" | sed "s|^$base_dir/||")
|
||
local encoded_link=$(python -c "import urllib.parse; print(urllib.parse.quote('''$link'''))")
|
||
echo " - [$safe_title]($encoded_link)"
|
||
fi
|
||
done
|
||
}
|
||
|
||
generate_toc . |