除了支持常規(guī)的 HTML 內(nèi)容之外,GitHub Pages 也支持 Jekyll,一個(gè)簡(jiǎn)單的,博客風(fēng)格的靜態(tài)網(wǎng)頁(yè)生成器。Jekyll 使創(chuàng)建站點(diǎn)范圍內(nèi)的頭部和底部變得簡(jiǎn)單,不需要在每個(gè)頁(yè)面復(fù)制它們。它也提供一些其他更深入的模板功能。
當(dāng)你將內(nèi)容推送到一個(gè)特別命名的分支版本庫(kù)中運(yùn)行,每個(gè) GitHub Pages 是通過(guò) Jekyll 處理。對(duì)于 User Pages,使用在 username.github.io
庫(kù)的 master
分支。對(duì)于 Project Pages,使用項(xiàng)目中存儲(chǔ)庫(kù)中的 gh-pages
分支。因?yàn)橐粋€(gè)普通的 HTML 網(wǎng)站也是一個(gè)有效的 Jekyll 網(wǎng)站,你不需要做什么特別的事情讓您的標(biāo)準(zhǔn) HTML 文件不變。 Jekyll 完整的文檔,涵蓋其功能和使用方法。只需啟動(dòng)提交 Jekyll 格式的文件,你就會(huì)在任何時(shí)間使用 Jekyll。
我們強(qiáng)烈建議您的計(jì)算機(jī)上安裝 Jekyll 預(yù)覽您的網(wǎng)站,并在發(fā)布你的網(wǎng)站之前幫助檢測(cè)出有問(wèn)題的 GitHub Pages。
很幸運(yùn)的是,在你的電腦上安裝 Jekyll,并確保你的計(jì)算機(jī)最匹配 GitHub Pages 設(shè)置很容易,多虧了 the GitHub Pages Gem和我們的依賴(lài)版本的頁(yè)面。要安裝 Jekyll,你需要做幾件事情:
Ruby - Jekyll 需要 Ruby 語(yǔ)言。如果你有一個(gè)蘋(píng)果電腦,你很可能已經(jīng)有 Ruby。如果你打開(kāi)??終端應(yīng)用程序,然后運(yùn)行命令ruby --version
,可以證實(shí)這一點(diǎn)。你的 Ruby 版本至少應(yīng)該是 2.0.0。如果你已經(jīng)有了,你就已經(jīng)完成這一步。跳至步驟 #2。否則,請(qǐng)按照以下說(shuō)明安裝 Ruby。
Bundler - 捆綁器的軟件包管理器。它使 Ruby 軟件版本像 Jekyll 一樣。如果你將要在本地建設(shè)的 GitHub Pages,它能令你容易得多。如果你還沒(méi)有安裝 Bundler,你可以通過(guò)運(yùn)行命令 gem install bundler
安裝它。
Gemfile
的文件在你的網(wǎng)站的庫(kù)中并添加行 gem 'github-pages
。在此之后,只需運(yùn)行命令,bundle install
就可以了。如果你決定跳過(guò)步驟#2,你仍然可以使用命令 gem install github-pages
安裝 Jekyll,但你可能會(huì)碰到了命令行的麻煩。這里有一個(gè) Gemfile
的例子,你可以使用(放置在存儲(chǔ)庫(kù)的根目錄):source 'https://rubygems.org'
gem 'github-pages'
為了以符合 GitHub Pages 構(gòu)建服務(wù)器的方式運(yùn)行 Jekyll,需要通過(guò) Bundler 運(yùn)行 Jekyll。在庫(kù)的根目錄使用命令 bundle exec jekyll serve
(在切換到項(xiàng)目庫(kù)的 gh-pages
分支之后),然后應(yīng)該能在 http://localhost:4000
訪問(wèn)你的網(wǎng)站。完整的 Jekyll 命令列表,請(qǐng)參見(jiàn) Jekyll 文檔。
Jekyll 是一個(gè)動(dòng)態(tài)開(kāi)源項(xiàng)目,它會(huì)頻繁地更新。當(dāng) GitHub Pages 服務(wù)器更新了,在你電腦上的軟件就會(huì)過(guò)時(shí),導(dǎo)致你的網(wǎng)站出現(xiàn)本地和發(fā)布在 GitHub 的樣子不一致。保持 Jekyll 的更新,你可以輸入命令bundle
(或者如果你選擇跳開(kāi)第二步,運(yùn)行gem update github-pages
)。
你可以通過(guò)創(chuàng)建一個(gè) _config.yml
來(lái)配置 Jekyll 大部分屬性。
以下的默認(rèn)值是 GitHub 設(shè)置的,你可以自由地重寫(xiě) _config.yml
文件:
highlighter: pygments
github: [Repository metadata]
對(duì)于存儲(chǔ)庫(kù)的元數(shù)據(jù)對(duì)象的內(nèi)容,請(qǐng)參閱 GitHub Pages 庫(kù)的元數(shù)據(jù)。
我們可以重寫(xiě)下面的 _config.yml
中你不可以配置的值:
safe: true
lsi: false
source: your top-level directory
記住,如果你改變了 source
的設(shè)置,你的頁(yè)面可能不能正確地建立。 GitHub Pages 把源文件作為最高級(jí)別的庫(kù)目錄來(lái)考慮。
Jekyll 需要 Markdown 文件有一個(gè) front-matter 定義在所有文件之上。Front-matter 只是一系列的元數(shù)據(jù),由三個(gè)破折號(hào)劃定:
---
title: This is my title
layout: post
---
Here is my page.
如果你喜歡,你可以選擇從你的文件中刪除 Front-matter,但是你仍然需要這三個(gè)破折號(hào):
---
---
Here is my page.
如果你的文件在 _posts 目錄中,你可完全刪除這些破折號(hào)。 希望獲取更過(guò)信息可以查看 Jekyll 文檔。
如果你的 Jekyll 網(wǎng)站在你 push 它到 GitHub 后沒(méi)有表現(xiàn)為合適的形式,在本地運(yùn)行 Jekyll 對(duì)你檢查錯(cuò)誤很有用。為了做到這件事,你將會(huì)希望使用 Jekyll 的相同版本和其它依賴(lài)。
為了保證你的本地開(kāi)發(fā)環(huán)境是使用 Jekyll 的相同版本和 GutHub 網(wǎng)站的依賴(lài),一旦 Jekyll 安裝了,你可以定期地運(yùn)行命令gem update github-pages
(或者bundle update github-pages
如果使用Bundler)。更多的信息,請(qǐng)參看 GitHub Pages Gem 庫(kù)。
如果你的頁(yè)面并沒(méi)有建立在你 push 到 GitHub 之后,請(qǐng)參看 GitHub Pages 建立失敗問(wèn)題解決。
如果你 Jekyll 網(wǎng)頁(yè)正在出現(xiàn)問(wèn)題,請(qǐng)確定你沒(méi)有使用和其它項(xiàng)目相同名字的分類(lèi),這個(gè)會(huì)引起路徑?jīng)_突。例如,你有一個(gè)博客站點(diǎn)叫“簡(jiǎn)歷”在你的用戶(hù)網(wǎng)頁(yè)庫(kù)中,和一個(gè)項(xiàng)目名叫“簡(jiǎn)歷”也有一個(gè) gh-pages
的分支,它們會(huì)引起雙方的沖突。
你可以通過(guò)在頁(yè)面庫(kù)的根目錄下創(chuàng)建一個(gè)名為 .nojekyll
的文件并將其 push 到 GitHub 來(lái)完全退出 Jekyll。只有當(dāng)您的站點(diǎn)使用以下劃線開(kāi)頭的目錄,這才是必要的。Jekyll 把這些當(dāng)作特殊的目錄,并且不將它們復(fù)制到最終目的地。
如果你希望 Jekyll 擁有某些功能,請(qǐng)自由地 fork,并發(fā)送一個(gè) pull 請(qǐng)求。我們很高興接受到用戶(hù)的意見(jiàn)。