標籤篩選器
所有標準 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 起,您不需要在 link
和 post_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 }}
加入頁面,它將顯示路徑。
使用 link
或 post_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 %})