
希望可以把改動的部份寫成一個 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)。
