此前我创建过博客类项目,存在两个问题:
- pages部分的文章需要持续更新,文章较多导致维护困难;由于使用streamlit页面而非markdown,难以在GitHub上直接查看。
- 杂谈部分的文章通常不更新,由于只占一个页面,曝光度下降;由于按发布顺序命名,难以按日期等方式组织文章。
- gallery系列项目由于注重内容的系统性,需要大量时间来创建一个页面,改为文章形式更适合展示具体创意。
继续使用Streamlit的原因如下:
- Streamlit方便部署多项目,在容量占用较大的Gallery等项目的部署上相比GitHub Pages有一定优势。
- Streamlit使用Python,方便编写更多功能。语法简洁的特性无论是亲自编写或使用LLM辅助编写都有优势。
- Streamlit的UI框架比较优秀,在web技术栈中更优秀的框架较少。
Streamlit程序:
- 主页包含项目说明和最近更新的内容。由于GitHub Actions没有成功创建,改用gitpython库,这一功能在Windows无法运行。
- “静态文章”部分可选月份,按发布日期显示文章。
- “动态文章”部分直接选择具体的文章,文章为相应主题的最新内容。
目录结构:
- “静态文章”部分在static文件夹并按月份创建子文件夹,“动态文章”部分在dynamic文件夹。在仓库内可以直接按这一目录阅读。
- streamlit_app.py和pages文件夹为程序,开头用多行注释记录使用LLM辅助创建相应文件的提示词。
- files文件夹与文章文件夹对应的部分用于保存文章引用的媒体文件,files内的xlsx文件夹用于把xlsx表格转换为markdown表格以便填入文章,files内的md文件夹存储因各种原因不直接添加到页面上的文章的.md文件。
- 本项目已部署到Streamlit Cloud,域名为https://willian7004-new-blog.streamlit.app/
- 域名选择上,之前由于GitHub命名笔误,使用了纠正后的名称,本项目改为使用实际的GitHub名称作为开头。
- 旧仓库的杂谈文章和Gallery等内容不同步到本仓库,可在原仓库查看。
1.安装依赖
pip install -r requirements.txt2.运行应用
streamlit run streamlit_app.py
1.创建docker
docker build . -t new-blog2.运行docker
docker run -p 8501:8501 new-blog