内容生成模块
WebsiteGenerator - 静态站点生成器
📋 模块概述
内容生成模块负责将数据库中的文章数据渲染成静态HTML网站,包括主页、日摘要页面、归档页面和搜索页面。
核心文件
core/generator.py- 网站生成器templates/- Jinja2 模板文件static/- CSS样式文件
🎯 生成的页面
1. 主页 (index.html)
- 显示最近10天的资讯摘要
- 按日期分组展示
- 支持中英文双语
- 响应式设计,移动端适配
2. 日摘要页面 (digest/YYYY-MM-DD.html)
- 单日所有文章详情
- 按热度和关注度排序
- 包含完整摘要和来源链接
- 关联推荐阅读
3. 归档页面 (archive.html)
- 按月份分组的所有摘要
- 快速导航和检索
- 完整历史记录
4. 搜索页面 (search.html)
- 集成 Pagefind 全文搜索
- 支持中英文搜索
- 智能相关性排序
- 搜索结果预览
🔧 技术实现
Jinja2 模板渲染
from jinja2 import Environment
env = Environment()
template = env.from_string(template_content)
html = template.render(
site_name=config['site_name'],
groups=groups,
current_year=datetime.now().year
)
Markdown 转 HTML
import markdown
html = markdown.markdown(
md_text,
extensions=['extra', 'nl2br']
)
关键要点处理
自动将摘要中的"关键要点"转换为标签样式:
<div class="key-tags">
<span class="key-tag">要点1</span>
<span class="key-tag">要点2</span>
</div>
📂 输出目录结构
output/
├── index.html # 主页
├── archive.html # 归档页
├── search.html # 搜索页
├── digest/ # 日摘要目录
│ ├── 2026-05-21.html
│ ├── 2026-05-20.html
│ └── ...
├── pagefind/ # 搜索索引
│ └── ...
└── static/ # 静态资源
└── style.css
⚡ 功能特性
| 特性 | 说明 |
|---|---|
| 响应式设计 | 桌面/平板/手机自适应 |
| 双语支持 | 中英文摘要切换 |
| 智能排序 | 按热度+关注度排序 |
| 全文搜索 | Pagefind 集成 |
| SEO优化 | 语义化HTML、元数据 |
| 性能优化 | 静态文件、CDN友好 |