#!/usr/bin/env python3 """ generate_index.py 執行方式:將本腳本放在與 HTML 報告相同的資料夾,然後執行: python generate_index.py 會自動產生 index.html 目錄頁面。 """ import os import glob from datetime import datetime def get_html_files(folder: str) -> list[dict]: """取得資料夾內所有 HTML 檔案(排除 index.html),並回傳檔案資訊清單。""" files = [] pattern = os.path.join(folder, "*.html") for path in sorted(glob.glob(pattern)): filename = os.path.basename(path) if filename.lower() == "index.html": continue stat = os.stat(path) created_ts = stat.st_birthtime if hasattr(stat, "st_birthtime") else stat.st_mtime created_dt = datetime.fromtimestamp(created_ts) files.append({ "filename": filename, "created": created_dt.strftime("%Y-%m-%d %H:%M"), "created_iso": created_dt.isoformat(), "size_kb": round(stat.st_size / 1024, 1), }) return files def build_cards(files: list[dict]) -> str: if not files: return '
目前資料夾內沒有找到任何報告檔案。
' cards = [] for f in files: name_no_ext = os.path.splitext(f["filename"])[0] cards.append(f"""{name_no_ext}
{f['filename']}
Report Portal
集中瀏覽本資料夾內的所有 HTML 報告檔案
找不到符合的報告。