#!/bin/bash
# 前端页面源代码软著申请专用拼接脚本
# 功能:将所有前端HTML文件完整拼接成单一文档,专用于软件著作权申请材料
#
# 与现有generate_frontend_sourcecode.py的差异:
# - 现有脚本:分批生成,适用于AI对话(避免token超限)
# - 本脚本: 单文件生成,适用于软著申请(便于提交)
#
# 优点:
# - 生成单一完整文档,符合软著申请要求
# - 保持源代码完整性,无压缩或分批
# - 零token消耗,纯本地文本处理
# - 直接可用于软著申请提交
echo "🔄 开始拼接前端页面源代码..."
# 设置路径
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
FRONT_DIR="${SCRIPT_DIR}/output_sourcecode/front"
OUTPUT_DIR="${SCRIPT_DIR}/output_docs"
OUTPUT_FILE="${OUTPUT_DIR}/前端源代码.txt"
# 确保输出目录存在
mkdir -p "${OUTPUT_DIR}"
# 检查前端目录
if [ ! -d "${FRONT_DIR}" ]; then
echo "❌ 前端目录不存在: ${FRONT_DIR}"
echo "💡 请先生成前端源代码文件"
exit 1
fi
# 获取所有HTML文件
HTML_FILES=($(find "${FRONT_DIR}" -name "*.html" | sort))
if [ ${#HTML_FILES[@]} -eq 0 ]; then
echo "❌ 未找到HTML文件"
echo "💡 请检查 ${FRONT_DIR} 目录"
exit 1
fi
echo "📁 找到 ${#HTML_FILES[@]} 个HTML文件"
# 清空输出文件
> "${OUTPUT_FILE}"
# 拼接所有文件(不添加头部信息,保持纯代码格式)
for html_file in "${HTML_FILES[@]}"; do
filename=$(basename "$html_file")
echo "📄 处理: $filename"
# 添加文件分隔符
echo "/* ================= $filename ================= */" >> "${OUTPUT_FILE}"
echo "" >> "${OUTPUT_FILE}"
# 直接追加文件内容
cat "$html_file" >> "${OUTPUT_FILE}"
# 添加文件结束分隔符
echo "" >> "${OUTPUT_FILE}"
echo "/* ================= $filename 结束 ================= */" >> "${OUTPUT_FILE}"
echo "" >> "${OUTPUT_FILE}"
echo "" >> "${OUTPUT_FILE}"
done
# 显示结果
if [ -f "${OUTPUT_FILE}" ]; then
file_size=$(wc -c < "${OUTPUT_FILE}")
line_count=$(wc -l < "${OUTPUT_FILE}")
echo "✅ 拼接完成!"
echo "📁 输出文件: ${OUTPUT_FILE}"
# 兼容性处理文件大小显示
if [ $file_size -gt 1048576 ]; then
size_str="$(awk "BEGIN {printf \"%.1f MB\", $file_size/1048576}")"
elif [ $file_size -gt 1024 ]; then
size_str="$(awk "BEGIN {printf \"%.1f KB\", $file_size/1024}")"
else
size_str="${file_size} bytes"
fi
echo "📊 文件大小: ${size_str}"
echo "📋 总行数: $line_count"
echo ""
echo "💡 使用说明:"
echo " - 此文件包含所有前端页面的完整源代码"
echo " - 可直接用于软著申请材料"
echo " - 无需AI处理,节省token消耗"
else
echo "❌ 生成失败"
exit 1
fi