Releases: yangrunkang/upupor
Releases · yangrunkang/upupor
v1.7.0
重构
- 重构草稿,将草稿内容与文章分离,简化内容处理逻辑
- 重构访问者功能,移除高度重复表viewer表
- 重构实现,分页UI在html中自定义渲染,后端返回分页元数据(注意:不使用js来计算分页的原因是为了考虑SEO,让搜索引擎可以分页录入索引)
- 重构与用户交互有关的代码,重构后,这部分代码简单、易懂、易拓展
- 重构Page页面耗时计算方式,使用StopWatch
- 重构上传文件流方式代码,根据不同的文件类型处理
- 将邮件和站内信重构为消息模型MessageModel,消息发送基于MessageModel来处理,不再强依赖与业务实体
2022-11-11
- 使用Semantic UI(v2.5.0)重构部分页面实现
2022-11-20
- 重构Upupor项目结构,为
提供Upupor API服务
奠定基础- maven pom 依赖调整,将
thymeleaf
依赖迁移到upupor-web模块,这样就将服务端渲染部分代码拆分出来了,方便后面迭代upupor-api模块代码2022-11-24
upupor-task模块
,定时任务代码拆分出来单独作为一个模块,反向驱动项目代码更加合理健康2022-11-24
upupor-data模块
,专门提供数据服务,目前以提供MySQL数据服务为主,代码职责更加清晰,便于后续业务及功能迭代2022-11-25
- maven pom 依赖调整,将
- 将Entity中的冗余代码迁移至增强类中,页面数据渲染使用增强类,Entity只用作与DB表的数据映射
重要重构
2022-11-30
新特性
- 管理员支持批量处理恶意刷文用户
- 用户名权重升级,全站唯一
- 添加管理员标识
- 文章列表展示标签
- 添加 ECO·程序员的生活记录二级域名
2022-10-05
- 用户长时间未更换头像在用户公共主页提醒用户
2022-11-11
- 【草稿箱】添加
全新
和已有文章的草稿
标识,提升用户体验2022-11-23
优化
- 生产环境图片资源移除域名,使用/开头来加载资源,便于后续迁移只需要改nginx配置即可
- SQL日志实现类支持配置,环境变量
SQL_LOG
- 文章和用户标签使用fragment统一处理展示,便于后续标签功能迭代
fromProfile
参数移除,使用字符串替代,入参为fromPage
,便于后续针对不同来源页面做个性化开发及拓展- 站点地图文件大小优化,按照内容切分为多个文件
- Upupor网站视觉调整,移除卡片阴影及边框效果,让视觉重点回归到文字上
2022-10-23
- 缓存Key独立维护
- 调整【文章管理】和【草稿箱】表格列,微重构每行数据的标签
2022-11-23
升级
- 升级cherry-markdown编辑器至v0.7.5,编辑器内预览可以点击放大图片
- 升级cherry-markdown编辑器至v0.8.8
2022-11-16
修复
- 修复文章管理搜索按钮无效Bug
- 修复点赞用户未展示Bug
v1.6.0
重构
- 文件对象存储弃用阿里OSS,改为自建,基于minio开源版本自建
- 重构文件上传逻辑,上传逻辑与业务剥离,提升与OSS交互相关代码的可维护性
新特性
- 新增upupor-security限制器模块
- 接口限流,基于Redis实现滑动窗口,从而实现限流
- 关键词脱敏
- 自建对象存储,基于Minio开源版本实现
- 全局搜索关键字标红突出
- 电台文件支持上传aac格式文件
优化
- 包结构调整,将数据访问层和数据聚合层从业务层抽出来,独立为数据层(data)
- 异步化获取数据,基于CompletableFuture实现
- 用户主页[关注]和[粉丝]Tab按照用户活跃时间倒序
- 部署文档完善,添加Minio相关配置
- 更新github issue模板,方便提交新特性、Bug等内容
- 站内链接优化,站内链接在当前域名下跳转,维持登录状态
- 编辑器加载提示信息优化(因最小维护成本需要,加载耗时较长),提升用户体验
- 编辑器加载失败时可手动触发再次尝试加载
升级
- Universal Analytics 升级到 Google Analytics(分析)4 媒体资源
- 升级cherry-markdown编辑器至v0.7.4
修复
无
v1.5.0
重构
- 重构站点地图实现
- 重构开源页面
- 重构开发者页面
- 重构文章置顶展示
- 重构文章全局搜索,基于lucene实现
- 重构移动端导航栏
- 重构编辑器编辑完文章后跳转逻辑,基于操作结果统一处理
新特性
- 添加网站使用的技术栈
- 个人主页文章支持标签筛选
- 置顶文章独立展示,易于管理
- 新增网站请求接口动画,提升用户体验
- 新增的内容展示【新内容】标识
- 新增暗淡蓝点
- 全局搜索支持电台和用户名检索
- 新增【新内容】和【内容有更新】特殊标签内容展示页
优化
- 优化网页Columns栅格整体布局(g-2)
- 统一footer展示组件
- 用户头像展示使用更加合适的Figures画像展示
- 网站浮动效果增强,从四边浮动改为左下浮动,增加浮动块对比来增强浮动效果
- 用户活动标识处理使用缓存,减少与DB交互
- 移除Migration脚本中关于MySQL5.7版本刷数据的SQL,减少版本对DB初始化成功的影响
- 优化作者其他文章展示列表
- 统一创建文章组件
修复
- 修复Alert组件关闭按钮不显示Bug
- 修复全局检索用户使用地址栏跳过关键字输入导致的查全库Bug
v1.4.0
新特性
- 新增用户喜好内容设置
- 新增一周内最新文章展示
- 新增活跃用户标识
- 文章如果编辑过,新增文章变更标签,以提示用户
- 管理员支持处理文章状态
- 新增所有文章展示页 链接
重构
- 完善部署文档
- 重构Upupor配置实现
- 重构Page跳转公共数据获取方式
- 重构Page切面和接口切面校验代码
- 重构用户管理PageController
- 重构Page页面冗余代码,基于AbstractViews实现
- 重构文章列表展示,基于ListContentDto展示
优化
- 用户评论自己的内容记录评论者和评论时间
- 首页布局调整,文章列表采用3-9布局
- 升级cherry-markdown编辑器
每一次的重构都是进步
v1.3.0
重构
- 重构文章详情
- 重构业务实体状态、类型字段,使用枚举,增强代码可维护性及可读性
- 重构申请模块代码
- 重构评论内容渲染代码
- 重构内容创建、内容编辑、状态变更代码
- 重构站点地图实现
新功能
- 网站编辑器替换为markdown编辑器
- 评论显示楼层
- 上传图片显示上传进度
- 页脚新增发布时间
- upupor支持docker构建
- 分享组件添加到电台和个人主页
更新
- MIT License 协议更新至2022
- 网站UI微调
v1.2.0
新特性:
- 添加取消置顶功能
- 个人主页新增关注和粉丝Tab
- 关注Tab、粉丝Tab、用户列表Tab、留言板Tab新增Google Feed流广告
- 新增浏览记录
- 开源
优化:
- 视觉UI调整
2021年12月31日 开源 Open source
v1.1.0
重构:
- 使用Mybatis-plus替代原生SQL
- 将业务代码中的登录校验抽离至配置文件
- 使用Spring提供的ApplicationEventPublisher替换Guava的EventBus
- 重构评论后消息通知(邮件、站内信)逻辑
- 重构回复评论的逻辑
- 网站图片资源做离线和在线处理
- 重构个人主页数据获取方式
- 重构广告代码,统一入口
为什么重构?
因为之前的代码写的很普通,随着自己的技术积累,发现之前写的代码很低级,所以通过一系列重构来重写部分逻辑,这样在真正放出开源的版本,可以保证代码质量有一个很大的提升
一般在什么时候进行重构
下班和休息日
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