自从在大学开始接触网站,建站就成了我的爱好之一,在网上见到各式各样优秀的网站,就一直想做一个自己的站点,但由于我并非计算机相关的专业,没有资金也没有技术,所以只能使用现成的网站程序,甚至是主题也只能套用现成的,自由性约束很大,总是不能令自己满意,毕竟并非为自己量身定做的网站程序和主题,总是有些地方不适合自己。

后来,我一边自学计算机相关知识,一边在现成的主题上面进行二次开发,结果发现因为主题太大太杂,很多地方的修改都有所关联,越改越乱,以致痛苦不堪。也因此挖下了许许多多的坑。

因为内心的焦虑急躁,又过于追求完美,总是“欲求不满”,所以网站换来换去,甚至于域名也换来换去,早已丢失了原本生产内容,记录内容的初心。

虽然总是对自己说“回归初心”,“回归本质”,但却总是因为一些问题而出现动摇,费神费时费钱,为此我也懊恼不已但又控制不了自己。

我不禁感慨,互联网虽然拥有源源不断的新鲜信息,却也同时充满了诱惑,在各种各样的海量信息冲刷之下,人心浮躁,大数据的出现并未让一般人获益,反而是先损害普通人的利益,更令人焦虑不安。曾几何时也想过远离互联网一段时间,过回从前没有网络、没有电脑游戏的时光,虽然往事不堪回首,但却也比如今稍微轻松一些。

Flask从入门到放弃

在RewrZ之前,我尝试使用Flask进行开发,因为这是我在前期调查中,绝大多数国内网友都推荐的轻量级框架,皆说简单快速,易学,性能好,爽得飞起来之流,还说最适合个人小团队,特别是某站的人更是对其推崇备至,我误以为该站点的人可信度跟内容价值都比较高,于是入坑。

耗费了我两个月的时间,终于完成了绝大部分的博客功能,从注册登陆,密码重置,博客发帖,分类,标签,评论,甚至成功在树莓派上面部署nginx+uwsgi+virtualenv环境正常运行了起来。

但这已经耗费了我太多太多的热情与时间,剩下还有许许多多的细节需要处理,那些恶心的代码逻辑,要是我后面想要增加什么功能,估计全部要再改一遍,当时我头都大了,这要再花多少时间,才能使其看起来像模像样啊!这花了两个月时间才做成的半残次品,还要投入多少的时间精力才能用在生产环境啊!我还要等多长时间才能老老实实地写博客呢?

Flask确实是简单快速,几行代码就能够运行起一个“网站”,但这个“网站”要真的可以实际使用,能够像个模样才行啊!

Django从入门到重写

偶然一次浏览网页,我看到了“追梦人物”博客上面的Django入门教程,粗略看了一遍之后惊奇地发现比Flask简单多啦!没有那么多的坑和轮子要自己踩、自己造,于是决定跟着这个入门教程自学Django,用Django重写自己的博客项目,我不再理会什么性能,什么轻量级之类好听的词语(然而,Django默认设置的性能实在比Flask差多了),对照着教程,几天内就做出了一个像模像样的博客了,不知道的人可能还会以为这是WordPress驱动的呢。我这个Django入门项目,就是RewrZ。

与入门教程不同的是,我去掉了教程中的Markdown功能,因为我不需要这个功能,可能后续会添加该功能,但是仅仅是为了开放给评论使用,我自己则采用了django-ckediter编辑器,这个对于我来说使用更加方便。

在原入门基础上面,我也有所舍弃、改进,以适应自己的需求,例如我为文章、标签、分类添加了别名,可以使用别名作为固定链接,使之链接更加美观。固定链接由一个全局开关掌控,并且更换固定链接之后,之前的链接一样可以完美访问,它会自动进行301跳转,完美解决了更换了固定链接后影响全站链接的问题,这也是WordPress所不具有的功能。

在评论上面,我增加了父字段让多级评论成为可能,实现嵌套评论功能,但由于Django默认模板的功能限制,无法像Jinja2那样进行递归,所以暂时只能一级显示。但这并不是什么大的问题,因为嵌套评论我个人认为最多只需要有两级就够了,太多反而不美。这也是我又装载了Jinja2引擎的原因,考虑将模板引擎改为Jinja2,但发现又会很多标签用不了,前端模板要进行改写放到Jinja2的文件夹下面,所以暂时不考虑处理了。后来我又发现了Django有个评论扩展,可以实现嵌套评论并显示在自带的模板引擎上面,但这些目前来说都不重要了,后面再做考虑。

Django入门项目——RewrZ

RewrZ,灵感是来自《Rewrite》及其OP「Philosophyz」——最终的哲学。RewrZ,即最终的改写(Rewritez),最后重写的意思,加上Python本身也是一种哲学语言。但除去自身的意思,也用以告诫自己这是最后的改写,不要再挖坑等等多层意义。

RewrZ后端使用Django开源框架开发,前端则是基于now-ui-kit的MIT开源版本修改。目前仅拥有基本的博客功能:

  1. 文章
  2. 分类
  3. 标签
  4. 评论
  5. 搜索

我虽然喜欢简洁,但并不喜欢“极简”,很多事情不能极端,我更倾向于中庸之道。

有些人喜欢用那些极简的博客程序,认为这很酷,简单到如此,为何不直接用TXT写博客直接扔上网站目录了事,这会更加的酷。

有些人喜欢用那些功能强大的程序,认为这很方便,但我使用过功能强大的WordPress主题,还有功能强大的论坛程序Discuz,后台管理那些复杂繁多的设置,直看得我头疼。

我个人比较喜欢开箱即用,其他东西可以后面再慢慢调整修改,甚至是增加功能扩展。

所以RewrZ的设计原则就是——简洁中庸,但简洁却又不失强大。只要你懂Django,就有无限的可能进行自由地扩充功能。

RewrZ并不提倡或者说鼓励收集访客的任何信息,这在评论模块上面没有记录访客的IP地址,浏览器UA可以体现出来,仅保留访客主动提供的用于联系和头像展示使用的邮箱地址,而且是不公开的。这对于国内全面强制性要求网络实名,评论发帖也要实名,算是一种无声的抗议吧。我认为进行全面的监控、管控,是通向极权主义和伪乌托邦世界的必经之路。

RewrZ功能设置

顶部有三个社交图标,仅仅是为了集齐“What The Fuck?”(WTF),用来玩梗的,别无他意。首页之所以有七个互联网各类社交应用的图标,而且还有其中颜色,也仅仅是为了向《七龙珠》、《七色彩虹天使》……等童年二次元ACG致敬。Logo是自己用PS做出来的,“RewrZ”的“R”和“Z”叠在一起,一黑一白,一阴一阳,而且并没保留PSD文件。这些都需要自己根据需要修改替换。

固定链接、网站标题、描述、后台尝试登陆次数限制等设置,均可以在setting.py文件自行修改,很多地方都加了中文注释。

改完这些之后,你就可以将其上传到你的服务器上面进行部署了。

PS:二步验证功能建议登录后台设置好用于验证的设备之后再启用,否则一旦启用,你就登录不了后台了……

RewrZ开源协议

RewrZ使用的是AGPL开源协议(这主要是因为RewrZ使用的后台扩展使用了AGPL协议),也就是说,你在使用该程序的时候,你必须将你的网站程序源代码公开给你的访客下载,注意这并不包括非程序一部分的各类文件数据!不要将自己的个人文件或者数据库都上传公开了,当然如果你喜欢,你也可以这么做。

历史纪录

2017-10-10

正式注册rewrz.com域名,这个其实我已经计划了半年了,一直在考虑是不是等旧域名过期之后再注册,趁着今天萌节注册.moe域名,实在忍不住也一同先注册下来了,有时间再部署上线。

2017-10-15

部署上线,并将公开的源代码托管到GitHub。

评论: 关于RewrZ

    暂无评论
  • 查无此人
    你的名字
    2017年10月4日 23:59
    这是个一级评论示例。
    • 没有这个人
      我的名字
      2017年10月5日 00:00
      这是个二级评论示例。