经过两周的开发 ,新博客终于上线了!
访问方式
目前 ,本博客同时提供 IPv4 和 IPv6 的访问:
- dangfan.me 和 www.dangfan.me 两个域名同时支持 IPv4 、IPv6 的解析
- 4.dangfan.me 只解析 IPv4
- 6.dangfan.me 只解析 IPv6
为什么要做一个新的?
原来的博客使用一个叫做 ground-control 的开源项目构建 ,该项目使用 Meteor (一个统一前后端的 Web 框架) 完成 。早前 ,我对 ground-control 根据自己的需求做了一些定制开发 ,替换了内置的 markdown 引擎 、增加了多语言的支持 、加入了 disqus 等模块 。
虽然旧版博客很好地工作了将近两年 ,但它仍有以下不足:
- 不支持分页
- 页面不是响应式的
- 没有一个好用的后台
- 中文排版不够理想
- 单页结构对搜索引擎不够友好
以上的这些不足 ,虽然可以通过扩展 ground-control 来实现 ,但因为该项目已经不再有人维护 ,所以我决定放弃它 ,自己动手写一个新的 。
新博客用什么做的?
在过去的一年里 ,我写的最多的后端代码是 Python ,然后是 Java 和 go 。对比这几种语言 ,Python 素来是我的最爱 ,但诸多实践表明 ,对我来说 ,想写高性能的 Python 后端程序 ,实在是太困难 。写过一点 go 语言 ,却对它也没什么感觉 。而本人虽然是个 Java 黑 ,却不得不承认 ,JVM 的性能实在是一流 。朋友的代码遇到了性能问题 ,我都会推荐他迁移到 JVM 上 。
正好前不久 ,Spark 变得无比火热 ,我也稍稍了解了一下 Scala 。一直关注 caoyuan 老师的微博 ,看他总是推崇 Akka; 加上 caoyuan 老师在贵荚用 Scala 解决了蛮多问题 ,我便决定借这个机会学习一下 Scala 。
新博客的后端是用 JVM 上的 NIO WEB 框架——Play 实现的 ,管理后台的前端主要是用 AngularJs 来实现的 。
以下是用到的详细工具列表:
新博客提供哪些功能?
本项目取名为 Virblog ,目前已经开源了 。该项目尚处于非常早期的阶段 ,实现了如下功能:
- Markdown (包括 GFM 等扩展语法)
- 较为完整的多语言支持 ,用户可以很容易地添加语言 ,修改页面中任意元素在不同语言下的显示内容

- 根据用户浏览器的
Accept-Language
和用户的 IP 地址自动识别语言
- 标签

- 基于 Disqus 的评论
- 一键简繁转换

- 特别针对中文的排版优化
- 后台管理
- 友情链接
以下是一些截图:

正在开发的功能包括:
欢迎大家使用 Virblog 搭建自己的博客 ,如果遇到任何问题 ,请提交 Issue 。
更欢迎大家参与到本项目的开发中!
题图: Felt Pen Rainbow
作者: Christoph Schansky