回退 scripts/unified_export.sh 到上一版本 - 恢复文件到 ea705d1 提交版本(725行), 移除新增的清理功能和部分复杂逻辑, 保持文档导出功能的核心稳定性

This commit is contained in:
tangweijie 2025-06-11 16:25:14 +08:00
parent 658718be73
commit df489f880a

View File

@ -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