用 AI 修改原作者 theme改版

希望可以把改動的部份寫成一個 python script 給我進行 patch.

目前的設定是 max-width: 75rem; (1200px),若扣除內距或特定的瀏覽器渲染,體感寬度確實接近 1150px。要提升到1280px,我們需要將其改為 80rem (1280 / 16 = 780)。

這是一個進階版的 Python 腳本,它會自動掃描伺服器路徑(如 /var/www/),尋找所有名為 gutenshop 的主題目錄,並統一對其
foundation.css 進行寬度補丁。

✦ 我現在就在當前目錄為您產生 patch_gutenshop.py 實體檔案

import os
import re
import sys

def patch_gutenshop_width(base_path='.'):
    """
    自動尋找並修改所有 gutenshop 主題的寬度限制。
    目標寬度: 1280px (80rem)
    """
    # 目標檔案在主題內的相對路徑
    target_rel_path = os.path.join('css', 'foundation.css')
    found_count = 0
    patched_count = 0

    print(f"開始掃描目錄: {os.path.abspath(base_path)}")
    print("-" * 50)

    # 遍歷目錄尋找所有名為 gutenshop 的主題目錄
    for root, dirs, files in os.walk(base_path):
        if os.path.basename(root) == 'gutenshop':
            full_file_path = os.path.join(root, target_rel_path)
            
            if os.path.exists(full_file_path):
                found_count += 1
                print(f"找到目標: {full_file_path}")
                
                try:
                    with open(full_file_path, 'r', encoding='utf-8') as f:
                        content = f.read()

                    # 將 75rem (1200px) 替換為 80rem (1280px)
                    # 使用正則表達式鎖定 max-width: 75rem
                    new_content = re.sub(r'max-width:\s*75rem', 'max-width: 80rem', content)

                    if content == new_content:
                        # 檢查是否已經是 80rem,避免誤報
                        if 'max-width: 80rem' in content:
                            print("  [跳過] 寬度已經是 1280px (80rem)")
                        else:
                            print("  [跳過] 檔案中未找到 max-width: 75rem 設定")
                    else:
                        with open(full_file_path, 'w', encoding='utf-8') as f:
                            f.write(new_content)
                        patched_count += 1
                        print("  [成功] 已將寬度修正為 1280px (80rem)")
                
                except Exception as e:
                    print(f"  [錯誤] 無法讀寫檔案: {e}")
            
    print("-" * 50)
    print(f"掃描結束。共找到 {found_count} 個主題,成功補丁 {patched_count} 個檔案。")

if __name__ == "__main__":
    # 如果執行時有帶參數,則以參數為搜尋路徑,否則預設為當前路徑 '.'
    search_dir = sys.argv[1] if len(sys.argv) > 1 else '.'
    
    # Linux 權限提示
    if os.name != 'nt' and hasattr(os, 'getuid') and os.getuid() != 0:
        print("提示:在 Linux 伺服器上建議使用 sudo 權限執行以確保檔案可寫入。")
        
    patch_gutenshop_width(search_dir)

使用方式:

本機測試:直接執行 python patch_gutenshop.py,它會掃描當前目錄。

伺服器大量修改:將此檔案上傳至伺服器,並指定掃描路徑:

sudo python3 patch_gutenshop.py /var/www 

此腳本會尋找所有路徑下包含 gutenshop 的目錄,並修改其 css/foundation.css 中的 max-width: 75rem 為 max-width: 80rem (1280px)。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *