merge_frontend_simple.sh 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/bin/bash
  2. # 前端页面源代码软著申请专用拼接脚本
  3. # 功能:将所有前端HTML文件完整拼接成单一文档,专用于软件著作权申请材料
  4. #
  5. # 与现有generate_frontend_sourcecode.py的差异:
  6. # - 现有脚本:分批生成,适用于AI对话(避免token超限)
  7. # - 本脚本: 单文件生成,适用于软著申请(便于提交)
  8. #
  9. # 优点:
  10. # - 生成单一完整文档,符合软著申请要求
  11. # - 保持源代码完整性,无压缩或分批
  12. # - 零token消耗,纯本地文本处理
  13. # - 直接可用于软著申请提交
  14. echo "🔄 开始拼接前端页面源代码..."
  15. # 设置路径
  16. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
  17. FRONT_DIR="${SCRIPT_DIR}/output_sourcecode/front"
  18. OUTPUT_DIR="${SCRIPT_DIR}/output_docs"
  19. OUTPUT_FILE="${OUTPUT_DIR}/前端源代码.txt"
  20. # 确保输出目录存在
  21. mkdir -p "${OUTPUT_DIR}"
  22. # 检查前端目录
  23. if [ ! -d "${FRONT_DIR}" ]; then
  24. echo "❌ 前端目录不存在: ${FRONT_DIR}"
  25. echo "💡 请先生成前端源代码文件"
  26. exit 1
  27. fi
  28. # 获取所有HTML文件
  29. HTML_FILES=($(find "${FRONT_DIR}" -name "*.html" | sort))
  30. if [ ${#HTML_FILES[@]} -eq 0 ]; then
  31. echo "❌ 未找到HTML文件"
  32. echo "💡 请检查 ${FRONT_DIR} 目录"
  33. exit 1
  34. fi
  35. echo "📁 找到 ${#HTML_FILES[@]} 个HTML文件"
  36. # 清空输出文件
  37. > "${OUTPUT_FILE}"
  38. # 拼接所有文件(不添加头部信息,保持纯代码格式)
  39. for html_file in "${HTML_FILES[@]}"; do
  40. filename=$(basename "$html_file")
  41. echo "📄 处理: $filename"
  42. # 添加文件分隔符
  43. echo "/* ================= $filename ================= */" >> "${OUTPUT_FILE}"
  44. echo "" >> "${OUTPUT_FILE}"
  45. # 直接追加文件内容
  46. cat "$html_file" >> "${OUTPUT_FILE}"
  47. # 添加文件结束分隔符
  48. echo "" >> "${OUTPUT_FILE}"
  49. echo "/* ================= $filename 结束 ================= */" >> "${OUTPUT_FILE}"
  50. echo "" >> "${OUTPUT_FILE}"
  51. echo "" >> "${OUTPUT_FILE}"
  52. done
  53. # 显示结果
  54. if [ -f "${OUTPUT_FILE}" ]; then
  55. file_size=$(wc -c < "${OUTPUT_FILE}")
  56. line_count=$(wc -l < "${OUTPUT_FILE}")
  57. echo "✅ 拼接完成!"
  58. echo "📁 输出文件: ${OUTPUT_FILE}"
  59. # 兼容性处理文件大小显示
  60. if [ $file_size -gt 1048576 ]; then
  61. size_str="$(awk "BEGIN {printf \"%.1f MB\", $file_size/1048576}")"
  62. elif [ $file_size -gt 1024 ]; then
  63. size_str="$(awk "BEGIN {printf \"%.1f KB\", $file_size/1024}")"
  64. else
  65. size_str="${file_size} bytes"
  66. fi
  67. echo "📊 文件大小: ${size_str}"
  68. echo "📋 总行数: $line_count"
  69. echo ""
  70. echo "💡 使用说明:"
  71. echo " - 此文件包含所有前端页面的完整源代码"
  72. echo " - 可直接用于软著申请材料"
  73. echo " - 无需AI处理,节省token消耗"
  74. else
  75. echo "❌ 生成失败"
  76. exit 1
  77. fi