2026年11月14日

把生成式工具做出的網站初稿,收成可維護的正式站

網站HTML

常見需求:已經用生成式工具做出網站的第一版,頁面大致有了,但還不能安心拿來長期使用。常見缺口包括無法自己改內容、圖片沒有替代文字、標題或語言標示缺失,以及仍留著佔位文句。

這次測試到哪裡

check_site.py 已在本機對一份故意留有缺漏的示範 HTML 跑過,有正確找出缺少 lang、空的 title、圖片沒有 alt,以及 Lorem ipsum。它不會判斷設計美不美,也沒有把任何網站發布上網。

三層怎麼分工

層做什麼
盤點列出真正需要留下的頁面,刪掉示範用的假內容。
檢查用腳本掃 HTML,補上語言、標題、替代文字與連結。
收斂把內容放到你之後改得動的結構,例如靜態頁或內容檔,而不是一大份無法維護的生成碼。

先跑檢查,再談改版

check_site.py
#!/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。本站就是這樣做的。工具產生的英文佔位、錯誤用詞與簡體字,都要人工改過。

常見錯誤

下載