Grav CMS 漫聊

来源:互联网 发布:淘宝什么皮肤是真的 编辑:程序博客网 时间:2024/05/16 01:01

Grav 介绍

Grav 是一个支持多主题和多插件的 Markdown CMS。可应用于个人博客、小型内容发布平台、帮助文档平台、单页产品展示。

Grav 商业模式

http://getgrav.org 免费提供 CMS 和各类插件主题,培养生态;http://trilby.media 负责提供 Grav 咨询、功能定制、主题定制、插件定制、数据迁移等收费服务。这里值得注意的是,两个站完全分开,getgrav 免费开源,trilby.media 收费服务,清清楚楚,用户也不会有被欺骗的感觉。试想一下,如果两个站融为一个,给用户的感觉要尴尬得多。

Grav 架构特点

Grav 的初心是做一个不依赖数据库的 Flat CMS,所以选择 Markdown 作为内容载体。

但 Markdown 原生用途是写文档, Grav 的野心却超越了文档/博客(几乎所有 CMS 都有这个倾向),它还可以支持单页站、全文搜索、shortcode,甚至购物车。为了达到这个目的,它必须通过某种方式实现功能的组合。 Grav 通过下面几个途径达成这个目标:

  • markdown 文档的 header (又称 frontmatter)中记录格式化的元数据
  • grav core 提供自动解析 header 的功能
  • theme 渲染 header 数据
  • plugin 提供动态功能组件,如搜索、发短信、留言等等,供 theme 调用

Grav 适用范围

Grav 特别适用于个人博客、单页站,文档帮助系统只能说勉强还可以,知识管理系统很不合适。

如果你准备用 Grav 做知识管理系统,需要留个心。Grav 组织文件的方式比较特别,和普通的 Markdown 系统不同。每个页面并不是一个 markdown 文本文件,而是由一个目录和里面的 markdown 文件组成,且 markdown 文件的名字不能随意命名,而是要命名成主题里面规定的名字。 例如,假设你有一个 load_balance.md 文件,把它迁移到 Grav 后,会长成这样:

03.load_balance/docs.md

03 是表示这篇文章在目录中的顺序,docs 表示使用 docs.twig.html 模板来渲染 docs.md 里的文本内容。

显然,这种方式对于知识管理(KM)系统来说很不合适。作为对比,不妨看看 gitbook 定义的组织方式,对 KM 系统更友好。