247 lines
7.3 KiB
Makefile
247 lines
7.3 KiB
Makefile
# 福建水务营收系统概要设计文档 Makefile
|
||
# Version: 1.0
|
||
|
||
.PHONY: help init create validate export clean install-deps check-links merge-docs
|
||
|
||
# 默认目标
|
||
help:
|
||
@echo "福建水务营收系统概要设计文档工具链"
|
||
@echo ""
|
||
@echo "可用命令:"
|
||
@echo " help 显示此帮助信息"
|
||
@echo " init 初始化工具链配置"
|
||
@echo " install-deps 安装必要的依赖"
|
||
@echo " create MODULE 创建新的模块设计文档"
|
||
@echo " validate 验证所有文档"
|
||
@echo " validate-file 验证指定文档 (使用 FILE=文件名)"
|
||
@echo " export-word 导出Word格式文档"
|
||
@echo " export-pdf 导出PDF格式文档"
|
||
@echo " export-html 导出HTML格式文档"
|
||
@echo " check-links 检查所有链接"
|
||
@echo " merge-docs 合并所有文档"
|
||
@echo " clean 清理临时文件"
|
||
@echo " export-word-with-diagrams 导出包含图表的Word文档"
|
||
@echo " fix-docx-diagrams 快速修复:处理docx文档中的流程图问题"
|
||
@echo " unified-export 统一导出所有格式(推荐)"
|
||
@echo " unified-export-docx 统一导出Word格式"
|
||
@echo " unified-export-pdf 统一导出PDF格式"
|
||
@echo " unified-export-html 统一导出HTML格式"
|
||
@echo " quick-export 快速统一导出所有格式(稳定版)"
|
||
@echo " quick-export-docx 快速统一导出Word格式"
|
||
@echo " quick-export-pdf 快速统一导出PDF格式"
|
||
@echo " quick-export-html 快速统一导出HTML格式"
|
||
@echo ""
|
||
@echo "示例:"
|
||
@echo " make init # 初始化工具链"
|
||
@echo " make create MODULE=user # 创建用户管理模块文档"
|
||
@echo " make validate # 验证所有文档"
|
||
@echo " make validate-file FILE=water_biz_user_design.md"
|
||
@echo " make export-word # 导出Word文档"
|
||
@echo " make export-pdf # 导出PDF文档"
|
||
|
||
# 初始化工具链
|
||
init:
|
||
@echo "初始化文档工具链..."
|
||
@chmod +x scripts/doc-toolkit.sh
|
||
@./scripts/doc-toolkit.sh init
|
||
|
||
# 安装依赖
|
||
install-deps:
|
||
@echo "检查并安装必要的依赖..."
|
||
@if ! command -v pandoc > /dev/null 2>&1; then \
|
||
echo "安装 pandoc..."; \
|
||
if [[ "$$OSTYPE" == "darwin"* ]]; then \
|
||
brew install pandoc; \
|
||
elif [[ "$$OSTYPE" == "linux-gnu"* ]]; then \
|
||
sudo apt-get update && sudo apt-get install -y pandoc; \
|
||
else \
|
||
echo "请手动安装 pandoc: https://pandoc.org/installing.html"; \
|
||
fi; \
|
||
else \
|
||
echo "pandoc 已安装"; \
|
||
fi
|
||
@if ! npx mmdc --version > /dev/null 2>&1 && ! command -v mmdc > /dev/null 2>&1; then \
|
||
echo "安装 mermaid-cli..."; \
|
||
npm install @mermaid-js/mermaid-cli --save-dev; \
|
||
else \
|
||
echo "mermaid-cli 已安装"; \
|
||
fi
|
||
|
||
# 创建模块文档
|
||
create:
|
||
@if [ -z "$(MODULE)" ]; then \
|
||
echo "错误: 请提供模块名称,例如: make create MODULE=user_management"; \
|
||
exit 1; \
|
||
fi
|
||
@./scripts/doc-toolkit.sh create $(MODULE)
|
||
|
||
# 验证所有文档
|
||
validate:
|
||
@echo "验证所有文档..."
|
||
@./scripts/doc-toolkit.sh validate
|
||
|
||
# 验证指定文档
|
||
validate-file:
|
||
@if [ -z "$(FILE)" ]; then \
|
||
echo "错误: 请提供文件名,例如: make validate-file FILE=water_biz_user_design.md"; \
|
||
exit 1; \
|
||
fi
|
||
@./scripts/doc-toolkit.sh validate $(FILE)
|
||
|
||
# 导出Word文档
|
||
export-word:
|
||
@echo "导出Word格式文档..."
|
||
@./scripts/doc-toolkit.sh export word
|
||
|
||
# 导出PDF文档
|
||
export-pdf:
|
||
@echo "导出PDF格式文档..."
|
||
@./scripts/doc-toolkit.sh export pdf
|
||
|
||
# 导出HTML文档
|
||
export-html:
|
||
@echo "导出HTML格式文档..."
|
||
@./scripts/doc-toolkit.sh export html
|
||
|
||
# 检查链接
|
||
check-links:
|
||
@echo "检查文档链接..."
|
||
@./scripts/doc-toolkit.sh check-links
|
||
|
||
# 合并文档
|
||
merge-docs:
|
||
@echo "合并所有文档..."
|
||
@./scripts/doc-toolkit.sh merge-docs
|
||
|
||
# 清理临时文件
|
||
clean:
|
||
@echo "清理临时文件..."
|
||
@rm -rf output/*.tmp
|
||
@rm -rf templates/*.bak
|
||
@rm -rf *.bak
|
||
@find . -name "*.DS_Store" -delete
|
||
@echo "清理完成"
|
||
|
||
# 生成架构图
|
||
generate-architecture:
|
||
@./scripts/doc-toolkit.sh generate-diagram architecture
|
||
|
||
# 生成流程图
|
||
generate-flow:
|
||
@./scripts/doc-toolkit.sh generate-diagram flow
|
||
|
||
# 生成ER图
|
||
generate-er:
|
||
@./scripts/doc-toolkit.sh generate-diagram er
|
||
|
||
# 生成时序图
|
||
generate-sequence:
|
||
@./scripts/doc-toolkit.sh generate-diagram sequence
|
||
|
||
# 开发模式 - 实时验证和预览
|
||
dev:
|
||
@echo "启动开发模式..."
|
||
@while true; do \
|
||
echo "等待文件变化..."; \
|
||
inotifywait -e modify *.md 2>/dev/null || fswatch -o *.md 2>/dev/null || sleep 5; \
|
||
echo "检测到文件变化,重新验证..."; \
|
||
make validate 2>/dev/null || true; \
|
||
sleep 2; \
|
||
done
|
||
|
||
# 快速构建 - 验证+导出HTML
|
||
quick-build:
|
||
@echo "快速构建 - 验证并导出HTML..."
|
||
@make validate
|
||
@make export-html
|
||
@echo "构建完成,查看 output/福建水务营收系统概要设计文档.html"
|
||
|
||
# 完整构建 - 验证+导出所有格式
|
||
full-build:
|
||
@echo "完整构建 - 验证并导出所有格式..."
|
||
@make validate
|
||
@make export-word
|
||
@make export-pdf
|
||
@make export-html
|
||
@echo "构建完成,查看 output/ 目录"
|
||
|
||
# 检查项目状态
|
||
status:
|
||
@echo "=== 项目状态 ==="
|
||
@echo "文档数量: $$(ls -1 *.md 2>/dev/null | wc -l)"
|
||
@echo "模板数量: $$(ls -1 templates/ 2>/dev/null | wc -l)"
|
||
@echo "输出文件: $$(ls -1 output/ 2>/dev/null | wc -l)"
|
||
@echo ""
|
||
@echo "=== 依赖检查 ==="
|
||
@if command -v pandoc > /dev/null 2>&1; then \
|
||
echo "✓ pandoc: $$(pandoc --version | head -1)"; \
|
||
else \
|
||
echo "✗ pandoc: 未安装"; \
|
||
fi
|
||
@if npx mmdc --version > /dev/null 2>&1; then \
|
||
echo "✓ mermaid-cli: $$(npx mmdc --version) (本地)"; \
|
||
elif command -v mmdc > /dev/null 2>&1; then \
|
||
echo "✓ mermaid-cli: $$(mmdc --version) (全局)"; \
|
||
else \
|
||
echo "✗ mermaid-cli: 未安装"; \
|
||
fi
|
||
|
||
# 更新工具链
|
||
update:
|
||
@echo "更新文档工具链..."
|
||
@git pull origin main 2>/dev/null || echo "无法从远程仓库更新"
|
||
@chmod +x scripts/doc-toolkit.sh
|
||
@echo "工具链更新完成"
|
||
|
||
# 导出包含图表的Word文档
|
||
export-word-with-diagrams:
|
||
@echo "导出包含图表的Word格式文档..."
|
||
@chmod +x scripts/process-mermaid.sh
|
||
@./scripts/process-mermaid.sh
|
||
|
||
# 快速修复:处理Mermaid图表问题
|
||
fix-docx-diagrams:
|
||
@echo "修复docx文档中的流程图问题..."
|
||
@./scripts/process-mermaid.sh
|
||
|
||
# 统一文档导出 - 解决多文件图表混乱问题
|
||
unified-export:
|
||
@echo "统一导出所有格式..."
|
||
@chmod +x scripts/unified_export.sh
|
||
@./scripts/unified_export.sh
|
||
|
||
unified-export-docx:
|
||
@echo "统一导出Word格式..."
|
||
@chmod +x scripts/unified_export.sh
|
||
@./scripts/unified_export.sh docx
|
||
|
||
unified-export-pdf:
|
||
@echo "统一导出PDF格式..."
|
||
@chmod +x scripts/unified_export.sh
|
||
@./scripts/unified_export.sh pdf
|
||
|
||
unified-export-html:
|
||
@echo "统一导出HTML格式..."
|
||
@chmod +x scripts/unified_export.sh
|
||
@./scripts/unified_export.sh html
|
||
|
||
# 快速统一文档导出 - 不处理图表转换,更稳定快速
|
||
quick-export:
|
||
@echo "快速统一导出所有格式..."
|
||
@chmod +x scripts/quick_unified_export.sh
|
||
@./scripts/quick_unified_export.sh
|
||
|
||
quick-export-docx:
|
||
@echo "快速统一导出Word格式..."
|
||
@chmod +x scripts/quick_unified_export.sh
|
||
@./scripts/quick_unified_export.sh docx
|
||
|
||
quick-export-pdf:
|
||
@echo "快速统一导出PDF格式..."
|
||
@chmod +x scripts/quick_unified_export.sh
|
||
@./scripts/quick_unified_export.sh pdf
|
||
|
||
quick-export-html:
|
||
@echo "快速统一导出HTML格式..."
|
||
@chmod +x scripts/quick_unified_export.sh
|
||
@./scripts/quick_unified_export.sh html
|