web 2024-12

个人主页生成部署工具

基于py+njinx+html+docker的个人主页自动化部署

自动化简历部署工具

1.项目介绍

个人主页生成部署工具,参考苹果公司官网风格,提供简介、科技感强的个人主页,涉及简历、博客、项目等多维度个人展示,并且通过自定义json和md文件实现内容自定义,通过docker实现部署,迁移成本极低,可以便捷的部署自己的个人主页。本个人主页就是基于该项目生成的。

2.项目架构

项目采用内容-模板-生成脚本分离的架构,并且按照网页层次组织目录,具体如下:

├── data
│   └── 静态数据保存,以json、md和图片保存页面内容。修改内容既可自动同步到页面上    
│  
├── templates   
│   └── html模板,使用jinja2格式,内部可嵌入data模块的自定义数据     
│
├── scripts  
│   └── 自动化生成脚本,将template和data内容结合,生成对应的html  
│   
└──html    
    └── 保存生成的html,用于展示  

3.项目使用

3.1 页面内容修改

data中保存了网页中的静态内容,仅需要修改对应的文件,就可以定制网页内容,其中
- order,导航栏的顺序
- title.json,一般用于保存导航页(第一页)中,每一个模块的内容(如标题,子标题等),生成的内容在html/home/*_preview.html,导航页预览效果
- frame.json,一般用于设置导航栏和脚标内容
- card.json,用于博客和项目的容器卡片内容展示
- content.md,用于项目和博客的具体内容,用md格式完成即可
- resume.pdf,简历pdf,用于简历界面展示和下载
- 其他文档文件,用于文档下载部分
- 图片,主要用于card中的image字段获取封面,也可以在content.md中使用图片,注意需要将content和对应的图放在一个目录下,使用相对路径引用

注意:项目页面的形式和次序相对固定,但是内容可以自己定制,建议需求较急切,且对于样式没有太多要求的用户使用
详细的规则参考CARD_FIELDS_GUIDE.md

3.2 部署

本项目通过docker完成部署,具体来说:
- 1.在服务器上使用dockerfile构建镜像
- 2.启动容器,项目自动解析data目录,生成对应html
- 3.由njinx启动,对外暴露8081端口,对内暴露83端口,有修改需要可以自行修改dockerfile和njinx设置

注意:由于本人还未为个人主页注册域名,域名功能将在后续补充,敬请期待!

4.声明

MIT许可证

版权所有 (c) 2026 Qi Yueran

特此免费授予任何获得本软件副本和相关文档文件("软件")的人不受限制地处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向其提供软件的人这样做,但须符合以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。

软件按"原样"提供,不提供任何形式的明示或暗示保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为或其他方面,由软件或软件的使用或其他交易引起、由此产生或与之相关。

使用条款

贡献与反馈

欢迎提交Issue和Pull Request来改进项目。如有问题或建议,请通过以下方式联系:


本项目展示了我在Python全栈开发、系统架构设计、DevOps工程化等多个技术领域的综合能力。通过这个项目,我不仅实现了功能需求,更重要的是建立了可维护、可扩展、高性能的现代化Web系统架构。