利用 AutoCorrect 與 GitHub Actions 提升繁體中文寫作品質

AutoCorrect 是一個強大的文案格式化工具,能夠自動糾正中日韓(CJK)與英文混合使用時的常見問題,如標點符號、空格等。本文將介紹如何透過 GitHub Actions 的自動化工作流程,讓您的繁體中文文章在推送到 GitHub 時自動進行格式化,有效提升文章的專業度和可讀性。

AutoCorrect 簡介

AutoCorrect 是一個基於 Rust 編寫的工具,專門用於「自動糾正」或「檢查並建議」文案,特別針對中日韓與英文混寫的場景,補充正確的空格,糾正單詞,同時以安全的方式自動糾正標點符號。它的功能包括:

  • 在 CJK 與英文單詞間添加適當的空格
  • 在 CJK 文字附近將標點符號轉換為全形
  • 在英文內容中將標點符號轉換為半形
  • 支援拼寫檢查並依據您的詞典糾正單詞(實驗性功能)

與 ESLint、Rubocop 和 Gofmt 等類似工具一樣,AutoCorrect 可以整合到 CI/CD 流程中,進行自動化檢查和修正。

GitHub Actions 的隔離環境

GitHub Actions
GitHub Actions

在深入了解工作流程配置之前,讓我們先了解 GitHub Actions 的運作方式。GitHub Actions 是 GitHub 提供的 CI/CD 解決方案,能自動化軟體開發的各個工作流程。

GitHub 託管的執行器(GitHub-hosted runners)在短暫且乾淨的隔離虛擬機器中執行代碼,這意味著每次執行都是全新的環境,不會有持續性的狀態。這種隔離環境提供了幾個優點:

  • 安全性:每次運行都在乾淨的環境中執行,不會受到之前運行的影響
  • 一致性:無論何時運行工作流程,執行環境都是相同的
  • 可靠性:不會因環境污染而導致不穩定的結果

這種隔離特性對於像 AutoCorrect 這樣的文本處理工具特別有用,因為它確保了處理過程的穩定性與可預測性。

解析工作流程檔案

Workflows
Workflows

現在讓我們來看一下提供的 .github/workflows/autocorrect-push.yml 工作流程檔案:

name: AutoCorrect Push Check

on:
  push:
    branches: [main]
  workflow_dispatch:
  schedule:
    - cron: "0 0 * * 0" # Run weekly on Sunday at midnight

jobs:
  autocorrect-push:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    steps:
      - name: Check source code
        uses: actions/checkout@v4

      - name: Run AutoCorrect with fix mode
        id: autocorrect
        uses: huacnlee/autocorrect-action@v2
        with:
          args: --fix
        continue-on-error: true

      - name: Check for changes
        id: git-check
        run: |
          if [[ -n "$(git status --porcelain)" ]]; then
            echo "changes=true" >> $GITHUB_OUTPUT
          fi

      - name: Create Pull Request with fixes
        if: steps.git-check.outputs.changes == 'true'
        id: cpr
        uses: peter-evans/create-pull-request@v5
        with:
          commit-message: "chore: autocorrect text formatting"
          title: "chore: autocorrect text formatting"
          body: |
            This PR was automatically created by the AutoCorrect GitHub Action.

            It fixes text formatting issues like Chinese/Japanese full-width punctuation,
            spacing between different languages, and other text formatting standardizations.

            Please review the changes and merge if appropriate.
          branch: autocorrect-fixes
          delete-branch: true
          labels: |
            autocorrect
            automated-pr

      - name: Check outputs
        if: steps.cpr.outputs.pull-request-number
        run: |
          echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}"
          echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"

這個工作流程的主要組成部分如下:

  1. 觸發條件

    • 當推送到 main 分支時
    • 手動觸發(workflow_dispatch)
    • 每週日午夜自動執行(使用 cron 排程)
  2. 執行環境

    • 使用 Ubuntu 最新版本作為執行環境
    • 設置適當的權限以允許寫入內容和創建 Pull Request
  3. 工作步驟

    • 檢出代碼庫
    • 使用 fix 模式運行 AutoCorrect
    • 檢查是否有變更
    • 如果有變更,創建一個包含修正的 Pull Request
    • 輸出 Pull Request 資訊

此工作流程利用 huacnlee/autocorrect-action 這個官方 Action,它是專為在 GitHub Actions 中使用 AutoCorrect 而設計的。

提升繁體中文寫作品質

中文與英文混合寫作時,常見的排版問題包括:

  1. 空格問題:中英文間缺少適當的空格,導致閱讀困難
  2. 標點符號不一致:中文文本中使用半形標點,或英文文本中使用全形標點
  3. 格式不統一:不同部分的格式不一致,影響整體專業性

AutoCorrect 能有效解決這些問題。以下是一個簡單的例子:

修正前:

Hello世界,這是一個關於GitHub Actions的文章.它運行在隔離環境中。

修正後:

Hello 世界,這是一個關於 GitHub Actions 的文章。它運行在隔離環境中。

注意以下變化:

  • 中英文之間添加了空格
  • 半形逗號和句號變成了全形的「,」和「。」
  • 整體視覺效果更協調,閱讀更輕鬆

實際應用效益

將 AutoCorrect 與 GitHub Actions 整合到部落格或文檔站點的工作流程中,帶來以下好處:

1. 自動化品質控制

每次推送內容到 main 分支後,AutoCorrect 會自動檢查並修正文案格式問題,無需人工干預。這不僅節省了時間,還確保了所有內容符合一致的格式標準。

2. 透過 Pull Request 進行審核

Pull Request
Pull Request

工作流程不會直接修改主分支,而是創建一個包含所有修正的 Pull Request。這讓您可以在合併前審核變更,保持對內容的控制。

3. 持續改進

通過每週自動執行,即使是舊的內容也會得到檢查和改進,確保整個部落格或文檔站點的格式一致性。

4. 跨多種文件類型工作

AutoCorrect 支援超過 28 種文件類型(包括 Markdown、JSON、YAML、JavaScript、HTML 等),能自動識別文件類型並只檢查字符串和注釋部分,這對於包含多種文件類型的網站項目特別有用。

集成考量

在實施這個工作流程時,有一些注意事項:

安全性考量

GitHub Actions 的隔離環境提供了良好的安全性保障。官方的執行器在短暫且乾淨的隔離虛擬機器中執行代碼,這意味著沒有持續性的環境可供破壞。使用官方的 Action(如 huacnlee/autocorrect-action)也比使用第三方 Action 更安全,因為它們經過了更多的測試和審核。

配置靈活性

AutoCorrect 提供了豐富的配置選項。您可以通過在代碼庫根目錄創建 .autocorrectrc 文件來自定義規則,例如:

rules:
  space-word: 1
  space-punctuation: 1
  fullwidth: 1
  no-space-fullwidth: 1
  halfwidth-word: 1

這讓您可以根據特定需求自定義行為。

結論

將 AutoCorrect 與 GitHub Actions 結合使用,為繁體中文寫作提供了一個強大的自動化格式化解決方案。通過自動糾正空格、標點符號和其他排版問題,它顯著提升了文章的可讀性和專業性。

本文介紹的工作流程不僅適用於部落格網站,還可以應用於各種需要高質量中文內容的項目,如文檔站點、新聞媒體或企業網站。通過自動化這些看似微小但重要的格式化任務,您可以專注於內容創作,同時確保輸出的一致性和專業性。

透過這種持續集成的方式,您的繁體中文內容將始終保持最高標準的排版質量,為讀者提供更好的閱讀體驗。

參考資源

如果您想了解更多關於 AutoCorrect 或如何在不同環境中使用它,可以參考以下資源:

關於 Calpa

Calpa 擅長使用 TypeScriptReact.jsVue.js 建立 Responsive Website。

他積極參與開源社區,曾在 2019 年的香港開源大會上擔任講者,提供工作經驗和見解。此外,他也在 GitHub 上公開分享個人博客程式碼,已獲得超過 300 顆星星和 60 個分支的支持。

他熱愛學習新技術,並樂意分享經驗。他相信,唯有不斷學習才能跟上快速演變的技術環境。

熱門文章

最新文章

圖片管理中心
管理圖片資源
IP 查詢
快速查詢和定位 IP 地址的地理位置和相關信息
Python 運行器
無需後端、無需登入,只需打開瀏覽器即可運行 Python 代碼(由 Pyodide 提供支持)
封面圖生成器
自動創建適合各種平台的文章封面圖
原作(青山剛昌)產生器
一鍵創建原作(青山剛昌)的封面圖
日本色彩
探索和使用傳統日本色彩
部落格內容洞察儀表板
以視覺化儀表板方式追蹤文章成效、分享熱度與分類分布,協助創作者掌握內容表現。
蒙特卡羅估算 π
使用蒙特卡羅方法演示 π 值的估算過程
LLM
使用 LLM 模型進行聊天
活動圖生成器
一鍵創建活動的封面圖
Wagmi Card
一鍵創建 Wagmi 的封面圖
Facebook Quote
Facebook Quote
Music Macro Language (MML) Studio
用程式語法編寫旋律,用音符構築想像
Blurhash
一鍵創建 Blurhash
文字分類器
使用 MediaPipe TextClassifier 分類文字
前端工程師免費工具資源
前端工程師免費工具資源
後端工程師免費工具資源
後端工程師免費工具資源
全端工程師免費工具資源
全端工程師免費工具資源
Web3 工程師免費工具資源
Web3 工程師免費工具資源
紫微斗數排盤系統|結合 AI 的命盤性格與事業財務分析生成器
紫微斗數排盤工具,輸入生日與時辰,自動生成完整命盤分析提示(Prompt)。結合最專業紫微理論與 AI 助力,助你深入解析性格、事業、財務與人際課題。免費使用,適合命理師及紫微愛好者。
PixAI Prompt 組合器|快速打造可用於 AI 繪圖的語言拼圖
使用 PixAI 卻不會寫 prompt?這個工具幫你一鍵組裝角色、表情、風格語彙,輸出高品質繪圖提示語句(Prompt),可直接貼入 PixAI 使用。適合插畫師、創作者、AI 新手與 VTuber 角色開發者。