追梦人物❤️包子 博主
一直走在追梦的路上。

博客代码开源啦

2019-09-195721 阅读3 评论

此前很多同学和我要过博客的源码,但由于当时代码实在写的太烂,没好意思给,也没好意思把代码放到 GitHub 上,怕人见笑。

最近一段时间终于下定决心来把博客的代码好好重构了一遍,由于前期代码实在写的太烂,重构过程也是异常艰辛,几乎等同于重写,当然也从中学习了很多新的知识,稍微列举一下重构的内容吧。

  • 重构全部模板。之前为了省事,各种同内容的模板都是复制粘贴,导致大量重复的模板内容,模板也没有拆分,一个模板包含大量内容,难以进行模块化维护。重构后,灵活使用自定义模板标签和 include 标签,模板内容更加模块化,复用性大大增强。
  • 重构模型。此前由于模型多次改动,以及重构过程中模型的改动,导致产生了大量 migrations 记录。这里我学会了在不破坏数据库数据的情况下,如何清理掉历史 migrations 记录,重新生成全新的 migrations 文件。
  • 重构全文搜索。搜索用的 django-haystack + whoosh + jieba分词的方案,关键是要解决中文搜索的问题。之前从网上参考他人的博客文章,但实现其实很不优雅。这次直接参考 django-haystack 的源码,优雅地实现了中文全文搜索。
  • 重写整个前端。重写了整个 UI,非常注重响应式设计,移动端访问也有非常好的效果。此前静态资源是一股脑地扔到 app 里,没有打包,导致博客访问时需要加载大量静态资源。重构后引入 Webpack 作为打包工具,前端开发变得异常轻松。
  • 重构了整个评论系统,采用 Vue + django-restframework 前后端分离开发方案,评论体验前所未有地提升。
  • 引入 Docker 部署方式,几条命令就可无痛上线运行。
  • 其他各种细节上的优化...

倾注了大量精力重构后,自我感觉博客代码勉强可以达到与君一阅的水平,所以将代码放在了 GitHub 上,请君指点。

当然,现在博客仍然有很多不足的地方,所以暂且 release 为 0.1.0 版本吧。

不过,v0.1.0 只是开始,后续将持续加入各种新的特性,具体可以看 django-blog-project 版本规划与新功能开发路线图

说了这么多,代码在哪呢?

在这里:django-blog-project

走过路过还请不吝给个 star(o(* ̄3 ̄)o

-- EOF --

3 评论
登录后回复
heping945
2019-10-12 02:24:47

我就是不是很懂

一个评论功能怎么也是md编辑器的样子
|方法|描述|
|-|-|
|concat()| 连接两个或更多的数组,并返回结果。|
|join()| 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。|
|pop()| 删除并返回数组的最后一个元素|
|push()| 向数组的末尾添加一个或更多元素,并返回新的长度。|
|reverse()| 颠倒数组中元素的顺序。|
|shift()| 删除并返回数组的第一个元素|
|slice()| 从某个已有的数组返回选定的元素|
|sort()| 对数组的元素进行排序|
|splice()| 删除元素,并向数组添加新元素。|
|toSource() |返回该对象的源代码。|
|toString() |把数组转换为字符串,并返回结果。|
|toLocaleString()| 把数组转换为本地数组,并返回结果。|
|unshift()| 向数组的开头添加一个或更多元素,并返回新的长度。|
|valueOf()| 返回数组对象的原始值|

回复
heping945 heping945
2019-10-12 02:25:05
方法 描述
concat() 连接两个或更多的数组,并返回结果。
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop() 删除并返回数组的最后一个元素
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
reverse() 颠倒数组中元素的顺序。
shift() 删除并返回数组的第一个元素
slice() 从某个已有的数组返回选定的元素
sort() 对数组的元素进行排序
splice() 删除元素,并向数组添加新元素。
toSource() 返回该对象的源代码。
toString() 把数组转换为字符串,并返回结果。
toLocaleString() 把数组转换为本地数组,并返回结果。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
valueOf() 返回数组对象的原始值
回复
heping945
2019-10-12 02:23:32

测试

回复