鍍金池/ 教程/ Java/ Pages 中使用 Jekyll
手動(dòng)創(chuàng)建項(xiàng)目 Pages
Pages 中使用 Jekyll
添加 CNAME 文件到你的存儲(chǔ)庫(kù)中
GitHub Pages 是什么
設(shè)置 GitHub Pages 的自定義域名
在你的 DNS 提供者上配置 A 記錄的技巧
關(guān)于 GitHub Pages 的自定義域名
在 DNS 提供者上配置 CNAME 記錄的技巧
用自動(dòng)生成器生成 Pages
用戶(hù)、組織和項(xiàng)目 Pages
進(jìn)一步了解 GitHub Pages

Pages 中使用 Jekyll

除了支持常規(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ù)制它們。它也提供一些其他更深入的模板功能。

使用 Jekyll

當(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。

安裝 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,你需要做幾件事情:

  1. 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。

  2. Bundler - 捆綁器的軟件包管理器。它使 Ruby 軟件版本像 Jekyll 一樣。如果你將要在本地建設(shè)的 GitHub Pages,它能令你容易得多。如果你還沒(méi)有安裝 Bundler,你可以通過(guò)運(yùn)行命令 gem install bundler 安裝它。

  3. Jekyll - 主要做的事。你將要?jiǎng)?chuàng)建一個(gè)名為 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'

運(yùn)行 Jekyll

為了以符合 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 是最新的

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)。

配置 Jekyll

你可以通過(guò)創(chuàng)建一個(gè) _config.yml 來(lái)配置 Jekyll 大部分屬性。

默認(rèn)值

以下的默認(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ě)

我們可以重寫(xiě)下面的 _config.yml 中你不可以配置的值:

safe: true
lsi: false
source: your top-level directory

記住,如果你改變了 source 的設(shè)置,你的頁(yè)面可能不能正確地建立。 GitHub Pages 把源文件作為最高級(jí)別的庫(kù)目錄來(lái)考慮。

Frontmatter 是必須的

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 文檔。

問(wèn)題解決

如果你的 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ān)閉 Jekyll

你可以通過(guò)在頁(yè)面庫(kù)的根目錄下創(chuàng)建一個(gè)名為 .nojekyll 的文件并將其 push 到 GitHub 來(lái)完全退出 Jekyll。只有當(dāng)您的站點(diǎn)使用以下劃線開(kāi)頭的目錄,這才是必要的。Jekyll 把這些當(dāng)作特殊的目錄,并且不將它們復(fù)制到最終目的地。

貢獻(xiàn)

如果你希望 Jekyll 擁有某些功能,請(qǐng)自由地 fork,并發(fā)送一個(gè) pull 請(qǐng)求。我們很高興接受到用戶(hù)的意見(jiàn)。