📚職涯停看聽・知識庫← 總部儀表板
📅最後更新:2026/05/20
📑 目錄

add_article.py 使用指南

最後更新:2026-05-20(新增 SKILL 指針:完整發布流程含 SEO 請使用 發布文章 SKILL) 文件狀態:有效 ⚠️ 建議:新文章發布請優先使用 .claude/skills/發布文章.md(含聚落分類 + 延伸閱讀 + Twitter Cards 驗證 + 雙向內鏈);本文件保留為 add_article.py 參數參考手冊 腳本位置:C:\Users\USER\Desktop\職涯停看聽_網站\add_article.py 版本:v1.1(2026-04-28 排程發布支援)


1. 這是什麼

add_article.py 是 careerssl.com 官網的文章發布腳本,由 Claude 執行(Tim 只需提供文章內容與基本參數)。

執行後發生的事:

  1. blog/_article_template.html 套入模板
  2. 生成 blog/SLUG.html(文章頁面)
  3. 更新 blog/articles.json(文章列表,新文章 prepend 到最前)
  4. 雙向更新:舊的最新篇的 article-nav-prev 連結更新為指向新文章

2. 前置條件

條件 說明
Python 3 系統已有
作業目錄 腳本必須在 C:\Users\USER\Desktop\職涯停看聽_網站\ 下執行(使用相對路徑)
內容檔案 事先準備好 HTML 格式的文章內容,儲存為 .html 檔(相對路徑以網站根目錄為基準)
blog/_article_template.html 必須存在
blog/articles.json 必須存在

3. 必填參數

參數 說明
--title 文章標題(中文可)
--content-file HTML 內容檔案路徑(相對路徑以網站根目錄為基準,建議先存至 blog/_temp_content.html

4. 選填參數

參數 預設值 說明
--date 今天 發布日期 YYYY-MM-DD
--slug 從標題自動生成 強烈建議 Claude 提供英文 readable slug,格式:YYYY-MM-DD-英文關鍵字(如 2026-04-28-why-become-manager);若不提供,中文標題會生成含中文字符的 slug(技術可用但 SEO 不友善)
--excerpt 取內文前 160 字(去 HTML tag 後) 文章摘要(出現在列表頁)。⚠️ 場景鋪陳式開頭(故事/情境/案例開場)必須手動指定,auto-extract 只適合「核心主張在開頭」的鑑論式文章(見下方 Excerpt 判斷指引)
--tags 標籤,逗號分隔,最多 5 個(如 求職,履歷,轉職
--schedule 無(立即發布) 排程發布日期 YYYY-MM-DD(見排程模式說明)

5. 兩種發布模式

模式 A:立即發布(預設)

cd C:\Users\USER\Desktop\職涯停看聽_網站
python add_article.py \
  --title "標題" \
  --date "2026-04-28" \
  --slug "2026-04-28-article-slug" \
  --tags "標籤1,標籤2" \
  --content-file "blog/_temp_content.html"

執行後:

  • blog/SLUG.html 已建立
  • blog/articles.json 更新(新文章在最前)
  • ✅ 舊的最新篇 PREV 連結更新
  • 🔗 預期 URL:https://www.careerssl.com/blog/SLUG.html

模式 B:排程發布(--schedule

python add_article.py \
  --title "標題" \
  --date "2026-04-28" \
  --slug "2026-04-28-article-slug" \
  --tags "標籤1,標籤2" \
  --content-file "blog/_temp_content.html" \
  --schedule "2026-05-01"

執行後:

  • blog/SLUG.html 已建立(URL 存在但列表不顯示)
  • blog/articles.json 不更新(文章不在列表)
  • blog/scheduled/SLUG.json 排程描述檔已存入
  • 🤖 GitHub Actions 每日 09:00(台灣時間)掃描並自動正式發布

--date 是文章顯示的撰寫日期;--schedule 是實際公開上架日期,兩者可不同。


6. Claude 標準執行 SOP(每次發文)

Tim 只需提供:文字 + 日期 + 標籤(和是否排程)

Step 1:準備內容檔

  • 將文章 HTML 內容儲存至 blog/_temp_content.html

Step 2:決定 slug

  • 格式:YYYY-MM-DD-英文關鍵字(3–5 個英文字,清楚描述主題)
  • 例:2026-04-28-resume-rewrite-career-change

Step 2.5:Excerpt 策略判斷(⚠️ IMP-082 升規,2026-04-29)

文章開頭決定 excerpt 策略:

文章開頭類型 判斷標準 Excerpt 策略
鑑論式(論點先行) 第一句話就是核心主張或結論 ✅ auto-extract(不加 --excerpt)
場景鋪陳式(故事/案例開場) 第一段是情境描述、角色介紹、畫面設定 ❌ 必須手動指定 --excerpt

場景鋪陳式 Excerpt 撰寫模板(60–80 字):

[核心 reframe 一句話]。[內容形式(故事/對照/三步驟)],[讀者利益(學會什麼/得到什麼)]。

範例:「快不行了」不是心理感受,是大腦在呼救。從大衛與蘇菲的對照看懂過勞本質,學會戰略性保護核心資本。

Step 3:執行腳本

cd C:\Users\USER\Desktop\職涯停看聽_網站
python add_article.py --title "..." --date "YYYY-MM-DD" --slug "..." --tags "..." --content-file "blog/_temp_content.html"

Step 4:確認輸出

  • 看到 ✅ blog/SLUG.html 已建立 + ✅ articles.json 更新(共 N 篇) 表示成功

Step 5:刪除暫存檔

del blog\_temp_content.html

Step 6:補齊 UI(執行 batch_update)

python batch_update_all_articles.py

此腳本補齊所有文章的 Email 訂閱框等 UI 元素,每次發布後必須執行

Step 7:部署

npx vercel --prod

npm run build 通過再 git push,最後 npx vercel --prod(依標準部署三步驟)


7. 批量發布注意事項

同時發布多篇文章時(如補上舊文),順序很重要。

  • 由舊到新呼叫腳本:確保 NEXT/PREV 雙向連結正確建立
  • 所有文章 HTML 生成後,統一執行一次 batch_update_all_articles.pynpx vercel --prod
  • 不需每篇都部署,最後一次統一部署即可

8. 常見錯誤排查

錯誤訊息 原因 解法
❌ 找不到模板 blog/_article_template.html 不存在 確認路徑正確,在網站根目錄執行
❌ 找不到 articles.json blog/articles.json 不存在 確認路徑
❌ 找不到內容檔案 --content-file 路徑錯誤 確認以網站根目錄為基準的相對路徑
⚠️ SLUG.html 已存在,將覆蓋! slug 重複 確認後按 Enter 繼續,或更換 slug
⚠️ 前一篇 PREV 連結未匹配 前一篇已有 PREV 連結(非 href="#" 正常情況,略過即可;表示該文章已不是「沒有更新篇」的狀態

9. 模板欄位對照

腳本自動填入以下 {{PLACEHOLDER}} 欄位:

欄位 來源
{{SLUG}} --slug 或自動生成
{{TITLE}} --title
{{TITLE_SHORT}} 標題前 25 字(含…)
{{EXCERPT}} --excerpt 或內文前 160 字
{{DATE_ISO}} --date 轉 ISO 8601(+08:00
{{DATE_DISPLAY}} 2026年04月28日
{{READ_TIME}} 估算(內文字數 ÷ 400,最少 1 分鐘)
{{TAGS_HTML}} --tags<span class="article-tag">
{{CONTENT}} --content-file 讀入的 HTML
{{PREV_URL}} / {{PREV_TITLE}} 新發布時為 #,等下次文章發布時自動更新
{{NEXT_URL}} / {{NEXT_TITLE}} articles.json 目前最新篇

10. 腳本位置與相關檔案

檔案 路徑
腳本 C:\Users\USER\Desktop\職涯停看聽_網站\add_article.py
批量 UI 更新腳本 C:\Users\USER\Desktop\職涯停看聽_網站\batch_update_all_articles.py
文章模板 C:\Users\USER\Desktop\職涯停看聽_網站\blog\_article_template.html
文章列表 C:\Users\USER\Desktop\職涯停看聽_網站\blog\articles.json
排程描述檔 C:\Users\USER\Desktop\職涯停看聽_網站\blog\scheduled\SLUG.json
暫存內容檔(慣例) C:\Users\USER\Desktop\職涯停看聽_網站\blog\_temp_content.html
← 返回 操作 SOP