个人网站 https://www.fishmaple.cn io:https://fishstormx.github.io/fishmaple/ 本站点技术栈:Spring SpringBoot Mybatis Shiro前端使用Vue+Element UI
- 博客:支持个人博客的编辑,博客保存时可以自动生成二级三级标题的锚点,在阅览博客的时候会根据滚动位置切换标题,博客可以高亮渲染代码内容,同时也会标注出词典中的词汇,可以使用//TODO来标记一篇有待继续编辑的博文,可以使用tag进行博客的分类筛选
- 工具箱:可以上传一些工具性质的因应用文件,每个分类最多上传三个文件,采用文件流传输下载
- 实验室:平时一些练习的东西和项目都会放在里面,包括有趣的爬虫、实用的小工具等等,具体的细节暂时不在这里展开来说
- 用户系统:网站有一个最基本的用户系统,用户登录会话时长被设定为12小时,用户的密码采用基于SHA1的变式加密,针对每一套用户密码迭代加密次数和算法都不相同,-保证了安全。是一个单向加密的过程,即不可逆,因此密码无法找回,也无法被任何人解码出来
- 站内搜索:此处使用了百度NLP开放平台的语义分析,通过较为复杂的算法实现全站全文搜索,可以挑选模糊匹配的级别,由于为了准确性没有采用索引的方式搜索,性能较低,但是用在站内搜索这点数据量够用了。
- Dwiki:用户自拟词典,采用标签云展示词条,在博客中会渲染对应的词汇,用title值(鼠标停留)来展现,词典词条附加了词汇联想(用的百度的爬虫)
- 日志查看:查看项目当前在服务器的运行log,为了更好地可读性要做样式处理,所以设定了每5分钟处理一次,即每5分钟更新一次日志
- 当时才刚刚接触到前端项目工程化,对此不是特别熟悉,当然这不是主要原因
- 网站想要被搜索引擎收录获得相对靠前的排名。搜索引擎目前的爬虫都是普通的源代码,读不到异步加载的内容,前后分离的异步数据渲染会影响到网站的排名,去除了数据,搜索引擎会认为这是个很糟糕的页面,所以一些重要的页面同时用到了Thymeleaf模板引擎加载数据(只是给搜索引擎的爬虫看的,实际的网站内容仍旧依赖异步加载)
想要把个人博客改为一个博客系统,需要注意的点:
- 整体重构,结构简单,取缔不需要的模块如工具箱实验室
- 编辑器可调整为富文本+markdown兼有的方式
- SEO友好型,tag,前后一体使用模板引擎注入数据,同时渲染爬虫友好数据和展示数据,但前端依旧保持使用vue+ElementUI,并且加入网站地图生成和Rss订阅
- 独特的锚点跟随和词典渲染需要进一步优化
- 站内搜索为求高效尝试改为Elasticsearch
- 因为是博客系统,所以要尽量改元素为可配置的,例如欢迎词、封面、友链
- 用户系统可以更加简单,个人博客系统不需要很复杂的用户系统
- 使用前端锚点监测访问事件,出用百度统计的教程亦可
- 前端界面的一些优化和交互在此不予详述