返回基地

文件结构方案

文件结构方案

/my-blog │ ├── builder/ # 构建脚本目录 │ ├── __init__.py │ ├── main.py # 主构建脚本 │ ├── config.py # 全局配置文件 (替代 globalVar.py) │ ├── page_parser.py # 页面解析与处理 (替代 page.py) │ ├── index_updater.py # 索引页更新 (替代 updateIndex.py) │ └── rss_generator.py # RSS 生成 (替代 RSSgenerator.py) │ ├── content/ # 内容源文件目录 │ ├── articles/ # 分类:文章 │ │ ├── my-first-article.html │ │ └── index.html # 该分类的索引页模板 │ ├── weekly/ # 分类:周报 │ │ ├── week-1.html │ │ └── index.html │ └── notes/ # 分类:笔记 │ ├── some-notes.html │ └── index.html │ ├── static/ # 静态资源目录 │ ├── css/ │ │ ├── main.css # 全局和主页样式 │ │ └── article.css # 文章页样式 │ ├── js/ │ │ └── main.js │ └── images/ │ └── sigil.svg │ ├── templates/ # 页面模板目录 │ └── article.template # 文章页的HTML模板 │ ├── output/ # 【重要】输出目录 │ │ │ ├── articles/ │ │ ├── my-first-article.html │ │ └── index.html │ ├── weekly/ │ │ ├── week-1.html │ │ └── index.html │ ├── notes/ │ │ ├── some-notes.html │ │ └── index.html │ ├── css/ │ ├── js/ │ ├── images/ │ ├── index.html │ └── feed.xml │ ├── index.html # 主页源文件 ├── CNAME # (可选) 自定义域名文件 └── run_build.py # (可选) 用于执行构建的脚本

结构解析

  1. builder/ (构建脚本): 这是站点的引擎。所有自动化处理逻辑都应封装于此。main.py 作为入口,协调 page_parser.py(读取并处理 content/ 中的文章)、index_updater.py(更新各级索引页)和 rss_generator.py 的工作。config.py 用于存放分类名称、路径等全局变量,便于统一管理。
  2. content/ (内容源文件): 所有博客文章的原始 .html 文件,按自定义分类存放在不同的子目录中。每个子目录的 index.html 是该分类列表页面的源文件,构建脚本会读取它并填入文章列表。这是与构建系统分离的内容库。
  3. static/ (静态资源): 存放无需处理、只需直接复制到最终站点的文件,如 CSS、JavaScript 和图片。
  4. templates/ (页面模板): 存放 HTML 骨架文件。构建脚本会读取 content/ 目录下的源文件,将其内容填充到这里的模板中,最终生成完整的文章页面。
  5. output/ (输出目录): 这是一个至关重要的补充。构建完成后,所有生成的静态站点文件(包括所有文章页面、索引页、CSS/JS/图片、index.htmlfeed.xml)都应存放在此目录。关键在于将源码与生成结果分离,这能有效避免在构建过程中污染原始文件,极大降低了操作风险。你最终需要部署到服务器上的,就是这个 output/ 目录的全部内容。
  6. 根目录文件:
  7. index.html: 你主页的源文件,构建脚本会读取它并注入最新的文章列表。
  8. CNAME: 如果你使用 GitHub Pages 并需要绑定自定义域名,则需要此文件。

工作流程推演

  1. content/weekly/ 目录下创建一个新的 week-2.html 文件并撰写内容。
  2. 执行根目录的 run_build.py(或直接运行 builder/main.py)。
  3. 脚本启动:
  4. 读取所有 content/ 目录下的文章,解析元数据。
  5. 使用 templates/article.templateweek-2.html 生成一个完整的、格式化的 HTML 文件,并将其保存到 output/weekly/ 目录。
  6. 更新 content/weekly/index.html 和根目录的 index.html,将新文章的链接和摘要添加进去,并将更新后的版本保存到 output/ 目录对应位置。
  7. 重新生成 feed.xml 并保存到 output/
  8. static/ 目录下的所有资源复制到 output/
  9. output/ 目录下的所有内容部署到你的服务器。