再次迁移新博客

基于Virblog构建的博客

发布于2015515日 -

经过两周的开发新博客终于上线了

访问方式

目前本博客同时提供IPv4IPv6的访问

  • dangfan.mewww.dangfan.me两个域名同时支持IPv4IPv6的解析
  • 4.dangfan.me只解析IPv4
  • 6.dangfan.me只解析IPv6

为什么要做一个新的

原来的博客使用一个叫做ground-control的开源项目构建该项目使用Meteor一个统一前后端的Web框架完成早前我对ground-control根据自己的需求做了一些定制开发替换了内置的markdown引擎增加了多语言的支持加入了disqus等模块

虽然旧版博客很好地工作了将近两年但它仍有以下不足

  • 不支持分页
  • 页面不是响应式的
  • 没有一个好用的后台
  • 中文排版不够理想
  • 单页结构对搜索引擎不够友好

以上的这些不足虽然可以通过扩展ground-control来实现但因为该项目已经不再有人维护所以我决定放弃它自己动手写一个新的

新博客用什么做的

在过去的一年里我写的最多的后端代码是Python然后是Javago对比这几种语言Python素来是我的最爱但诸多实践表明对我来说想写高性能的Python后端程序实在是太困难写过一点go语言却对它也没什么感觉而本人虽然是个Java却不得不承认JVM的性能实在是一流朋友的代码遇到了性能问题我都会推荐他迁移到JVM

正好前不久Spark变得无比火热我也稍稍了解了一下Scala一直关注caoyuan老师的微博看他总是推崇Akka加上caoyuan老师在贵荚用Scala解决了蛮多问题我便决定借这个机会学习一下Scala

新博客的后端是用JVM上的NIO WEB框架——Play实现的管理后台的前端主要是用AngularJs来实现的

以下是用到的详细工具列表

  • Play Framework 2.4运行在JVM上的基于NIOWeb框架同时提供JavaScala两套API
  • Slick 3.0它管自己叫做Functional Relational MappingORM不同的是Slick并不要求用户在数据库和对象之间建立映射而是提供了一套API可以很流畅地直接做数据库的各种操作
  • Slick-pg扩展了Slick提供了对PostgreSQL更好的支持
  • pegdown一个MarkdownJava实现提供了对包括GitHub Flavored Markdown在内的一些扩展语法的支持
  • OpenCC简体中文到繁体中文的转换

新博客提供哪些功能

本项目取名为Virblog目前已经开源了该项目尚处于非常早期的阶段实现了如下功能

  • Markdown包括GFM等扩展语法
  • 较为完整的多语言支持用户可以很容易地添加语言修改页面中任意元素在不同语言下的显示内容
  • 根据用户浏览器的Accept-Language和用户的IP地址自动识别语言
  • 标签
  • 基于Disqus的评论
  • 一键简繁转换
  • 特别针对中文的排版优化
  • 后台管理
  • 友情链接

以下是一些截图

正在开发的功能包括

  • 友情链接
  • 中文的Web Font

欢迎大家使用Virblog搭建自己的博客如果遇到任何问题提交Issue

更欢迎大家参与到本项目的开发中


题图Felt Pen Rainbow

作者Christoph Schansky