这里使用的jekyll版本是3.6.2。
系统要安装有ruby。
替换源:
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
安装:
gem install bundler
gem install jekyll
gem install jekyll-paginate
创建:
jekyll new my-awesome-site
cd my-awesome-site
注意,如果jekyll new my-awesome-site
卡住一直没有结束。可能是因为它调用bundler安装依赖包时卡住。
这时候直接键入control+c
停止,进入目录中手动安装依赖的ruby包。
目录中已经有文件,结构如下:
├── 404.html
├── Gemfile
├── _config.yml
├── _posts
│ └── 2017-12-22-welcome-to-jekyll.markdown
├── about.md
└── index.md
Gemfile中描述了依赖的软件包,可以运行bundler show
,按照提示用gem安装缺失的ruby包。
例如:
gem install minima
gem install jekyll-feed
之后执行下面的命令,启动本地预览:
bundle exec jekyll serve
默认地址是http://localhost:4000
jekyll 3.6.2默认使用了一个名minima的模版:
$ cat Gemfile | grep minima
gem "minima", "~> 2.0"
$ cat _config.yml |grep minima
theme: minima
如果要修改theme,按照Overriding theme defaults中给出的步骤进行。
首先执行bundle show minima
,找到minima的路径。
$ bundle show minima
/Users/lijiao/.rvm/gems/ruby-2.4.1/gems/minima-2.1.1
这个目录中存放的就是minima的theme文件:
$ ls /Users/lijiao/.rvm/gems/ruby-2.4.1/gems/minima-2.1.1
LICENSE.txt README.md _includes _layouts _sass assets
目录结构如下:
├── LICENSE.txt
├── README.md
├── _includes
│ ├── disqus_comments.html
│ ├── footer.html
│ ├── google-analytics.html
│ ├── head.html
│ ├── header.html
│ ├── icon-github.html
│ ├── icon-github.svg
│ ├── icon-twitter.html
│ └── icon-twitter.svg
├── _layouts
│ ├── default.html
│ ├── home.html
│ ├── page.html
│ └── post.html
├── _sass
│ ├── minima
│ │ ├── _base.scss
│ │ ├── _layout.scss
│ │ └── _syntax-highlighting.scss
│ └── minima.scss
└── assets
└── main.scss
只需要在站点目录中创建同名的目录以及目录下的文件,即可覆盖minima中的文件。
可以将整个minima目录中的文件复制到站点目录中,然后自由修改。
cp -rf $(bundle show minima)/* .
或者自己创建,逐个编辑。
touch home.html category.html item.html
touch header.html footer.html
touch nav.yml
mkdir css images js
{% raw %}
这里的花括号不会被jekyll解析。
{% endraw %}
如果还要输出raw,可以用下面的方式:
{% assign openTag = '{%' %}
{{ openTag }} raw %}
{{ openTag }} endraw %}
即用openTag代替{ %
<span style="display:block;text-align:center">![左耳朵耗子耗子陈皓的极客时间专栏]({{ site.imglocal}}/geek/chenhao.jpeg){: width="250px" height="300px"}</span>