Upupor版本记录

v1.7.0 release

重构

  1. 重构草稿,将草稿内容与文章分离,简化内容处理逻辑
  2. 重构访问者功能,移除高度重复表viewer表
  3. 重构实现,分页UI在html中自定义渲染,后端返回分页元数据(注意:不使用js来计算分页的原因是为了考虑SEO,让搜索引擎可以分页录入索引)
  4. 重构与用户交互有关的代码,重构后,这部分代码简单、易懂、易拓展
  5. 重构Page页面耗时计算方式,使用StopWatch
  6. 重构上传文件流方式代码,根据不同的文件类型处理
  7. 将邮件和站内信重构为消息模型MessageModel,消息发送基于MessageModel来处理,不再强依赖与业务实体 2022-11-11
  8. 使用Semantic UI(v2.5.0)重构部分页面实现 2022-11-20
  9. 重构Upupor项目结构,为下一个目标 提供Upupor API服务 奠定基础
    • maven pom 依赖调整,将thymeleaf依赖迁移到upupor-web模块,这样就将服务端渲染部分代码拆分出来了,方便后面迭代upupor-api模块代码 2022-11-24
    • upupor-task模块,定时任务代码拆分出来单独作为一个模块,反向驱动项目代码更加合理健康 2022-11-24
    • upupor-data模块,专门提供数据服务,目前以提供MySQL数据服务为主,代码职责更加清晰,便于后续业务及功能迭代 2022-11-25
  10. 将Entity中的冗余代码迁移至增强类中,页面数据渲染使用增强类,Entity只用作与DB表的数据映射 重大更新 2022-11-30

新特性

  1. 管理员支持批量处理恶意刷文用户
  2. 用户名权重升级,全站唯一
  3. 添加管理员标识
  4. 文章列表展示标签
  5. 添加 ECO·程序员的生活记录open in new window二级域名 2022-10-05
  6. 用户长时间未更换头像在用户公共主页提醒用户 2022-11-11
  7. 【草稿箱】添加全新已有文章的草稿标识,提升用户体验 2022-11-23

优化

  1. 生产环境图片资源移除域名,使用/开头来加载资源,便于后续迁移只需要改nginx配置即可
  2. SQL日志实现类支持配置,环境变量SQL_LOG
  3. 文章和用户标签使用fragment统一处理展示,便于后续标签功能迭代
  4. fromProfile参数移除,使用字符串替代,入参为fromPage,便于后续针对不同来源页面做个性化开发及拓展
  5. 站点地图文件大小优化,按照内容切分为多个文件
  6. Upupor网站视觉调整,移除卡片阴影及边框效果,让视觉重点回归到文字上 2022-10-23
  7. 缓存Key独立维护
  8. 调整【文章管理】和【草稿箱】表格列,微重构每行数据的标签 2022-11-23

升级

  1. 升级cherry-markdown编辑器至v0.7.5,编辑器内预览可以点击放大图片
  2. 升级cherry-markdown编辑器至v0.8.8 2022-11-16

修复

  1. 修复文章管理搜索按钮无效Bug
  2. 修复点赞用户未展示Bug

v1.6.0

重构

  1. 文件对象存储弃用阿里OSS,改为自建,基于minio开源版本自建
  2. 重构文件上传逻辑,上传逻辑与业务剥离,提升与OSS交互相关代码的可维护性

新特性

  1. 新增upupor-security限制器模块
    • 接口限流,基于Redis实现滑动窗口,从而实现限流
    • 关键词脱敏
  2. 自建对象存储,基于Minio开源版本实现
  3. 全局搜索关键字标红突出
  4. 电台文件支持上传aac格式文件

优化

  1. 包结构调整,将数据访问层和数据聚合层从业务层抽出来,独立为数据层(data)
  2. 异步化获取数据,基于CompletableFuture实现
  3. 用户主页[关注]和[粉丝]Tab按照用户活跃时间倒序
  4. 部署文档完善,添加Minio相关配置
  5. 更新github issue模板,方便提交新特性、Bug等内容
  6. 站内链接优化,站内链接在当前域名下跳转,维持登录状态
  7. 编辑器加载提示信息优化(因最小维护成本需要,加载耗时较长),提升用户体验
  8. 编辑器加载失败时可手动触发再次尝试加载

升级

  1. Universal Analytics 升级到 Google Analytics(分析)4 媒体资源
  2. 升级cherry-markdown编辑器至v0.7.4

v1.5.0

重构

  1. 重构站点地图实现
  2. 重构开源页面
  3. 重构开发者页面
  4. 重构文章置顶展示
  5. 重构文章全局搜索,基于lucene实现
  6. 重构移动端导航栏
  7. 重构编辑器编辑完文章后跳转逻辑,基于操作结果统一处理

新特性

  1. 添加网站使用的技术栈
  2. 个人主页文章支持标签筛选
  3. 置顶文章独立展示,易于管理
  4. 新增网站请求接口动画,提升用户体验
  5. 新增的内容展示【新内容】标识
  6. 新增暗淡蓝点open in new window
  7. 全局搜索支持电台和用户名检索
  8. 新增【新内容】和【内容有更新】特殊标签内容展示页

优化

  1. 优化网页Columns栅格整体布局(g-2)
  2. 统一footer展示组件
  3. 用户头像展示使用更加合适的Figures画像展示
  4. 网站浮动效果增强,从四边浮动改为左下浮动,增加浮动块对比来增强浮动效果
  5. 用户活动标识处理使用缓存,减少与DB交互
  6. 移除Migration脚本中关于MySQL5.7版本刷数据的SQL,减少版本对DB初始化成功的影响
  7. 优化作者其他文章展示列表
  8. 统一创建文章组件

修复

  1. 修复Alert组件关闭按钮不显示Bug
  2. 修复全局检索用户使用地址栏跳过关键字输入导致的查全库Bug

v1.4.0

新特性

  1. 新增用户喜好内容设置
  2. 新增一周内最新文章展示
  3. 新增活跃用户标识
  4. 文章如果编辑过,新增文章变更标签,以提示用户
  5. 管理员支持处理文章状态
  6. 新增所有文章展示页 链接open in new window

重构

  1. 完善部署文档
  2. 重构Upupor配置实现
  3. 重构Page跳转公共数据获取方式
  4. 重构Page切面和接口切面校验代码
  5. 重构用户管理PageController
  6. 重构Page页面冗余代码,基于AbstractViews实现
  7. 重构文章列表展示,基于ListContentDto展示

优化

  1. 用户评论自己的内容记录评论者和评论时间
  2. 首页布局调整,文章列表采用3-9布局
  3. 升级cherry-markdown编辑器

每一次的重构都是进步


v1.3.0

重构

  1. 重构文章详情
  2. 重构业务实体状态、类型字段,使用枚举,增强代码可维护性及可读性
  3. 重构申请模块代码
  4. 重构评论内容渲染代码
  5. 重构内容创建、内容编辑、状态变更代码
  6. 重构站点地图实现

新功能

  1. 网站编辑器替换为markdown编辑器
  2. 评论显示楼层
  3. 上传图片显示上传进度
  4. 页脚新增发布时间
  5. upupor支持docker构建
  6. 分享组件添加到电台和个人主页

更新

  1. MIT License 协议更新至2022
  2. 网站UI微调

v1.2.0

新特性:

  1. 添加取消置顶功能
  2. 个人主页新增关注和粉丝Tab
  3. 关注Tab、粉丝Tab、用户列表Tab、留言板Tab新增Google Feed流广告
  4. 新增浏览记录
  5. 开源

优化:

  1. 视觉UI调整

2021年12月31日 开源 Open source


v1.1.0

重构:

  1. 使用Mybatis-plus替代原生SQL
  2. 将业务代码中的登录校验抽离至配置文件
  3. 使用Spring提供的ApplicationEventPublisher替换Guava的EventBus
  4. 重构评论后消息通知(邮件、站内信)逻辑
  5. 重构回复评论的逻辑
  6. 网站图片资源做离线和在线处理
  7. 重构个人主页数据获取方式
  8. 重构广告代码,统一入口

为什么重构?

因为之前的代码写得很普通,随着自己的技术积累,发现之前写的代码很低级,所以通过一系列重构来重写部分逻辑,这样在真正放出开源的版本,可以保证代码质量有一个很大的提升

一般在什么时候进行重构

下班和休息日


v1.0.0

Upupor

为什么要开源?

upupor这个项目是自己上学时期梦想的一个实现,希望有一个自己的网站。起初,自己看过很多博客系统,它们做的很好,但是我不知道它们的具体实现,自己如果想新增一些功能或者解决一些问题,就不知道从哪里入手。 所以,经过很长时间的思考和实践,决定自己开发。开发完成后呢,上线了2年左右,自己也一直在维护,快3年了,就想着开源,看能不能帮助到别人。这个就是开源的起因

为什么提交次数很少?

因为早期开发,简单粗暴,把很多线上的用户名和密码等敏感信息写在配置中,使用bfg工具清除又产生很多冲突,索性就重新开了一个项目,清除敏感信息.

功能

  • 用户: 注册、登录、忘记密码、重置密码、登出、修改头像、设定背景、接收邮件开关
  • 内容: 内容发布、浏览、编辑、置顶、推荐、标签、分享、全局检索、评论
  • 电台: 电台创作、播放、管理
  • 互动: 关注、点赞、留言
  • 其他: 广告、标签、咨询服务等发起

页面

用户相关

  • 登录 https://www.upupor.com/login
  • 注册 https://www.upupor.com/register
  • 忘记密码 https://www.upupor.com/forget-password
  • 留言 https://www.upupor.com/profile-message/20061510361433728000
  • 个人公共主页 https://www.upupor.com/profile/20061510361433728000
  • 所有用户 https://www.upupor.com/list-user

用户管理

  • 内容管理 https://www.upupor.com/user/manage/content
  • 电台管理 https://www.upupor.com/user/manage/radio
  • 草稿箱 https://www.upupor.com/user/manage/draft
  • 收藏夹 https://www.upupor.com/user/manage/collect
  • 粉丝管理 https://www.upupor.com/user/manage/pay-attention/num/fan
  • 关注管理 https://www.upupor.com/user/manage/pay-attention/num/attention
  • 查看积分 https://www.upupor.com/user/manage/integral-record
  • 消息中心 https://www.upupor.com/user/manage/message/un-read
  • 申请管理 https://www.upupor.com/user/manage/apply

内容

  • 内容列表 https://www.upupor.com/
  • 内容详情 https://www.upupor.com/u/内容ID
  • 内容创作 https://www.upupor.com/editor?type=3
  • 电台列表 https://www.upupor.com/radio-station
  • 电台详情 https://www.upupor.com/r/电台ID
  • 上传电台 https://www.upupor.com/radio-station/create
  • 标签相关内容 https://www.upupor.com/tag/%E5%90%8E%E7%AB%AF

设置

  • 个人信息 https://www.upupor.com/user/manage/edit-user-info
  • 背景设置 https://www.upupor.com/user/manage/bg-style-settings
  • 头像设置 https://www.upupor.com/user/manage/upload-profile-photo

其他

  • 商务合作 https://www.upupor.com/business-cooperation
  • 广告 https://www.upupor.com/apply-ad
  • 标签申请 https://www.upupor.com/apply-tag
  • 咨询服务 https://www.upupor.com/apply-consultant
  • 愿景 https://www.upupor.com/vision
  • 品牌故事 https://www.upupor.com/brand-story
  • 技术 https://www.upupor.com/team
  • 致谢 https://www.upupor.com/thanks
  • logo设计 https://www.upupor.com/logo-design
  • 反馈 https://www.upupor.com/feedback
  • 积分规则 https://www.upupor.com/integral-rules
  • 站点地图 https://www.upupor.com/upupor-google-sitemap.xml
  • 关于广告 https://www.upupor.com/check-info
  • 关于置顶 https://www.upupor.com/pinned