#!/bin/bash

# 创建或清空当前目录下的 README.md 和 _sidebar.md
echo "" > README.md
echo "" > _sidebar.md

# 用于保存已添加到 _sidebar.md 的目录列表，避免重复插入
declare -A added_dirs

# 遍历当前目录及其子目录，查找所有的 Markdown 文件
for file in $(find . -type f -name "*.md" | grep -v "/_sidebar.md" | grep -v "/README.md" | grep -v "/_navbar.md"); do
    # 获取文件的相对路径（去除当前目录的 './' 部分）
    relative_path="${file#./}"

    # 获取文件所在的目录
    dir_name=$(dirname "$relative_path")

    # 如果该文件在子目录中，创建子目录下的 README.md 和 _sidebar.md
    if [ "$dir_name" != "." ]; then
        # 确保子目录存在
        mkdir -p "$dir_name"

        # 在子目录下生成 readme.md
        echo "* [$relative_path]($relative_path)" >> "$dir_name/README.md"

        # 在子目录下生成 _sidebar.md
        echo "* [$relative_path]($relative_path)" >> "$dir_name/_sidebar.md"
    fi

    # 在当前目录的 README.md 中添加链接
    echo "* [$relative_path](./$relative_path)" >> README.md

    # 检查该目录是否已添加到 _sidebar.md
    if [ -z "${added_dirs[$dir_name]}" ]; then
        # 如果没有添加过该目录，则在 _sidebar.md 中添加
        echo "- [$dir_name]($dir_name/)" >> _sidebar.md
        added_dirs["$dir_name"]=1
    fi

    # 在当前目录的 _sidebar.md 中添加文件的链接
    echo "   * [$relative_path]($relative_path)" >> _sidebar.md
done

# 输出完成信息
echo "README.md 和 _sidebar.md 已生成！"
