標籤篩選器

所有標準 Liquid 標籤 都受支援。Jekyll 內建幾個標籤來協助您建立網站。您也可以使用 外掛程式 建立自己的標籤。

包含

如果您有在網站中重複使用的頁面片段,包含 是讓它更易於維護的完美方法。

程式碼片段重點標示

Jekyll 內建對超過 100 種語言的語法重點標示支援,這要歸功於 Rouge。Rouge 是 Jekyll 3 及以上版本的預設重點標示器。

使用 Pygments 已被棄用,且在 Jekyll 4 中不受支援;組態設定 highlighter: pygments 現在會自動改用 Rouge,它是用 Ruby 編寫的,且與 Pygments 的樣式表 100% 相容。

若要使用語法重點標示渲染程式碼區塊,請將您的程式碼包圍如下

{% highlight ruby %}
def foo
  puts 'foo'
end
{% endhighlight %}

傳遞給 highlight 標籤的引數(在上述範例中為 ruby)是語言識別碼。若要找出適當的識別碼以用於您要突顯的語言,請在 Rouge wiki 上尋找「簡稱」。

Jekyll 會處理程式區塊中的所有 Liquid 濾鏡

如果您使用的是包含大括號的語言,您可能需要在程式碼周圍放置 {% raw %}{% endraw %} 標籤。自 Jekyll 4.0 起,您可以在前置資料中加入 render_with_liquid: false 以完全停用特定文件的 Liquid。

行號

highlight 的第二個引數稱為 linenos,為選用。包含 linenos 引數會強制突顯的程式碼包含行號。例如,下列程式區塊會在每行旁包含行號

{% highlight ruby linenos %}
def foo
  puts 'foo'
end
{% endhighlight %}

標記特定行4.4.0

您可以使用選用引數 mark_lines 來標記程式碼片段中的特定行。此引數會採用以空白分隔的行號清單,且必須以雙引號包住。例如,下列程式區塊會標記第 1 行和第 2 行,但不標記第 3 行

{% highlight ruby mark_lines="1 2" %}
def foo
  puts 'foo'
end
{% endhighlight %}

標記的行會套用預設類別名稱 hll

語法突顯的樣式表

若要顯示突顯,您需要包含突顯樣式表。對於 Pygments 或 Rouge,您可以使用 Pygments 的樣式表,您可以在 這裡其存放庫 中找到範例圖庫。

將 CSS 檔案(例如 native.css)複製到您的 css 目錄中,並將語法高亮顯示樣式匯入您的 main.css

@import "native.css";

自 Jekyll 4.0 起,您不需要在 linkpost_url 標籤前加上 site.baseurl

若要連結到文章、頁面、集合項目或檔案,link 標籤會為您指定的路徑產生正確的永久連結 URL。例如,如果您使用 link 標籤連結到 mypage.html,即使您變更永久連結樣式以包含或省略檔案副檔名,link 標籤所形成的 URL 仍會永遠有效。

使用 link 標籤時,您必須包含檔案的原始副檔名。以下是一些範例

{% link _collection/name-of-document.md %}
{% link _posts/2016-07-26-name-of-post.md %}
{% link news/index.html %}
{% link /assets/files/doc.pdf %}

您也可以使用 link 標籤在 Markdown 中建立連結,如下所示

[Link to a document]({% link _collection/name-of-document.md %})
[Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
[Link to a page]({% link news/index.html %})
[Link to a file]({% link /assets/files/doc.pdf %})

文章、頁面或集合的路徑定義為從根目錄(您的設定檔所在位置)到檔案的相對路徑,而不是從您的現有頁面到其他頁面的路徑。

例如,假設您在 page_a.md(儲存在 pages/folder1/folder2)中建立一個連結至 page_b.md(儲存在 pages/folder1)的連結。您在連結中的路徑不會是 ../page_b.html。而是會是 /pages/folder1/page_b.md

如果您不確定路徑,請將 {{ page.path }} 加入頁面,它將顯示路徑。

使用 linkpost_url 標籤的主要好處之一是連結驗證。如果連結不存在,Jekyll 就不會建立您的網站。這是一件好事,因為它會提醒您有損壞的連結,以便您可以修復它(而不是讓您建立並部署有損壞連結的網站)。

請注意,您無法將篩選器加入 link 標籤。例如,您無法使用 Liquid 篩選器附加字串,例如 {% link mypage.html | append: "#section1" %}。若要連結到頁面上的區段,您需要使用常規 HTML 或 Markdown 連結技術。

您要連結到的檔案名稱可以指定為變數,而不是實際的檔案名稱。例如,假設您在頁面的 front matter 中定義了變數,如下所示

---
title: My page
my_variable: footer_company_a.html
---

您可以在連結中參照該變數

{% link {{ page.my_variable }} %}

在此範例中,link 標籤會呈現連結至檔案 footer_company_a.html

連結至文章

如果您想要在您的網站上包含連結至文章,post_url 標籤會為您指定的文章產生正確的永久連結 URL。

{% post_url 2010-07-21-name-of-post %}

如果您在子目錄中組織您的文章,您需要包含子目錄路徑至文章

{% post_url /subdir/2010-07-21-name-of-post %}

使用 post_url 標籤時,無需包含檔案副檔名。

您也可以使用此標籤,以 Markdown 中的連結建立至文章,如下所示

[Name of Link]({% post_url 2010-07-21-name-of-post %})