184 lines
5.2 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 ""
@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 "工具链更新完成"