diff --git a/.github/workflows/build-and-run.yml b/.github/workflows/build-and-run.yml index e922a82..09f02d8 100644 --- a/.github/workflows/build-and-run.yml +++ b/.github/workflows/build-and-run.yml @@ -8,7 +8,6 @@ on: jobs: build-and-run: runs-on: ubuntu-latest - # 不给权限会报错 permissions: contents: write steps: diff --git a/README.md b/README.md index cd92672..9b8b1e6 100644 --- a/README.md +++ b/README.md @@ -4,76 +4,77 @@ EndOfYear 点燃个人博客的年度辉煌! ![EndOfYear](static/endofyear.jpg) -## 用法 +## 使用方法 ### 要求 -- **RSS 源务必输出文章全部内容**,否则数据分析不准确。 -- Github 运行可能无法访问 RSS 源,请使用本地 Docker 运行。 -- 如果生成年度报告,请结合博客实际情况**设置 RSS 输出文章数量。** +- **确保 RSS 源提供完整的文章内容**:为了保证数据分析的准确性,RSS 源需要输出文章的全部内容。 +- **在 GitHub 上运行**:由于 GitHub 运行环境可能无法访问某些 RSS 源,请考虑在本地 Docker 环境中运行。 +- **适当设置 RSS 文章数量**:如果您的目的是生成年度报告,请根据博客的实际情况调整 RSS 输出的文章数量。 -### Github +### 在 GitHub 上的使用步骤 -1. Fork 项目到个人仓库。 -2. 手动配置仓库的 Workflow permissions 设置为 **Read and write permissions**,否则无法写入 html 分支。 - 1. 导航到 **Settings**(设置)选项卡。 - 2. 在左侧导航栏中,点击 **Actions**(操作)。 - 3. 在 **General**(常规)页面下滑,找到 **Workflow permissions**(工作流权限)。 - 4. 在 **Workflow permissions** 中,选择 **Read and write permissions**(读写权限)。 - 5. 最后点击 **Save**(保存)。 -3. 在仓库首页打开目录下的 `config.ini` 配置文件,点击右上角工具栏的 **🖋️(钢笔)** 图标,在线编辑文件。 - - `web`:默认为 true,Github 运行需要配置为 `false` 静态网站模式。 - - `rss`:配置为 RSS 源地址。 +1. 将项目 Fork 到您的个人仓库。 -```ini -[default] -web = false +2. 在仓库首页,找到并打开 `config.ini` 文件。点击右上角的 🖋️ 符号进行在线编辑。 -[blog] -rss = https://blog.7wate.com/rss.xml -``` + - `web` 字段:将其**设置为 `false` 以启用静态网站模式**(适用于 GitHub 运行)。 + - `rss` 字段:填写您的 RSS 源地址,确保源地址提供全文输出。 -4. 点击右上角的 **Commit changes** 提交到 `main` 分支,会自动运行 Actions。 -5. 等待 Actions 运行成功,将会部署静态网站文件至 `html` 分支。 -6. 开启 GitHub 仓库的 Pages 功能,设置 `html`分支,默认为根目录。 -7. 稍等访问个人网址,就可以看到啦~ + ```ini + [default] + web = false + + [blog] + rss = https://blog.7wate.com/rss.xml + ``` -### Docker +3. 编辑完成后,点击页面右上角的 **Commit changes** 将更改提交到 `main` 分支。 -1. 拉取 [endofyear](https://hub.docker.com/r/sevenwate/endofyear) 最新镜像。 +4. 提交后,GitHub Actions 会自动运行并生成静态网站文件,最终推送至 `html` 分支。 -```shell -docker pull sevenwate/endofyear:latest -``` +5. 在 GitHub 仓库的 Settings 中开启 Pages 功能,并将源设置为 `html` 分支的根目录。 -2. 映射容器 7777 端口至宿主机端口,指定 `rss` 环境变量,然后运行 Docker。 +6. 稍后访问 GitHub Pages 分配的网址,即可看到生成的内容。 -```shell -# 请将 https://blog.7wate.com/rss.xml 替换为自己的 RSS 地址。 -docker run -p 7777:7777 --env rss=https://blog.7wate.com/rss.xml sevenwate/endofyear:latest -``` +### 使用 Docker -3. 访问网址 `localhost:7777` +1. **拉取 Docker 镜像**:从 [endofyear](https://hub.docker.com/r/sevenwate/endofyear) Docker Hub 页面拉取最新镜像。 + + ```shell + docker pull sevenwate/endofyear:latest + ``` + +2. **运行 Docker 容器**:映射容器的 7777 端口到宿主机的端口,并设置 `rss` 环境变量。 + + ```shell + # 将 RSS 地址替换为您自己的。 + docker run -p 7777:7777 --env rss=https://blog.7wate.com/rss.xml sevenwate/endofyear:latest + ``` + +3. **访问本地网站**:在浏览器中访问 `localhost:7777`,即可查看结果。 ## Q&A ### Github Actions 运行失败 -请查阅 Actions 的第六步输出的 Log 日志排错。 +请首先检查 Actions 日志的第六步输出,这里包含了导致运行失败的详细错误信息。 ### Docker 运行无法访问 Web 服务 -1. 请检查**容器映射端口**至宿主机。 -2. 请检查是否配置 **rss 环境变量**。 -3. 请查看 Docker **运行日志**。 +如果在使用 Docker 时无法访问 Web 服务,请按照以下步骤进行故障排除: + +1. **检查端口映射**:确保您已正确设置容器的端口映射到宿主机。 +2. **确认 rss 环境变量**:请检查是否已正确配置 `rss` 环境变量。 +3. **查看 Docker 日志**:如果以上步骤均无法解决问题,请查看 Docker 容器的运行日志以获取更多信息。 ### 博客数据分析不准确 -目前博客的数据分析已经相对丰富,准确,未来会结合 AI 进行分析。 +目前提供的博客数据分析功能已经相对完善且准确。未来,我计划结合 AI 进一步优化分析效果,以提供更精准的数据维度。 ### 主题不够丰富 -个人时间有限,不过目前可以**保证每年更新一款默认主题**,希望给各位的写作之路带来快乐 ~ +由于个人时间有限,目前**我仅能承诺每年末前更新一款主题。**尽管如此,我仍然致力于为您的写作之旅带来愉悦和丰富的体验,并感谢您的理解和支持! ## 流程 @@ -166,15 +167,15 @@ erDiagram 如果进行主题开发可以使用 Jinja2 的模板语言,结合下面的数据定制一款专属主题。 -| 数据 | 描述 | -| -------------- | -------------- | -| site | 站点数据 | -| blog | 博客数据 | -| special_post | 特殊日期文件 | +| 数据 | 描述 | +|----------------|---------| +| site | 站点数据 | +| blog | 博客数据 | +| special_post | 特殊日期文件 | | sentiment_post | 情感分最高文章 | -| long_post | 篇幅最长文章 | -| short_post | 篇幅最短文章 | -| custom | 自定义数据 | +| long_post | 篇幅最长文章 | +| short_post | 篇幅最短文章 | +| custom | 自定义数据 | 如果有额外数据需求,可以修改 `custom` 模型,并在 `main.py` 中传参,最后在 HTML 模板中使用。以下是一个简单的模板示例: @@ -200,12 +201,12 @@ EndOfYear 目前处于初始阶段,如果您有兴趣,可以为其做出贡 - [x] 结合互联网公开博客的数据源对 EndOfYear 进行全面、规模性的测试。 - [x] 默认主题进一步细化数据分析维度和数据颗粒度,精准描绘用户画像。 - [x] EndOfYear 渲染数据的规范,约束主题开发,提高主题的兼容性。 -- [ ] 剥离主题,提供更好地主题开发方式。 +- [x] 进一步丰富和完善主题。 ### V2 -- [ ] 进一步丰富和完善主题。 -- [ ] EndOfYear 项目展示首页,使用文档,主题开发等。 +- [ ] 剥离主题,提供更好地主题开发方式。 +- [ ] EndOfYear 项目网站首页,使用文档,主题开发等。 - [ ] 实现轻量化的运行部署,一键运行。 - [ ] 探索以插件的方式附加到博客系统的方法。