文章

部落格功能已內建於 Jekyll。您可以撰寫部落格文章作為文字檔,而 Jekyll 會提供您將其轉換為部落格所需的一切。

文章資料夾

_posts 資料夾是您部落格文章存放的位置。您通常會以 Markdown 撰寫文章,HTML 也受支援。

建立文章

若要建立文章,請將檔案新增至您的 _posts 目錄,並採用下列格式

YEAR-MONTH-DAY-title.MARKUP

其中 YEAR 是四位數字,MONTHDAY 都是兩位數字,而 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:
![My helpful screenshot](/assets/screenshot.jpg)

連結到 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 %}

分類

文章的分類運作方式與上述標籤類似。

  • 它們可以使用鍵 categorycategories(遵循與標籤相同的邏輯)透過前置資料來定義。
  • 網站中註冊的所有分類都透過 site.categories 顯示在 Liquid 範本中,可以反覆執行(類似於上述標籤的迴圈)。

類別和標籤之間的相似性到此為止。

與標籤不同,文章的類別也可以由文章的檔案路徑定義。在 _posts 上方的任何目錄都將被讀取為類別。例如,如果一篇文章位於路徑 movies/horror/_posts/2019-05-21-bride-of-chucky.markdown,則 movieshorror 會自動註冊為該文章的類別。

當文章也有定義類別的前置事項時,如果尚未存在,它們只會被新增到現有清單中。

類別和標籤之間的顯著差異在於,文章的類別可以納入文章的 已產生網址 中,而標籤則不行。

因此,根據前置事項是否有 category: classic hollywoodcategories: classic hollywood,上述範例文章的網址將分別為 movies/horror/classic%20hollywood/2019/05/21/bride-of-chucky.htmlmovies/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 servejekyll build,並加上 --drafts 參數。每個草稿檔案的日期值會指定為其修改時間,因此你會看到目前編輯中的草稿作為最新貼文。