grav cms入门
准备迁移wp到基于markdown的Php平台,最好没有数据库这类东东,因为我用的原来万网的虚拟主机,只提供php空间,没有ssh后台登录界面。搜来搜去,发现grav和typecho是比较高关注的两个,要求都是php5.5以上。后来又发现typecho需要数据库,就只有选择grav了。
grav有三个下载包概念:skeleton/theme/plugin。后两个都知道,theme是主题,plugin是插件,但skeleton是什么?翻译过来是“骨架”,其实是框架、整体安装包的意思,包含了特定的一些plugin、示例页面等。这道和grav“坟墓”很搭配啊。不过这倒是谁起的这么个名字,估计要犯了很多国人的忌讳...
要有的功能,第一是有个blog的样子,另一个是能通过网页写md,毕竟通过ftp上传md还是很麻烦的。
这两个功能都不是grav core核心含有的,而是通过组织页面、插件等完成的。还好,有两个skeleton,一个是grav core + admin,另一个是在skeleton里搜索blog, 下载其中的blog site
下载完成后,需要对这两个skeleton合二为一。以blog site为基础,把admin中的user/plugins/中的除了error和problems的目录(包括admin/email/login/form/markdown-notices),全部复制到blog site对应的目录中(user/plugins)。
然后打包、上传ftp、解压缩、使用浏览器安装即可。
如安装到your.site/grav中,进入your.site/grav/admin,创建admin用户,密码必须是8位大小写加数字,就可以在pages中写文章了。
文章需要写在home下面,使用模板是item,options里面taxonomies/category选择blog,这样才搜索得到。
可以看一下搜索的设置,plugins/simplesearch里面,有个category filter,写的是blog,所以只有文章标了category是blog的才会被搜到。
解释一下涉及的目录:
- user,主要的内容,包括页面、配置、插件都在这个目录下。
- user/plugins是插件目录,可以直接复制新的插件(目录形式)到这个目录下,目录名称需要改成插件要求的名称
- user/pages页面目录,是按标题名称命名的目录名称,里面会有一个.md文件,按模板item创建的时候,文件名就是item.md,按blog创建的时候文件名就是blog.md。但不要按blog模板创建,因为blog其实是列表页。
pages目录下面的是网站一级菜单,下一级目录里面可以放具体的文章。 - user/themes是主题页,不过不能直接ftp上传到这个目录生效,两种方式:登录admin后台,在themes里面搜索,不过我试过搜索不到,似乎是因为php的ssl配置的问题。另外,可以将theme的zip文件通过tools上传,不过注意php上传大小要求,我这儿只有2M。
pages/
pages下面的目录可以用数字编号如01.home,一方面这会让其出现在一级菜单,另一方面标明菜单顺序。小数点前面的内容不会在页面和url上显示。
.md
.md开始时在两个---之间的,是此文件的配置说明,以YAML格式书写。这种在文件最前面以YAML形式书写的配置文件又称为YAML Front Matter,简称YFM,是标准的。
支持的Markdown语法在这儿