回退 scripts/unified_export.sh 到上一版本 - 恢复文件到 ea705d1 提交版本(725行), 移除新增的清理功能和部分复杂逻辑, 保持文档导出功能的核心稳定性
This commit is contained in:
parent
658718be73
commit
df489f880a
@ -10,13 +10,8 @@ RED='\033[0;31m'
|
|||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
YELLOW='\033[1;33m'
|
YELLOW='\033[1;33m'
|
||||||
BLUE='\033[0;34m'
|
BLUE='\033[0;34m'
|
||||||
PURPLE='\033[0;35m'
|
|
||||||
NC='\033[0m'
|
NC='\033[0m'
|
||||||
|
|
||||||
# 全局变量
|
|
||||||
TEMP_DIRS=()
|
|
||||||
TEMP_FILES=()
|
|
||||||
|
|
||||||
# 日志函数
|
# 日志函数
|
||||||
log_info() {
|
log_info() {
|
||||||
echo -e "${BLUE}[INFO]${NC} $1"
|
echo -e "${BLUE}[INFO]${NC} $1"
|
||||||
@ -34,99 +29,6 @@ log_error() {
|
|||||||
echo -e "${RED}[ERROR]${NC} $1"
|
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() {
|
check_dependencies() {
|
||||||
log_info "检查依赖工具..."
|
log_info "检查依赖工具..."
|
||||||
@ -165,12 +67,8 @@ process_single_document_mermaid() {
|
|||||||
|
|
||||||
log_info "处理文档 $doc_name 中的Mermaid图表..."
|
log_info "处理文档 $doc_name 中的Mermaid图表..."
|
||||||
|
|
||||||
# 创建临时目录并记录
|
# 创建临时目录
|
||||||
mkdir -p "$temp_dir"
|
mkdir -p "$temp_dir"
|
||||||
TEMP_DIRS+=("$temp_dir")
|
|
||||||
|
|
||||||
# 记录输出文件
|
|
||||||
TEMP_FILES+=("$output_file")
|
|
||||||
|
|
||||||
local diagram_count=0
|
local diagram_count=0
|
||||||
local in_mermaid=false
|
local in_mermaid=false
|
||||||
@ -205,9 +103,6 @@ EOF
|
|||||||
local mermaid_file="$temp_dir/diagram_$diagram_count.mmd"
|
local mermaid_file="$temp_dir/diagram_$diagram_count.mmd"
|
||||||
local png_file="$temp_dir/diagram_$diagram_count.png"
|
local png_file="$temp_dir/diagram_$diagram_count.png"
|
||||||
|
|
||||||
# 记录临时文件
|
|
||||||
TEMP_FILES+=("$mermaid_file" "$png_file")
|
|
||||||
|
|
||||||
# 保存Mermaid代码
|
# 保存Mermaid代码
|
||||||
echo "$mermaid_content" > "$mermaid_file"
|
echo "$mermaid_content" > "$mermaid_file"
|
||||||
|
|
||||||
@ -733,14 +628,6 @@ main() {
|
|||||||
echo "========================================="
|
echo "========================================="
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 设置清理陷阱
|
|
||||||
setup_cleanup_trap
|
|
||||||
|
|
||||||
# 开始前清理旧的临时文件
|
|
||||||
log_cleanup "清理旧的临时文件和缓存..."
|
|
||||||
cleanup_temp_files
|
|
||||||
cleanup_output_cache
|
|
||||||
|
|
||||||
# 检查依赖
|
# 检查依赖
|
||||||
check_dependencies
|
check_dependencies
|
||||||
|
|
||||||
@ -770,11 +657,6 @@ main() {
|
|||||||
processed_count=$((processed_count + 1))
|
processed_count=$((processed_count + 1))
|
||||||
log_info "正在处理文档 [$processed_count/${#documents[@]}]: $doc"
|
log_info "正在处理文档 [$processed_count/${#documents[@]}]: $doc"
|
||||||
process_single_document "$doc" "$export_format" "$css_file"
|
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
|
else
|
||||||
log_warning "文档不存在: $doc"
|
log_warning "文档不存在: $doc"
|
||||||
fi
|
fi
|
||||||
@ -806,17 +688,12 @@ main() {
|
|||||||
echo " - 文档标题和内容保持独立"
|
echo " - 文档标题和内容保持独立"
|
||||||
echo " - 每个文档都有独立的目录结构"
|
echo " - 每个文档都有独立的目录结构"
|
||||||
echo " - 图表文件保存在对应的临时目录中"
|
echo " - 图表文件保存在对应的临时目录中"
|
||||||
echo " - 临时文件已自动清理"
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 最终清理检查
|
|
||||||
log_cleanup "执行最终清理检查..."
|
|
||||||
cleanup_temp_files
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# 显示使用说明
|
# 显示使用说明
|
||||||
show_usage() {
|
show_usage() {
|
||||||
echo "用法: $0 [选项]"
|
echo "用法: $0 [格式]"
|
||||||
echo ""
|
echo ""
|
||||||
echo "格式选项:"
|
echo "格式选项:"
|
||||||
echo " all 导出所有格式 (默认)"
|
echo " all 导出所有格式 (默认)"
|
||||||
@ -824,19 +701,11 @@ show_usage() {
|
|||||||
echo " pdf 仅导出PDF格式"
|
echo " pdf 仅导出PDF格式"
|
||||||
echo " html 仅导出HTML格式"
|
echo " html 仅导出HTML格式"
|
||||||
echo ""
|
echo ""
|
||||||
echo "清理选项:"
|
|
||||||
echo " clean 清理临时文件和缓存"
|
|
||||||
echo " clean-all 清理所有文件包括输出"
|
|
||||||
echo " clean-cache 仅清理缓存文件"
|
|
||||||
echo ""
|
|
||||||
echo "示例:"
|
echo "示例:"
|
||||||
echo " $0 # 导出所有格式"
|
echo " $0 # 导出所有格式"
|
||||||
echo " $0 docx # 仅导出Word"
|
echo " $0 docx # 仅导出Word"
|
||||||
echo " $0 pdf # 仅导出PDF"
|
echo " $0 pdf # 仅导出PDF"
|
||||||
echo " $0 html # 仅导出HTML"
|
echo " $0 html # 仅导出HTML"
|
||||||
echo " $0 clean # 清理临时文件"
|
|
||||||
echo " $0 clean-all # 清理所有文件"
|
|
||||||
echo " $0 clean-cache # 清理缓存"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# 处理命令行参数
|
# 处理命令行参数
|
||||||
@ -845,30 +714,11 @@ case "${1:-}" in
|
|||||||
show_usage
|
show_usage
|
||||||
exit 0
|
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|"")
|
all|docx|pdf|html|"")
|
||||||
main "${1:-all}"
|
main "${1:-all}"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "错误: 不支持的选项 '$1'"
|
echo "错误: 不支持的格式 '$1'"
|
||||||
echo ""
|
echo ""
|
||||||
show_usage
|
show_usage
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user