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

利用 AutoCorrect 與 GitHub Actions 提升繁體中文寫作品質
作者: Calpa Liu
字數:1758
出版日期:2025年3月16日

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 提供的 CI/CD 解決方案,能自動化軟體開發的各個工作流程。

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

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

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

解析工作流程檔案

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。這讓您可以在合併前審核變更,保持對內容的控制。

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 擅長使用 TypeScript、React.js 和 Vue.js 開發Responsive Web Design網站。

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

更多前端開發技術文章:傳送門