把生成式工具做出的網站初稿,收成可維護的正式站
網站HTML
常見需求:已經用生成式工具做出網站的第一版,頁面大致有了,但還不能安心拿來長期使用。常見缺口包括無法自己改內容、圖片沒有替代文字、標題或語言標示缺失,以及仍留著佔位文句。
這次測試到哪裡
check_site.py 已在本機對一份故意留有缺漏的示範 HTML 跑過,有正確找出缺少 lang、空的 title、圖片沒有 alt,以及 Lorem ipsum。它不會判斷設計美不美,也沒有把任何網站發布上網。
三層怎麼分工
| 層 | 做什麼 |
|---|---|
| 盤點 | 列出真正需要留下的頁面,刪掉示範用的假內容。 |
| 檢查 | 用腳本掃 HTML,補上語言、標題、替代文字與連結。 |
| 收斂 | 把內容放到你之後改得動的結構,例如靜態頁或內容檔,而不是一大份無法維護的生成碼。 |
先跑檢查,再談改版
#!/usr/bin/env python3
"""檢查本機 HTML 初稿常見缺漏:語言、標題、替代文字與佔位文案。"""
from __future__ import annotations
import argparse
import re
import sys
from html.parser import HTMLParser
from pathlib import Path
class PageParser(HTMLParser):
def __init__(self) -> None:
super().__init__()
self.title = ""
self._in_title = False
self.lang_on_html = False
self.images_missing_alt = 0
self.placeholders = 0
self.text_bits: list[str] = []
def handle_starttag(self, tag, attrs):
attr = dict(attrs)
if tag == "html" and attr.get("lang"):
self.lang_on_html = True
if tag == "title":
self._in_title = True
if tag == "img" and not (attr.get("alt") or "").strip():
self.images_missing_alt += 1
def handle_endtag(self, tag):
if tag == "title":
self._in_title = False
def handle_data(self, data):
if self._in_title:
self.title += data
self.text_bits.append(data)
def inspect(path: Path) -> list[str]:
raw = path.read_text(encoding="utf-8")
parser = PageParser()
parser.feed(raw)
issues: list[str] = []
if not parser.lang_on_html:
issues.append("html 缺少 lang,繁中頁面建議設為 zh-Hant-TW")
if not parser.title.strip():
issues.append("title 是空的")
if parser.images_missing_alt:
issues.append(f"{parser.images_missing_alt} 張圖片缺少 alt")
blob = " ".join(parser.text_bits)
if re.search(r"lorem ipsum", blob, re.I):
issues.append("內文仍有 Lorem ipsum 佔位")
return issues
def main() -> int:
parser = argparse.ArgumentParser(description="檢查網站初稿")
parser.add_argument("root", type=Path)
args = parser.parse_args()
pages = sorted(args.root.rglob("*.html"))
if not pages:
print("找不到 HTML 檔。", file=sys.stderr)
return 1
total = 0
for page in pages:
issues = inspect(page)
rel = page.relative_to(args.root)
if issues:
total += len(issues)
print(f"{rel}:")
for item in issues:
print(f" - {item}")
else:
print(f"{rel}: 沒有偵測到這份清單裡的問題")
print(f"共 {total} 項待修。")
return 1 if total else 0
if __name__ == "__main__":
sys.exit(main())執行
python check_site.py ./sample_draft通過這份清單只表示最基本的標記有了。接下來還要確認:聯絡方式是你自己提供的、沒有被工具杜撰;圖片你有權使用;若網站處理個人資料,要符合《個人資料保護法》並寫清楚蒐集目的。生成程式碼也可能包含過時的套件或不明外部腳本,上線前應自己看過。
若頁面是繁體中文,把 lang 設成 zh-Hant-TW。本站就是這樣做的。工具產生的英文佔位、錯誤用詞與簡體字,都要人工改過。
常見錯誤
- 直接把生成平台的預覽網址當正式網站,之後無法匯出或改不動。
- 內文還留著 Lorem ipsum,或電話、地址是工具編出來的。
- 所有內容都寫死在一個巨大檔案裡,改一句話要重生成整站。
- 沒有檢查圖片與字型的授權,就公開上線。