# public-scripts

这个仓库当前提供一个静态目录索引生成脚本：`generate_index.py`。

## 当前功能

- 扫描当前目录及其子目录，自动生成各级 `index.html`
- 目录项提供“打开”入口，用于进入子目录
- 可预览文件提供“预览”和“下载”两个入口
- 点击文件名时，默认进入预览页，而不是直接下载
- 对常见文本文件生成独立预览页，可直接在浏览器中查看内容
- 对图片、音频、视频、PDF 等常见格式提供内嵌预览
- 对不支持预览的文件，仅保留下载入口
- 自动跳过不应公开展示的目录和文件，例如 `.git`、`.agentdocs`、`.preview`、`.wrangler` 等
- 自动生成根目录 `404.html` 和 `_redirects`，让错误链接返回 404 页面，而不是跳回根目录索引页

## 预览支持范围

当前支持以下类型的预览：

- 文本类：`txt`、`md`、`py`、`sh`、`json`、`html`、`css`、`js`、`yaml`、`yml`、`csv`、`log` 等
- 图片类：`png`、`jpg`、`jpeg`、`gif`、`webp`、`svg` 等
- 音频类：`mp3`、`wav`、`ogg`、`flac`、`m4a` 等
- 视频类：`mp4`、`webm`、`mov`、`ogv` 等
- 文档类：`pdf`

## 使用方式

在仓库根目录执行：

```bash
python3 generate_index.py
```

执行后会生成：

- 各级目录下的 `index.html`
- 各级目录下的 `.preview/` 预览页目录
- 根目录下的 `404.html`
- 根目录下的 `_redirects`

## 测试

运行本地测试：

```bash
python3 -m unittest discover -s tests
```
