文章
部落格功能已內建於 Jekyll。您可以撰寫部落格文章作為文字檔,而 Jekyll 會提供您將其轉換為部落格所需的一切。
文章資料夾
_posts
資料夾是您部落格文章存放的位置。您通常會以 Markdown 撰寫文章,HTML 也受支援。
建立文章
若要建立文章,請將檔案新增至您的 _posts
目錄,並採用下列格式
YEAR-MONTH-DAY-title.MARKUP
其中 YEAR
是四位數字,MONTH
和 DAY
都是兩位數字,而 MARKUP
是代表檔案中所使用格式的檔案副檔名。例如,以下是有效文章檔名的範例
2011-12-31-new-years-eve-is-awesome.md
2012-09-12-how-to-write-a-blog.md
所有部落格文章檔案都必須以 前端資訊 開頭,前端資訊通常用於設定 版面 或其他元資料。對於簡單的範例,這部分可以留空
---
layout: post
title: "Welcome to Jekyll!"
---
# Welcome
**Hello world**, this is my first Jekyll blog post.
I hope you like it!
ProTip™:連結到其他文章
使用 post_url
標籤連結到其他文章,不用擔心當網站的永久連結樣式變更時,網址會失效。
請注意字元集
內容處理器可以修改某些字元,讓它們看起來更漂亮。例如,Redcarpet 中的 smart
擴充功能會將標準 ASCII 引號字元轉換為捲曲的 Unicode 字元。為了讓瀏覽器正確顯示這些字元,請在版面的 <head>
中包含 <meta charset="utf-8">
來定義 charset meta 值。
包含圖片和資源
在某個時間點,您會想要在文字內容中包含圖片、下載或其他數位資產。一個常見的解決方案是在專案目錄的根目錄中建立一個名為 assets
的資料夾,將任何圖片、檔案或其他資源放入其中。然後,從任何文章中,都可以使用網站的根目錄作為要包含資產的路徑來連結它們。這樣做的最佳方式取決於您網站的 (子) 網域和路徑的設定方式,但以下是一些 Markdown 的簡單範例
在文章中包含圖片資產
... which is shown in the screenshot below:

連結到 PDF 讓讀者下載
... you can [get the PDF](/assets/mydoc.pdf) directly.
顯示文章索引
多虧了 Liquid 和它的標籤,在其他頁面上建立文章索引應該很簡單。以下是如何建立部落格文章連結清單的簡單範例
<ul>
{% for post in site.posts %}
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
您可以完全控制如何 (以及在哪裡) 顯示文章,以及如何建構您的網站。如果您想進一步了解,您應該多閱讀有關 Jekyll 中範本運作方式 的資訊。
請注意,post
變數僅存在於上述的 for
迴圈中。如果您想要存取目前正在渲染的頁面/文章的變數 (包含 for
迴圈的文章/頁面的變數),請改用 page
變數。
標籤和分類
Jekyll 在部落格文章中對標籤和分類提供一級支援。
標籤
文章的標籤在文章的前置資料中定義,使用 tag
鍵(單一項目)或 tags
鍵(多個項目)。
由於 Jekyll 預期會有多個項目對應到 tags
鍵,因此如果字串項目包含空白,它會自動分割。例如,前置資料 tag: classic hollywood
會被處理成單一實體 "classic hollywood"
,而前置資料 tags: classic hollywood
會被處理成項目陣列 ["classic", "hollywood"]
。
不論選擇哪個前置資料鍵,Jekyll 會將對應到複數鍵的元資料儲存在 Liquid 範本中。
目前網站中註冊的所有標籤都透過 site.tags
顯示在 Liquid 範本中。在頁面上反覆執行 site.tags
會產生另一個包含兩個項目的陣列,其中第一個項目是標籤名稱,第二個項目是具有該標籤的文章陣列。
{% for tag in site.tags %}
<h3>{{ tag[0] }}</h3>
<ul>
{% for post in tag[1] %}
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
{% endfor %}
分類
文章的分類運作方式與上述標籤類似。
- 它們可以使用鍵
category
或categories
(遵循與標籤相同的邏輯)透過前置資料來定義。 - 網站中註冊的所有分類都透過
site.categories
顯示在 Liquid 範本中,可以反覆執行(類似於上述標籤的迴圈)。
類別和標籤之間的相似性到此為止。
與標籤不同,文章的類別也可以由文章的檔案路徑定義。在 _posts
上方的任何目錄都將被讀取為類別。例如,如果一篇文章位於路徑 movies/horror/_posts/2019-05-21-bride-of-chucky.markdown
,則 movies
和 horror
會自動註冊為該文章的類別。
當文章也有定義類別的前置事項時,如果尚未存在,它們只會被新增到現有清單中。
類別和標籤之間的顯著差異在於,文章的類別可以納入文章的 已產生網址 中,而標籤則不行。
因此,根據前置事項是否有 category: classic hollywood
或 categories: classic hollywood
,上述範例文章的網址將分別為 movies/horror/classic%20hollywood/2019/05/21/bride-of-chucky.html
或 movies/horror/classic/hollywood/2019/05/21/bride-of-chucky.html
。
文章摘要
您可以使用文章上的 excerpt
變數來存取文章內容的片段。預設情況下,這是文章中內容的第一段落,但可以透過在前置事項或 _config.yml
中設定 excerpt_separator
變數來自訂。
---
excerpt_separator: <!--more-->
---
Excerpt with multiple paragraphs
Here's another paragraph in the excerpt.
<!--more-->
Out-of-excerpt
以下是輸出包含摘要的部落格文章清單的範例
<ul>
{% for post in site.posts %}
<li>
<a href="{{ post.url }}">{{ post.title }}</a>
{{ post.excerpt }}
</li>
{% endfor %}
</ul>
草稿
草稿是檔案名稱中沒有日期的貼文。這些是你仍在撰寫中且尚未要發表的貼文。若要開始使用草稿,請在網站根目錄中建立 _drafts
資料夾,並建立你的第一個草稿
.
├── _drafts
│ └── a-draft-post.md
...
若要預覽你的網站草稿,請執行 jekyll serve
或 jekyll build
,並加上 --drafts
參數。每個草稿檔案的日期值會指定為其修改時間,因此你會看到目前編輯中的草稿作為最新貼文。