📋 模块概述

内容生成模块负责将数据库中的文章数据渲染成静态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友好