编写环境折腾一下
如果要用vscode写,目标就是啥都在里面干了,创建个新文件,图片粘贴啥啥啥的,都在里面折腾完。那就先下载个VSCode吧,然后下载markdown和图片粘贴的插件
paste image 用的是 command+option+v,这个组合快捷键,图片就自动放进去了
其他插件都有了
paset image需要做2个设置
修改默认路径,改成 ${projectRoot}/images
修改文件名前缀,加上 ../../images/
如果是数据库,大概会是什么样的
我们要弄一个博客系统,通常是有个数据库,数据库里面放几个字段
T_blog
字段名 | 类型 | 说明 |
---|---|---|
id | int | 唯一标识 |
subject | varchar | 标题 |
created | int | 创建时间 |
content | varchar | 内容 |
modified | int | 最后修改时间 |
categoryid | int | 分类id |
T_blog_tags 另外弄个表放标签
字段名 | 类型 | 说明 |
---|---|---|
blog_id | int | 唯一标识 |
tag_id | int | 唯一标识 |
类似这样的做法,后面需要一个数据库,为了方便更换皮肤,content里面不能直接用html,markdown是一个不错的选择,需要展示的时候动态渲染,直接前台渲染。 或者提高效率,把渲染好的东西放内存里面,或者放在缓存里面,如果有内容修改再重新渲染。
写在jekyll之前,静态页面在做什么
很多年前页面是静态的,做好html,然后就可以为所欲为了。后来发现不太好处理动态的内容,最开始的做法是把页面显示的过程拦截住,渲染好给前端。 这个时候的做法,是在html里面嵌入一些特殊标记,这些部分是动态的。 本质上来说,还是依托html本身的东西,拆解重新组装。 很长一段时间都是优质的解决方案。 后来有了ajax,这部分的内容也调整了,相当于把这个动态的过程,改成分2步走,先展示一个整体的框架,然后ajax去后台拿相对纯粹的数据,再在页面做渲染。 随着时间的发展,这套玩法越来越复杂。 对于简单的页面展示,而不是复杂的业务系统,人们想寻求静态页面的解决方案。 简约又不简单。这就是我对jekyll产生的背景的理解。
对jekyll的朴素理解
对于大部分博客来说,页面逻辑很简单,有标题,有图文并茂的内容,能评价,能导航,能搜索也就差不多了。 jekyll做的事,我猜测可能也是这样的逻辑,但是它做了限制,不使用数据库。 所以它对文件结构做了要求,通过一系列辅助配置,把写好的markdown变成html。 通过对markdown做各种加工最终形成一个美观的博客,大多数时候,我们只要写内容就好了
文件夹 | 说明 |
---|---|
_posts | 写好的各种博客,文件夹就是分类,文件名里面带时间,通过这2个就解决了分类和时间线的问题,tag则在markdown里面的指定位置 |
_layouts | 布局,简单理解就是展示一篇文章的时候,标题咋显示,内容咋显示,放哪个位置,另外还需要其他的导航内容咋放,它的作用是这个 |
_includes | 共用组件,可以理解为拆分了,让_loyouts更好组织,类似评论,图标之类的 |
assets | 放各种资源用的 |
images | 放图片的,但是用paste image 插件,好像放的还是当前目录 |
_sites | 这里看起来是生成好以后的文件夹 |
- 总结起来,jekyll把写作和展示完全分开来了,而且在这个过程中,定义了一整套完整的规范,包括做布局,做主题等等。
jekyll的排序规则
它的规则是文件名,这尼玛坑爹吧