Update build-daily-book.yml
This commit is contained in:
106
.github/workflows/build-daily-book.yml
vendored
106
.github/workflows/build-daily-book.yml
vendored
@@ -11,9 +11,6 @@ on:
|
||||
jobs:
|
||||
build-book:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
env:
|
||||
IMAGE_PROXY_URL: ${{ vars.IMAGE_PROXY_URL }} # 从仓库变量中读取
|
||||
|
||||
# 需要写入权限来提交生成的文件和归档的日刊
|
||||
permissions:
|
||||
@@ -25,12 +22,6 @@ jobs:
|
||||
with:
|
||||
# 明确指定要检出的分支
|
||||
ref: 'book' # <-- 请将 'book' 替换为你的目标分支名
|
||||
|
||||
- name: Install mdBook
|
||||
run: |
|
||||
mkdir -p $HOME/.cargo/bin
|
||||
export PATH=$HOME/.cargo/bin:$PATH
|
||||
curl -sL https://github.com/rust-lang/mdBook/releases/download/v0.4.51/mdbook-v0.4.51-x86_64-unknown-linux-gnu.tar.gz | tar -xz -C $HOME/.cargo/bin
|
||||
|
||||
- name: Archive old notes
|
||||
id: archive
|
||||
@@ -62,101 +53,6 @@ jobs:
|
||||
done
|
||||
echo "文件归档检查完成。"
|
||||
|
||||
- name: Prepare source files for mdBook
|
||||
run: |
|
||||
echo "准备 mdBook 构建源文件..."
|
||||
# 确保 src 目录存在,并清空旧的 daily 内容
|
||||
mkdir -p src
|
||||
rm -rf src/daily/
|
||||
# 递归复制归档后的 `daily` 目录到 `src`
|
||||
cp -r daily/ src/
|
||||
echo "源文件已复制到 src/daily/。"
|
||||
|
||||
- name: Replace image URLs in src directory
|
||||
run: |
|
||||
echo "开始替换 src/daily/ 目录及其子目录下所有 Markdown 文件的内容..."
|
||||
echo "使用的代理前缀: ${{ env.IMAGE_PROXY_URL }}"
|
||||
# 在 src/daily 目录中执行替换,而不是在原始的 daily 目录
|
||||
find src/daily -type f -name "*.md" -exec sed -i \
|
||||
-e 's|upload.chinaz.com|pic.chinaz.com|g' \
|
||||
-e 's|https://pic.chinaz.com|${{ env.IMAGE_PROXY_URL }}https://pic.chinaz.com|g' {} +
|
||||
echo "URL 替换完成。"
|
||||
|
||||
- name: Generate SUMMARY.md from final file structure
|
||||
id: generate_summary
|
||||
run: |
|
||||
# 注意:此时 src/daily 目录已由上一步准备好并处理完毕
|
||||
|
||||
SUMMARY_FILE="src/SUMMARY.md"
|
||||
|
||||
# 查找逻辑不变,仍然从原始的 daily 目录中查找最新文件
|
||||
LATEST_DAILY_FILE=$(find daily -type f -name "*.md" | sort -r | head -n 1)
|
||||
|
||||
if [ -z "$LATEST_DAILY_FILE" ]; then
|
||||
echo "错误:在 'daily' 目录中没有找到任何 .md 文件。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 最新的文件还在 'daily' 根目录下,复制它作为 'Today' 页面到 src 目录
|
||||
LATEST_FILENAME=$(basename "$LATEST_DAILY_FILE")
|
||||
cp "$LATEST_DAILY_FILE" "src/$LATEST_FILENAME"
|
||||
|
||||
# 开始写入 SUMMARY.md
|
||||
echo "# Summary" > "$SUMMARY_FILE"
|
||||
echo "" >> "$SUMMARY_FILE"
|
||||
echo "[Today]($LATEST_FILENAME)" >> "$SUMMARY_FILE"
|
||||
echo "" >> "$SUMMARY_FILE"
|
||||
|
||||
# --- 生成按月分组的列表 ---
|
||||
current_month=""
|
||||
# 查找逻辑不变,目录结构基于原始的 daily 目录
|
||||
for file in $(find daily -type f -name "*.md" | sort -r); do
|
||||
filename_only=$(basename "$file" .md)
|
||||
month=$(echo "$filename_only" | cut -d'-' -f1,2)
|
||||
|
||||
if [ "$month" != "$current_month" ]; then
|
||||
echo "# $month" >> "$SUMMARY_FILE"
|
||||
current_month=$month
|
||||
fi
|
||||
|
||||
link_title=$(echo "$filename_only" | cut -d'-' -f2,3)
|
||||
relative_path=${file#daily/}
|
||||
|
||||
# 生成的链接将是正确的 'daily/...' 路径
|
||||
echo "- [${link_title}-日刊](daily/$relative_path)" >> "$SUMMARY_FILE"
|
||||
done
|
||||
|
||||
echo "SUMMARY.md 已成功生成,内容如下:"
|
||||
cat "$SUMMARY_FILE"
|
||||
|
||||
- name: Build the book
|
||||
run: |
|
||||
mdbook build
|
||||
|
||||
- name: Organize output files
|
||||
run: |
|
||||
echo "正在组织输出文件..."
|
||||
rm -rf today/book/
|
||||
mkdir -p today
|
||||
cp -rf book/. today/book/
|
||||
rm -rf book
|
||||
echo "输出文件已移动到 today/book。"
|
||||
|
||||
- name: Add Clarity tracking to book.js
|
||||
run: |
|
||||
TOC_FILE="today/book/book.js"
|
||||
FORWARD_CODE='${{ vars.FORWARD_CODE }}'
|
||||
CLARITY_CODE='${{ vars.CLARITY_CODE }}'
|
||||
|
||||
if [ -f "$TOC_FILE" ]; then
|
||||
echo "Appending Forward and Clarity tracking code to $TOC_FILE"
|
||||
printf "\n%s\n" "$FORWARD_CODE" >> "$TOC_FILE"
|
||||
printf "\n%s\n" "$CLARITY_CODE" >> "$TOC_FILE"
|
||||
echo "Tracking codes appended."
|
||||
else
|
||||
echo "Warning: $TOC_FILE not found. Skipping tracking code injection."
|
||||
fi
|
||||
|
||||
- name: Trigger RSS Data Write (2 attempts, 3 retries each)
|
||||
run: |
|
||||
# 检查 `WRITE_RSS_URL` 变量是否已设置
|
||||
@@ -214,7 +110,7 @@ jobs:
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
|
||||
git add src/SUMMARY.md today/ daily/
|
||||
git add today/ daily/
|
||||
if [ -f "rss.xml" ]; then
|
||||
git add rss.xml
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user