搜索结果
Powered by: Simple-Jekyll-Search
这一系列文章致力于讲清楚Jekyll的基本结构与使用方法
当你翻到这篇文章的时候,相信你对Jekyll已经有一定了解了,所以多余的话就不说了,直接开始聊吧。
当前使用的Jekyll博客是我基于H5模板改的,算是大概搞清了Jekyll的大致结构,因此我觉得我应该有资格聊一聊Jekyll吧。
其实具体怎么配置的我也忘了
好了,现在假设你已经完全配置好了Ruby、RubyGems和Jekyll,检验方式就是在默认终端查看版本号。分别输入
ruby -v
、gem -v
和jekyll -v
,如果都能显示版本号,那么表示你的环境大概配置好了。
无论你是新建一个项目(cd
进入后jekyll new .
),还是直接clone一个现成的项目,它们的文件结构都差不太多,大概是这样的:
├── .jekyll-cache/ # Jekyll的缓存文件,通常会加入.gitignore中,不会上传到远程仓库
├── _draft/ # 用于存放草稿,即没写完的文章,文件名格式为YYYY-MM-DD-Title.md,不过也可以没有,没写完的不上传就好了嘛
├── _data/ # 用于存放数据文件,如json、yml等,但不是强制的....
├── _includes/ # 用于存放模板文件,通常会被_layouts引用
├── _layouts/ # 用于存放模板文件,通常会被_posts引用
├── _posts/ # 用于存放文章,文件名格式为YYYY-MM-DD-Title.md
├── _site/ # 用于存放编译后的页面,通常会加入.gitignore中,不会上传到远程仓库
├── assets/ # 网页中的静态资源,如图片、css、JS等,但并不是强制的
├── _config.yml # Jekyll的配置文件,必须放在根目录中,记录各插件的配置以及作者自己定义的一些变量
├── Gemfile # 记录项目所依赖的gem包,相比之下没有Gemfile.lock详细,但这个文件是必须的
├── Gemfile.lock # 记录项目所依赖的gem包的版本号,但它是自动生成的,版本问题有时就是删掉它以解决,有时它也会加入.gitignore中
├── about.md # 一个约定俗成的习惯,通常这里写的是作者信息
├── index.html # 网站的首页,即输入网站根域名后显示的页面
└── 404.html # 网站的404页面
HTML是一种xml形式的标记语言,这意味着它高度结构化。举个例子,大多数博客类网页(如知乎、博客园、Github Wiki)的HTML都大概都是这种结构:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>Page Title</title>
<!-- 此处通常引用一些样式表 -->
</head>
<style>
/* 此处通常定义一些css中无法顾及到的样式 */
</style>
<body>
<header>
<!-- 此处通常是网页的头部,比如导航栏、标题等 -->
</header>
<main class="main">
<!-- 此处通常是网页的主体内容,占据最大的篇幅 -->
</main>
<footer>
<!-- 此处通常是网页的尾部,比如版权信息、备案号等 -->
</footer>
<!-- 此处通常引用或定义一些js脚本之类的 -->
</body>
<head>
、<header>
、<footer>
(我们通常称其为“元素/element”)。而绝大部分的代码内容都与博客内容无关,它们负责的是网页的基本框架,即“什么内容长什么样,在哪里”。_includes
文件夹中,然后在需要的时候直接引用即可。
“引用”靠的是Liquid模板的语法,这个不算基础内容了,之后再聊吧(挖坑+1)。
_includes
文件夹中存放页面的装饰性元素,如导航栏、页脚等,但通常只存放html片段,如果是css、js、图片文件之类的,则通常存放在assets
文件夹中。layout
就是指定这篇文章的布局,即使用哪个模板。比如我这篇文章就是layout: post
。事实上
_includes
和_layouts
是Jekyll项目里最重要且必须包含的两个目录。
_posts
目录存放的是你的文章,通常是markdown,所以文件后缀名通常也就是.md
或.markdown
YYYY-MM-DD-Title.md
这种格式。但说来好笑的是,文章的Front Matter中也有日期和标题等信息,而且大多数时候用的是那个而不是文件名的这个,所以显得这个要求很多余。.gitignore
中,不会上传到远程仓库,GitHub Pages为了尽量保证安全,通常是提取你仓库中的文件,在他们的服务器上将Markdown转换成HTML。