Image Image Image Image Image

05

9 月

把玩一些纯文件CMS

  • By IanGoo

要说现在排名第一位的CMS,毫无疑问非WordPress莫属。熟悉WordPress、自己装过WordPress的,都知道WordPress依赖于MySQL数据库。

类似的,排名第一的维基类CMS是MediaWiki,同样依赖于MySQL数据库。

这些CMS使用的是PHP生成网页。但是PHP不可能无中生有,要凑出一篇网页来,必定要有数据来源。使用MySQL的CMS,数据来源当然都是数据库。可是保存数据并不是非使用数据库不可——文件也是一样的。

这恰恰是“Flat File CMS”的核心理念——数据保存于文件而非数据库。

已经在用的DokuWiki

事实上,我已经在使用DokuWiki,而且用了有一段时间了。我的个人Wiki就是使用DokuWiki搭建的。

我是用DokuWiki的理由很简单——在服务器还不甚稳定的时候(那时候经常迁移服务器数据),文件结构比数据库更容易迁移。

当然,还有一个原因——DokuWiki比MediaWiki轻巧太多了。事实上,这也是文件CMS比较突出的一个普遍优势:轻量化。本文介绍的纯文件CMS普遍都是轻量化CMS平台。

虽然相较于MediaWiki来说功能有一定的缺失,但是DokuWiki拥有非常强大的社区,通过安装插件也可以非常方便地扩展功能。

DokuWiki的数据以纯文本形式(*.txt文件)保存在/data/pages目录当中,使用的语法是DokuWiki自己的Wiki语法。DokuWiki拥有完备的Web编辑器,可以直接在浏览器中编辑页面而无需过问文件结构——事实上文件结构一般人八成是看不懂的。原装的DokuWiki可以使用UTF-8、URL等编码对中文文件进行命名,结果出来的全是%E8%81%94%E5%90%88%E5%88%86%E6%9E%90.txt这类奇葩名字,如果想要换成正常人类能够理解的联合分析.txt,少不了对DokuWiki进行一番魔改

关于DokuWiki实在是没有什么太多值得说道的,在Wiki类纯文件CMS当中,DokuWiki是极为完善的一个。内建的编辑器比专门的文本编辑器还要好用,快捷键什么的非常舒适,迁移也很简单。

简评

优点:

  • 功能非常完备的Wiki系统。
  • 强大的社区支持与插件支持。

缺点:

  • 中文语境下,因为文件名编码的问题,不太可能脱离Web页面进行编辑。

MDWiki

但是要说DokuWiki有什么问题的话,就是它的语法了——虽然说,我认为DokuWiki是一个非常成熟的语法,它比Markdown更加成熟。但是Markdown的马太效应非常明显。对于个人来说,多学一门标记语言也是需要付出额外成本的,何况DokuWiki现在没有一个比较好的编辑器,Visual Studio Code上也只有一个面向DokuWiki的着色器可以使用。

DokuWiki可以通过安装Markdowku插件来实现DokuWiki和Markdown双语法的支持(但是会有一些问题)。而MDWiki就是一个完全基于Markdown的Wiki类纯文件CMS。

MDWiki的体积极为小巧,而且技术也非常阳春——下载下来之后就三个*.html文件,只需要将想要的.html文件重命名为index.html上传到服务器,就OK了。

是的,不光不用数据库,连PHP都不用,彪悍得很。它对Markdown的解析完全通过HTML5和JavaScript进行——注意,我说它本质上其实是一个Markdown解析器,这个定位应该是没问题的。轻量化,也是需要代价的。

所以,后台、管理面板这类常规CMS里应有的东西一概欠奉。这个HTML文件的功能就是解析网站目录当中的相应文件。不过功能倒也还算丰富,导航栏、侧栏、主题选择(支持Bootstrap)都可以通过在文件系统里一顿操作猛如虎来完成。

能用到MDWiki的,一般也都是Markdown老炮了,官网文档里长篇大论的Markdown基础教程大可以不看,直接看高级部分就可以了。

简评

优势:

  • 极度轻量化。
  • 对服务器毫无要求,一个http服务器就能欢快地跑起来。

劣势:

  • 过分地诘屈聱牙,并不是很友好。
  • 作为Wiki系统,链接功能远远没有DokuWiki或者MediaWiki那么强大。特别是指向空链接的功能,第一是无法区分空链接和已有链接,第二是无法通过空链接来新增词条,说白了还是因为MDWiki本质上是个Markdown解析器,Wiki正经的功能并不完备。

Pico

前面两个都是Wiki CMS。下面是一些通用型的CMS。第一个介绍的是Pico

和MDWiki一样,Pico支持Markdown,而且同样没有管理后台,一切操作都必须从文件系统入手。

但是Pico和MDWiki也有一些区别。MDWiki说到底还是个面向Wiki的系统,内容占据主导,但是Pico……我的感觉是主题才是本体啊……

Pico CMS, “Magazine” Theme

譬如上面的“Magazine”主题,就是“主题才是本体”的典范。下下来之后打开立面的content一看,满篇的都是<div class="blah blah blah">,而这个div定义的是一个带有动画展开效果的块。

视觉效果是非常华丽但是……

我用纯文件CMS+Markdown了,竟然还要手撸HTML代码?

而且每个主题的配置、Markdown的写法都大相径庭,从设计的哲学上来说,这是样式和内容高耦合的反面典型,不可取。

简评

优势:

  • 设计还是挺精美的。
  • 不算重。

劣势:

  • 主题和内容绑定过深,更换主题很有可能导致内容无法正确显示。
  • 使用还是相当麻烦的。某些主题带有太多专有的Feature,甚至必须手撸HTML代码,很蛋疼。

Typemill

“PHP版Gitbook或者Bookstack”。这是我对Typemill的观点。

Typemill Demo

Typemill的语法是Markdown,采用层级目录来组织内容,有在线的管理后台。所以,即便是服务器没有开放远程目录也可以使用。

Typemill还带了一个非常好用的可视化编辑器,对于完全没有Markdown基础的新手用户也可以比较方便地使用。Typemill还支持\LaTeX公式的编辑,这一点倒是非常方便。

但是Typemill也有一个很严重的缺陷——不支持中文节点。Typemill似乎是无法解析以中文命名的页面。比如,在自己的网站中新建了一个名为Chapter I的页面,该页面的URL就是http(s)://domain_name/chapter-i,但是,如果新建的页面为中文,那么就会返回一个空字符,变成http(s)://domain_name/,相应的,如果这时候建立另一个中文字符的页面,就会提示XXX已经存在

所以,应该是Typemill没有像DokuWiki那样做编码解析。作者很明显是拉丁语系用户,所以亚洲用户就只能憋着了,要么只能将页面名称统一命名为拉丁字符,这一点极大限制了Typemill的使用。

简评

优势

  • 群众喜闻乐见的树状结构。
  • 优良的可视化Markdown编辑器。
  • 可通过拖拽的方式对章节进行排序。
  • \LaTeX支持。
  • PHP环境,部署方便。

劣势

  • 无法支持中文页面。

WonderCMS

WonderCMS是一个贼奇葩的CMS,它自称是“最小的纯文件CMS”——话说,MDWiki在看着你呐……

一般来说,像这种追求小巧轻量的CMS往往在易用性上做得惨不忍睹,Pico就是一个很好的例子,但是很惊奇的是,Wonder CMS竟然很容易使用。它没有传统意义上的“编辑后台”,所有的内容全都是直接在页面上编辑(In-Page Editing)。

WonderCMS,编辑页面

WonderCMS不论是功能还是使用难度都……很……入门。

难度上的入门自然很容易看得出来:页面编辑非常简洁明了且直截了当。但是功能上的入门得试用之后才会明白——它的页面基本上是固定的,目测没办法修改页面的背景、版式等布局信息。这也很大程度上限制了WonderCMS的适用范围。

当然要说门槛也不是没有,页面内容完全是HTML源码——😂又是手撸HTML代码……

简评

优点:

  • 极为小巧。
  • 非常直观的In-Page Editing。

缺点:

  • 灵活性很差。
  • 可定制性很差。
  • 手撸HTML。

Kirby

Kirby是一个非常不错的纯文件CMS。不过这货貌似是收费的,90刀。

Kirby的内容分成三大类:Photography、Notes和Pages。Photography,顾名思义,就是图库,Notes是图文内容,但是不会在导航栏显示,Pages是显示在导航栏里的页面。

从这个结构就可以看得出来,Kirby最合适的用途是给摄影师、插画师、CG艺术家等产出物以图片为主的用户作为一个图片托管站点使用。

从这一点上看,Kirby的用途相对比较单一。就托管图片而言,WordPress、Drupal都可以做,但是Kirby显然比WP和Drupal更加轻量、简洁,当然要付出的代价就是相对弱一些的功能(包括自定义范围),以及购买License的费用。

简评

优点:

  • 针对特定的用途优化,使用良好而且非常容易上手。

缺点:

  • 收费。
  • 因为是针对特定的用途所以不够灵活。

其实,泛用性、专用性和易用性本身就是一组矛盾体。WP以及更加泛用化的Drupal想要针对某一特定领域优化好,本身就是一件比较费神的事情。专用的CMS在自己的领域内自然是如鱼得水,但是想要做别的用途就相当费事。

我就想起了我之前做的一个测试——能不能用DokuWiki写Blog?可以,麻烦,且效果不佳,何如继续使用WordPress。

Automad

Automad是一个非常艺术的CMS。

Automad的设计非常简洁,默认的黑白灰配色有些性冷淡,当然,Automad可以安装其他的主题。

Automad使用的也是In-Page Editing,支持Markdown。当然,也可以在后台编辑页面,就是编辑区域实在是小的可怜,和一堆设置选项混杂在一起,一开始用的话根本找不到。设置项也很多很复杂,不过好处就是可定制性非常不错。

除了标准的Markdown语法,Automad还有一些其他的组件,如Gallery、Slide Show等可以让页面的内容更加丰富,一般的图文编辑是没什么问题的。

简评

优点:

  • 非常简练、优雅的设计,自己设计模板也不算复杂。
  • 比较灵活的自定义功能。
  • 很容易上手的In-Page Editing特性。
  • 共有和页面专有的双层级媒体文件管理功能。

缺点:

  • 不支持中文页面名。

OK,以上就是最近玩的几个纯文件CMS。如果想要架设一个网站又觉得WP、Drupal或者MediaWiki这类需要上数据库的CMS太过于沉重的话,这些都可以尝试一下。但是它们也或多或少都有点偏科,找到合适自己的才是最重要的。

以我的感受:

如果想要做一个Wiki站,毫无疑问,DokuWiki作为可以和MediaWiki分庭抗礼的Wiki类CMS Top 2之一,是一个极佳的选择。MDWiki——我觉得它只能算是没有PHP时候的一个无奈的选择。

如果想要做一个类似GitBook、Sphinx或者BookStack那样的文档平台,Typemill非常不错——前提是能够解决中文页面名称的问题。我已经在Github上提交了一个Issue,看看作者能不能考虑一下。当然要是自己有能力的话魔改一下也不是不可以。

图片展示类的网站就很明显了,Kirby很强——当然也比较贵。

综合性的网站,还是Automad比较好,比Pico更好用——当然和Typemill一样,需要解决中文文件名的问题。同样的,我也提交了Issue。不过看样子这个项目已经快一年没有动静了,也不知道能不能得到回复。

Tags |