diff --git a/scripts/unified_export.sh b/scripts/unified_export.sh index e0d719a..b24249d 100755 --- a/scripts/unified_export.sh +++ b/scripts/unified_export.sh @@ -10,13 +10,8 @@ RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' -PURPLE='\033[0;35m' NC='\033[0m' -# 全局变量 -TEMP_DIRS=() -TEMP_FILES=() - # 日志函数 log_info() { echo -e "${BLUE}[INFO]${NC} $1" @@ -34,99 +29,6 @@ log_error() { echo -e "${RED}[ERROR]${NC} $1" } -log_cleanup() { - echo -e "${PURPLE}[CLEANUP]${NC} $1" -} - -# 清理函数 -cleanup_temp_files() { - log_cleanup "开始清理临时文件..." - - local cleaned_dirs=0 - local cleaned_files=0 - - # 清理临时目录 - for temp_dir in "${TEMP_DIRS[@]}"; do - if [[ -d "$temp_dir" ]]; then - log_cleanup "删除临时目录: $temp_dir" - rm -rf "$temp_dir" - cleaned_dirs=$((cleaned_dirs + 1)) - fi - done - - # 清理临时文件 - for temp_file in "${TEMP_FILES[@]}"; do - if [[ -f "$temp_file" ]]; then - log_cleanup "删除临时文件: $temp_file" - rm -f "$temp_file" - cleaned_files=$((cleaned_files + 1)) - fi - done - - # 清理通用临时文件模式 - find . -name "temp_mermaid_*" -type d -exec rm -rf {} + 2>/dev/null || true - find . -name "*_processed.md" -type f -exec rm -f {} + 2>/dev/null || true - find . -name "*.tmp" -type f -exec rm -f {} + 2>/dev/null || true - - log_success "临时文件清理完成 (目录: $cleaned_dirs, 文件: $cleaned_files)" -} - -# 清理输出缓存 -cleanup_output_cache() { - log_cleanup "开始清理输出缓存..." - - local cleaned_count=0 - - if [[ -d "output" ]]; then - # 清理处理过的markdown文件 - find output -name "*_processed.md" -type f -exec rm -f {} + 2>/dev/null || true - - # 清理旧的图表文件 - find output -name "diagram_*.png" -type f -exec rm -f {} + 2>/dev/null || true - find output -name "*.mmd" -type f -exec rm -f {} + 2>/dev/null || true - - # 统计清理的文件数量 - cleaned_count=$(find output -name "*_processed.md" -o -name "diagram_*.png" -o -name "*.mmd" 2>/dev/null | wc -l) - - log_success "输出缓存清理完成 (清理文件: $cleaned_count)" - else - log_info "输出目录不存在,无需清理缓存" - fi -} - -# 全面清理 -cleanup_all() { - log_cleanup "开始全面清理..." - - # 清理临时文件 - cleanup_temp_files - - # 清理输出缓存 - cleanup_output_cache - - # 清理所有输出文件 - if [[ -d "output" ]]; then - log_cleanup "清理所有输出文件..." - rm -rf output/* - log_success "所有输出文件已清理" - fi - - # 清理node_modules中的临时文件 - if [[ -d "node_modules" ]]; then - find node_modules -name "*.tmp" -type f -exec rm -f {} + 2>/dev/null || true - fi - - log_success "全面清理完成" -} - -# 设置清理陷阱 -setup_cleanup_trap() { - # 在脚本退出时自动清理 - trap 'cleanup_temp_files' EXIT - # 在收到中断信号时清理 - trap 'log_warning "收到中断信号,正在清理..."; cleanup_temp_files; exit 1' INT TERM -} - # 检查依赖 check_dependencies() { log_info "检查依赖工具..." @@ -165,12 +67,8 @@ process_single_document_mermaid() { log_info "处理文档 $doc_name 中的Mermaid图表..." - # 创建临时目录并记录 + # 创建临时目录 mkdir -p "$temp_dir" - TEMP_DIRS+=("$temp_dir") - - # 记录输出文件 - TEMP_FILES+=("$output_file") local diagram_count=0 local in_mermaid=false @@ -205,9 +103,6 @@ EOF local mermaid_file="$temp_dir/diagram_$diagram_count.mmd" local png_file="$temp_dir/diagram_$diagram_count.png" - # 记录临时文件 - TEMP_FILES+=("$mermaid_file" "$png_file") - # 保存Mermaid代码 echo "$mermaid_content" > "$mermaid_file" @@ -733,14 +628,6 @@ main() { echo "=========================================" echo "" - # 设置清理陷阱 - setup_cleanup_trap - - # 开始前清理旧的临时文件 - log_cleanup "清理旧的临时文件和缓存..." - cleanup_temp_files - cleanup_output_cache - # 检查依赖 check_dependencies @@ -770,11 +657,6 @@ main() { processed_count=$((processed_count + 1)) log_info "正在处理文档 [$processed_count/${#documents[@]}]: $doc" process_single_document "$doc" "$export_format" "$css_file" - - # 处理完每个文档后进行部分清理 - log_cleanup "清理文档 $doc 的临时文件..." - local doc_name=$(basename "$doc" .md) - find . -name "temp_mermaid_${doc_name}_*" -type d -exec rm -rf {} + 2>/dev/null || true else log_warning "文档不存在: $doc" fi @@ -806,17 +688,12 @@ main() { echo " - 文档标题和内容保持独立" echo " - 每个文档都有独立的目录结构" echo " - 图表文件保存在对应的临时目录中" - echo " - 临时文件已自动清理" echo "" - - # 最终清理检查 - log_cleanup "执行最终清理检查..." - cleanup_temp_files } # 显示使用说明 show_usage() { - echo "用法: $0 [选项]" + echo "用法: $0 [格式]" echo "" echo "格式选项:" echo " all 导出所有格式 (默认)" @@ -824,19 +701,11 @@ show_usage() { echo " pdf 仅导出PDF格式" echo " html 仅导出HTML格式" echo "" - echo "清理选项:" - echo " clean 清理临时文件和缓存" - echo " clean-all 清理所有文件包括输出" - echo " clean-cache 仅清理缓存文件" - echo "" echo "示例:" - echo " $0 # 导出所有格式" - echo " $0 docx # 仅导出Word" - echo " $0 pdf # 仅导出PDF" - echo " $0 html # 仅导出HTML" - echo " $0 clean # 清理临时文件" - echo " $0 clean-all # 清理所有文件" - echo " $0 clean-cache # 清理缓存" + echo " $0 # 导出所有格式" + echo " $0 docx # 仅导出Word" + echo " $0 pdf # 仅导出PDF" + echo " $0 html # 仅导出HTML" } # 处理命令行参数 @@ -845,30 +714,11 @@ case "${1:-}" in show_usage exit 0 ;; - clean) - echo "🧹 开始清理临时文件和缓存..." - cleanup_temp_files - cleanup_output_cache - echo "✅ 清理完成" - exit 0 - ;; - clean-all) - echo "🧹 开始全面清理..." - cleanup_all - echo "✅ 全面清理完成" - exit 0 - ;; - clean-cache) - echo "🧹 开始清理缓存..." - cleanup_output_cache - echo "✅ 缓存清理完成" - exit 0 - ;; all|docx|pdf|html|"") main "${1:-all}" ;; *) - echo "错误: 不支持的选项 '$1'" + echo "错误: 不支持的格式 '$1'" echo "" show_usage exit 1