有關我們為何棄用此項目的更多信息,請參見此處。
fastpages
一個易於使用的部落格平台,支援 Jupyter 筆記本、Word 文件和 Markdown。
fastpages
使用 GitHub Actions 簡化從各種輸入格式在 GitHub Pages 上建立 Jekyll 部落格文章的過程。
fastpages
提供以下功能:請參閱下文以了解更詳細的功能清單。
查看示範站點
fastpages
fastpages
提供以下功能:按一下此連結以產生此儲存庫的副本。請務必登入您的帳戶,否則您將看到 404 錯誤。將您的儲存庫命名為您喜歡的任何名稱,除了{your-username}.github.io。
建立副本後約 30 秒,GitHub Actions 將自動在您的新儲存庫上開啟 PR 。請按照該 PR 中的說明繼續。
如果您沒有看到 PR,請確保您的組織中啟用了第三方操作:設定 -> 操作 -> 操作權限 -> 為此儲存庫啟用本機和第三方操作
有關設定步驟的即時演練(以及一些附加提示),請參閱 Abdul Majed 撰寫的設定快速頁面部落格的影片教學。
Read and Write
權限,並選中Allow GitHub Actions to create and approve pull requests
。 授予權限後,請轉到儲存庫主頁頂部的Actions
選項卡,您將在其中看到操作運行的清單。首先點擊失敗的運行(帶有紅色X的項目):
您將進入一個螢幕,右上角有一個按鈕,允許您重新運行作業。
執行此操作後,應該會出現拉取請求。
_posts
、 _notebooks
或_word
目錄中新增內容。您可以按照此儲存庫中這些資料夾中的內容範例來了解如何建立內容。最需要注意的是前面的事情,以下會更詳細地討論。此外,您可以新增其他頁面,這些頁面將顯示在部落格導覽列的_pages
目錄中。請注意, _word
目錄中的內容不支援 Front Matter。 Front Matter 可讓您開啟/關閉每個部落格文章的各種選項,以及將元資料傳遞給快速頁面的各種功能。
在筆記本中,前文被定義為筆電開頭的 Markdown 單元,包含以下內容:
# "Title"
> "Awesome summary"
- toc: false
- branch: master
- badges: true
- comments: true
- categories: [ fastpages, jupyter ]
- image: images/some_folder/your_image.png
- hide: false
- search_exclude: true
- metadata_key1: metadata_value1
- metadata_key2: metadata_value2
類似地,在 Markdown 文件中,相同的前事項將在文件的開頭定義如下:
---
title : " My Title "
description : " Awesome description "
layout : post
toc : false
comments : true
image : images/some_folder/your_image.png
hide : false
search_exclude : true
categories : [fastpages, jupyter]
metadata_key1 : metadata_value1
metadata_key2 : metadata_value2
---
其他元資料是可選的,並允許您設定自訂標題。
請注意,前面定義的任何內容都必須是有效的 YAML。未能提供有效的 YAML 可能會導致您的頁面無法在部落格中呈現。例如,如果您想在標題中使用冒號,則必須使用雙引號將其轉義,如下所示:
- title: "Deep learning: A tutorial"
有關更多信息,請參閱有關 YAML 的教程。
Title
替換為您想要的標題,並將Awesome summary
替換為您想要的摘要。注意:建議將這些值括在雙引號中,以便可以轉義冒號和其他可能破壞 YAML 解析器的字元。
fast_template
會根據 markdown headers 自動為你產生一個目錄!您可以將toc:
設為true
或false
來開啟或關閉此功能。此選項僅適用於筆記型電腦
branch
欄位用於選擇性地在部落格文章中呈現筆記本到 Colab 和 GitHub 的連結。如果您沒有在筆記本中指定它,它將預設為master
。badges
設為false
。預設為true
badges: true
時,預設會顯示所有四個徽章(GitHub、Binder、Deepnote、Colab) 。您可以使用網站範圍配置選項中的default_badges
參數調整這些預設值。如果只想隱藏單一貼文上的徽章,可以設定 front Matter hide_{github,colab,binder,deepnote}_badge: true
。例如,如果您想要隱藏單一筆記本的 Binder 徽章,但希望顯示其他徽章,則可以在 Front Matter 中進行設定:
- badges : true
- hide_binder_badge : true
requirements.txt
文件,其中包含您用於所有筆記本的通用包,您可以在官方 Binder 文件中了解更多資訊。您可以在部落格文章的類別的方括號內包含一個以逗號分隔的列表,這將使該文章在您部落格網站的標籤頁面上可見。例如:
在筆記本中:
# "My Title"
- categories: [fastpages, jupyter]
在 Markdown 文件中:
---
title: "My Title"
categories: [fastpages, jupyter]
---
您可以在此處查看其外觀的預覽。
_config.yml
中將show_tags
設為true
或false
來開啟/關閉標籤的顯示: # Set this to true to display tags on each post
show_tags : true
對部落格文章的評論由 Utterances 提供支持,這是一種開源且無廣告的評論實施方式。所有評論都儲存在您部落格的 GitHub 儲存庫上的問題中。您可以在將comments
設為true
時將其開啟。預設為false
。
要啟用話語評論,您需要執行以下操作:
在 Twitter 等社群媒體網站上,可以自動顯示圖片預覽和您的 URL。指定首頁image
會將此元資料提供給社交媒體網站,以便為您呈現此圖像。您可以如下設定該值:
- image: images/diagram.png
注意:對於此設置,您只能引用儲存庫的/images
資料夾中的映像檔和資料夾。
您可能希望阻止部落格文章列在主頁上,但仍然有一個可以預覽或謹慎共享的公共 URL。您可以透過將 Front Matter hide
設為true
來隱藏主頁中的部落格文章。預設為false
。
建議您使用永久連結來為隱藏的部落格文章產生可預測的 URL。如果您不希望用戶在搜尋中找到您的隱藏帖子,您也可以將 Front Matter search_exclude
設為true
。
預設情況下,主頁上的貼文會按日期排序。但是,您可能希望一篇或多篇部落格文章始終顯示在主頁的最頂部。換句話說,您可能希望某些帖子被“固定”或“粘性”。要實現此目的,請按照您希望置頂貼文出現的順序指定sticky_rank
標題。未設定此參數的博文預設會依日期排序在置頂貼文之後。
例如,考慮這三個 Markdown 帖子(也適用於筆記本)。
2020-01-01-Post-One.md
---
title : Post One
sticky_rank : 1
---
2020-02-01-Post-Two.md
---
title : Post Two
sticky_rank : 2
---
2020-04-01-Post-Three.md
---
title : Post Three
---
但是,由於指定了sticky_rank
,部落格文章將首先按sticky_rank升序排序,然後按日期降序排序,因此這些帖子的順序將如下所示:
如果沒有sticky_rank
由於與每個帖子關聯的日期,上述帖子實際上會按相反的順序排序。
注意:固定也適用於筆記本:
# "My cool blog post"
> "Description of blog post"
- sticky_rank: 2
fastpages 隨附由 lunr.js 提供支援的內建關鍵字搜尋。您可以透過將標題search_exclude
設定為false
來阻止部落格文章或頁面出現在搜尋結果中。預設此設定為true
。
建議每個人透過設定網站範圍的配置選項來個性化他們的部落格網站。這些選項可以在/_config.yml
中找到。以下是各種可用選項的說明。
title
:這是出現在所有頁面標題左上角的標題。
description
:產生網站預覽時(例如,在社群媒體上),此描述將顯示在各個位置。
github_username
:這允許您的網站在頁腳中顯示指向 GitHub 頁面的連結。
github_repo
:這允許您的網站呈現返回到存儲庫的各種功能的鏈接,例如筆記本的 GitHub、Colab 和 Deepnote 的鏈接。
url
:除非您有自訂網域,否則不需要變更。注意:忽略該值中的尾隨 /。
baseurl
:請參閱/_config.yml
中的註解以取得正確設定此值的說明(「baseurl 的特殊說明」)。
email
:目前未使用。忽略。
twitter_username
:在頁腳中建立指向 Twitter 頁面的連結。
use_math
:將其設為true
以獲得 LaTeX 數學方程式支援。預設此選項處於關閉狀態,否則會將 javascript 載入到可能不使用的每個頁面中。
show_description
:這會在主頁上的部落格文章標題下顯示說明,其中包含您的部落格文章清單。預設為true
。
google_analytics
:如果需要,可以選擇使用 Google Analytics ID 進行追蹤。
show_image
:如果設定為 true,則使用部落格文章前面的image
參數來呈現部落格的預覽,如下所示。預設為false
。當 show_image 設定為true
時,您的主頁將如下所示:
show_tags
:您可以將此值設為false
來開啟或關閉部落格文章上標籤的顯示。預設情況下,此設定為true
,這會在您的部落格文章上呈現以下標籤鏈接,如下所示:
pagination
:這是主頁每頁上顯示的最大貼文數。任何超過此數量的帖子都將分頁到另一個頁面。預設為15
。觸發此操作後,您將看到主頁底部的分頁顯示如下:
注意:如果您使用舊版的 fastpages,則無法使用自動升級程序來取得分頁。相反,您必須遵循以下步驟:
mvindex.mdindex.html
Gemfile
和Gemfile.lock
替換為此儲存庫中的檔案。_config.yml
(查看 _config.yml 範例): gems :
- jekyll-paginate
paginate : 10
paginate_path : /page:num/
或者,您可以將所有貼文複製到從 fastpages 範本建立的新建立的儲存庫中。
default_badges
:預設情況下,GitHub、Binder、Deepnote 和 Colab 徽章將顯示在筆記本部落格文章上。您可以透過將default_badges
中的適當值設為 false 來調整這些預設值。例如,如果您想要預設關閉 Binder 徽章,則可以將default_badges
變更為:
default_badges :
github : true
binder : false
deepnote : false
colab : true
html_escape
:這允許您在部落格文章的各個元件中開啟或關閉 HTML 轉義。目前,您只能為貼文中的description
欄位切換此選項。
預設為false
。
您可以透過編輯 /_sass/minima/custom-variables.scss 來調整各種裝置上 fastpages 的頁面寬度。
這些是預設值,可以根據您的喜好進行調整:
// width of the content area
// can be set as "px" or "%"
$content-width : 1000 px ;
$on-palm : 800 px ;
$on-laptop : 1000 px ;
$on-medium : 1000 px ;
$on-large : 1200 px ;
Hypothes.is 是一個開放平台,提供了一種註釋和突出顯示頁面的方法,頁面可以是公共的,也可以是私有的。啟用此功能後,您部落格的讀者在突出顯示文字時將看到以下工具提示:
預設情況下,快速頁面中會停用此功能。您可以將annotations
設為true
或false
在 _config.yml 檔案中啟用或停用此功能:
# Set this to true to turn on annotations with hypothes.is
annotations : false
您可以透過閱讀這些配置選項來自訂 Hypothes.is。如果您想使用假設做更多事情,閱讀這些文件也是一個好主意。但是,在嘗試自訂此功能之前,您應該閱讀自訂快速頁面部分以了解重要的注意事項。
您可以引導讀者訂閱 RSS 來源。互聯網上有許多可用的 RSS 訂閱服務。一些例子包括:
fastpages
覆蓋了 Dracula 主題的最小值的預設語法突出顯示。
fastpages 中的預設反白顯示如下所示:
但是,如果您選擇,則可以使語法突出顯示如下所示:
如果您想恢復到上面的淺色主題,您可以刪除 _sass/minima/custom-styles.scss 中的以下行
@import " minima/fastpages-dracula-highlight " ;
如果您不喜歡這些主題,您可以在_sass/minima/custom-styles.scss
中加入自己的 CSS。有關更多詳細信息,請參閱自訂快速頁面。
這篇文章介紹如何為快速頁面啟用深色模式。
喜歡使用引文系統 BibTeX 的使用者可以這樣做;它需要啟用 jekyll-scholar 插件。請參閱 BibTeX 和 jekyll-scholar 中的 Fastpages 引文,以了解實現此功能的說明。
將註解#hide
放在程式碼儲存格的開頭,它將隱藏該儲存格的輸入和輸出。
任何儲存格頂部的#hide_input
註解只會隱藏輸入。
此外, hide input
Jupyter 擴充功能可用於隱藏儲存格輸入或輸出,這將受到快速頁面的尊重。
您可能希望將某些程式碼隱藏在使用者可以展開的折疊元素中,而不是完全向讀者隱藏程式碼。
#collapse
放在程式碼單元格的頂部。#collapse_show
或#collapse-show
放在程式碼單元格的頂部。#collapse_output
或#collapse-output
放在程式碼單元格的頂部。在筆記本的 Markdown 單元中,使用以下 Markdown 捷徑嵌入 Twitter 卡和 YouTube 影片。
> youtube: https://youtu.be/your-link
> twitter: https://twitter.com/some-link
在筆記本中加入腳註與 Markdown 略有不同。請參閱筆記本腳註詳細指南。
使用命名約定YYYY-MM-DD-*.
分別進入此儲存庫的/_notebooks
或/_word
資料夾。例如2020-01-28-My-First-Post.ipynb
。 Jekyll 需要此命名約定來呈現您的部落格文章。
請注意正確命名您的文件!人們很容易忘記YYYY-MM-DD-
中的最後一個破折號。此外,緊跟在破折號後面的字元只能是字母。有效檔名的範例有:
2020-01-28-My-First-Post.ipynb
2012-09-12-how-to-write-a-blog.ipynb
如果您未能正確命名文件, fastpages
將自動嘗試透過將文件的上次修改日期新增至產生的部落格文章來解決問題,但是,建議您自己正確命名文件以提高透明度。
提交文件並將其推送到儲存庫主分支中的 GitHub。
GitHub 會自動將您的文件轉換為部落格文章。轉換過程大約需要 5 分鐘。您可以按一下儲存庫的「操作」標籤以查看此流程的日誌。每次推送到主分支時都會觸發兩個工作流程:(1)「CI」和(2)「GH 頁面狀態」。在更新您的網站之前,這兩個工作流程都必須完成,並為您的最新提交打上綠色複選標記。
如果您願意,您可以在提交到 GitHub 之前預覽您的部落格在本地的外觀。有關在本機運行預覽的詳細指南,請參閱本節。
如果您在 Markdown 中編寫部落格文章,請將.md
檔案儲存到/_posts
資料夾中,並使用為筆記本指定的相同命名約定 ( YYYY-MM-DD-*.md
)。
使用為筆記本指定的相同命名約定 ( YYYY-MM-DD-*.docx
) 將 Microsoft Word 文件儲存到/_word
資料夾中。
注意: fastpage 尚不支援 Word 文件中的替代文本,並且會破壞圖片連結。
fastpages
沒有可靠的方法來指定 Word 文件的標題。目前,您只能透過編輯 _action_files/word_front_matter.txt 來全域指定所有 Word 文件的前題。
若要指定每個 Word 文件的唯一標題,您需要手動將 Word 轉換為 Markdown 檔案。您可以按照此部落格文章中的步驟操作,該文章將引導您了解如何使用 pandoc 進行轉換。注意:如果您希望在 Markdown 中自訂 Word 產生的部落格文章,請確保從 _word 目錄中刪除 Word 文檔,以免您的 Markdown 文件被覆蓋!
如果您撰寫部落格文章的主要方法是 Word 文檔,並且您計劃始終手動編輯從 Word 轉換的 Markdown 文件,那麼您最好使用 fast_template 而不是 fastpages。
請參閱開髮指南。
fastpages
操作可讓您將儲存庫中/_notebooks
中的筆記本和/_word
目錄中的 Word 文件轉換為位於/_posts
中的符合 Jekyll 的部落格文章 Markdown 檔案。注意:此目錄結構目前對此操作不靈活,因為它設計為與 Jekyll 一起使用。
如果您已經對 Jekyll 有足夠的熟悉並希望在自己的主題中使用此自動化功能,則可以透過引用fastai/fastpages@master
來使用此 GitHub Action,如下所示:
...
uses : fastai/fastpages@master
...
完整工作流程的範例如下:
jobs :
build-site :
runs-on : ubuntu-latest
...
- name : convert notebooks and word docs to posts
uses : fastai/fastpages@master
...
- name : Jekyll build
uses : docker://jekyll/jekyll
with :
args : jekyll build
- name : Deploy
uses : peaceiris/actions-gh-pages@v3
if : github.event_name == 'push'
with :
deploy_key : ${{ secrets.SSH_DEPLOY_KEY }}
publish_branch : gh-pages
publish_dir : ./_site
請注意,此操作沒有任何必要的輸入,也沒有輸出變數。
BOOL_SAVE_MARKDOWN
:「真」或「假」。是否將筆記本和 Word 文件中轉換後的 Markdown 文件提交到儲存庫中的 _posts 目錄中。這對於調試很有用。預設值:假SSH_DEPLOY_KEY
:如果 BOOL_SAVE_MARKDOWN = 'true' 則需要 ssh 部署金鑰請參閱 action.yml 中此操作的 API 規範
有關如何自訂此部落格的詳細說明超出了本自述文件的範圍。 (我們邀請社區中的某人貢獻一篇部落格文章,介紹如何在此存儲庫中執行此操作!)
請參閱貢獻指南。
請參閱升級指南。
_posts/
中從我的 Jupyter 筆記本或 Word 文件產生的 Markdown 文件在哪裡?答:此儲存庫中的 GitHub Actions 工作流程會在建立網站之前將您的筆記本和 Word 文件動態轉換為 Markdown,但絕不會將這些中間 Markdown 文件提交到此儲存庫。這是為了使您免受本地環境不斷與儲存庫不同步的煩惱。您可以選擇透過將BOOL_SAVE_MARKDOWN
和SSH_DEPLOY_KEY
輸入設定為.github/workflows/ci.yaml
檔案中的 fastpages 操作來查看這些中間 Markdown 文件,如下所示: ...
- name : convert notebooks and word docs to posts
uses : fastai/fastpages@master
with :
BOOL_SAVE_MARKDOWN : true
SSH_DEPLOY_KEY : ${{ secrets.SSH_DEPLOY_KEY }}
...
Q:我可以對 Jekyll 文件網站或非 Jekyll 部落格文章的內容使用fastpages
嗎?答:目前, fastpages
是一個非常固執己見的解決方案,僅適用於 Jekyll 部落格文章。如果您想使用 Jupyter Notebook 為您的模組或庫編寫文檔,我們建議您使用專門為此目的構建的 fastai/nbdev。
Q: fast_template 和 fastpages 有什麼差別?我應該使用哪一個?答:因為fastpages
更靈活且可擴展,所以我們建議盡可能使用它。 fast_template
可能是讓那些完全沒有技術專業知識並且只會使用 Github 的整合線上編輯器創建帖子的人寫部落格的更好選擇。
fastpages 建立在 minima 主題之上。如果您想要自訂快速頁面的樣式或佈局,可以在 minima 的 README 中找到說明。最好閱讀 README 的完整內容以了解目錄結構。此外,在自訂主題之前對 Jekyll 有基本的了解是個好主意。對於 Jekyll 的新手來說,官方文件是一個很好的起點。具體來說,您可以在_sass/minima/custom-styles.scss
中覆蓋 fastpages 中的 css 。請注意,minima 的「皮膚」功能目前與 fastpages 的 css 設定不相容。
如果您選擇對 fastpages 進行自訂,您所做的自訂可能會與當前或未來版本的 fastpages 發生衝突,我們建議您僅在您對 HTML 和 CSS 感到足夠熟悉時才這樣做。
請參閱故障排除指南。