一個簡單、乾淨、響應靈敏的學術 Jekyll 主題。如果你喜歡這個主題,就給它一個星星吧!
想了解更多關於 Jekyll 的資訊嗎?查看本教學。為什麼是傑基爾?閱讀 Andrej Karpathy 的部落格文章!
如需 al-folio 安裝的實作演練,請觀看社群成員之一製作的這個很酷的影片教學! ? ?
使用此範本的首選方法是按一下檔案清單上方的「使用此範本」。然後,在github.com:<your-username>/<your-repo-name>
。如果您打算將網站上傳到<your-github-username>.github.io
,請注意您的儲存庫的名稱必須是<your-github-username>.github.io
或<your-github-orgname>.github.io
,如 GitHub 頁面文件所述。有關如何部署網站的更多信息,請查看下面的部署部分。建立新儲存庫後,只需將其下載到您的電腦上:
$ git clone [email protected]: < your-username > / < your-repo-name > .git
$ cd < your-repo-name >
使用 Docker 安裝 Jekyll 和 Ruby 依賴項是最簡單的方法。
您需要執行以下步驟才能在本機上啟動並執行al-folio
:
$ docker compose pull
$ docker compose up
請注意,當您第一次運行它時,它將下載一個大小為 400MB 左右的 docker 映像。
現在,您可以隨意自訂主題(不要忘記更改名稱!)。完成後,您可以使用相同的指令 ( docker compose up
) 來渲染包含所有變更的網頁。另外,請確保提交您的最終更改。
若要變更連接埠號,您可以編輯
docker-compose.yml
檔案。
注意:只有當您想要建立較舊的或非常自訂的 al-folio 版本時,才需要此方法。
使用以下命令建置並運行新的 docker 映像:
$ docker compose up --build
如果你想更新 jekyll、安裝新的 ruby 套件等,你所要做的就是在上一個命令末尾使用
--force-recreate
參數再次建立鏡像!它將下載 Ruby 和 Jekyll,並從頭開始重新安裝所有 Ruby 軟體包。
如果您想要使用特定的 docker 版本,可以透過在docker-compose.yaml
中將latest
標籤變更為your_version
來實作。例如,您可能已經在v0.10.0
上建立了網站,並且您想堅持使用。
假設您的系統上安裝了 Ruby 和 Bundler(提示:為了方便管理 ruby gem,請考慮使用 rbenv ),並且還安裝了 Python 和 pip(提示:為了方便管理python 包,請考慮使用虛擬環境,例如venv 或conda如果您只使用jupyter
,則可以使用 pipx )。
$ bundle install
# assuming pip is your Python package manager
$ pip install jupyter
$ bundle exec jekyll serve --lsi
現在,您可以隨意自訂主題(不要忘記更改名稱!)。完成後,提交最終更改。
將網站部署到 GitHub Pages 是最受歡迎的選擇。從 v0.3.5 版本開始,每次您將新變更推送到儲存庫時, al-folio都會自動重新部署您的網頁!
對於個人和組織網頁:
<your-github-username>.github.io
或<your-github-orgname>.github.io
。_config.yml
中,將url
設定為https://<your-github-username>.github.io
並將baseurl
留空。<your-github-username>.github.io
中可用。對於專案頁面:
_config.yml
中,將url
設定為https://<your-github-username>.github.io
並將baseurl
為/<your-repository-name>/
。<your-github-username>.github.io/<your-repository-name>/
處可用。若要啟用自動部署:
master
分支之外,您的儲存庫現在應該還有一個新建的gh-pages
分支。gh-pages
(而不是master
)。有關更多詳細信息,請參閱為 GitHub Pages 網站配置發布來源。如果您將網站保留在另一個分支上,請在您保留網站的分支上開啟.github/workflows/deploy.yml
並將on->push->branches 和on->pull_request->branches 更改為您保留網站的分支在。這將觸發該分支上的拉/推操作。然後,該操作會將網站部署到觸發它的分支上。
如果您需要手動將網站重新部署到 GitHub 頁面,請前往“操作”,點擊左側邊欄中的“部署”,然後按一下“執行工作流程”。
如果您決定不使用 GitHub Pages 並將頁面託管在其他地方,只需執行:
$ bundle exec jekyll build --lsi
這將(重新)在_site/
資料夾中產生靜態網頁。然後只需將_site/
目錄的內容複製到您的託管伺服器即可。
如果您還想從檔案中刪除未使用的 css 類,請執行:
$ purgecss -c purgecss.config.js
這將用清除的 css 檔案替換_site/assets/css/
資料夾中的 css 檔案。
注意:在建立網頁之前,請確保正確設定_config.yml
中的url
和baseurl
欄位。如果您要將網頁部署到your-domain.com/your-project/
,則必須設定url: your-domain.com
和baseurl: /your-project/
。如果您直接部署到your-domain.com
,請將baseurl
留空。
注意:除非您知道自己在做什麼(確保您熟悉發布來源),否則請勿嘗試使用此方法。這種方法允許將網站的原始程式碼放在一個儲存庫中,並將部署版本放在不同的儲存庫中。
假設您網站的發布來源是克隆在$HOME/repo/
下的 git 版本儲存庫的publishing-source
子目錄。對於使用者站點,這很可能類似於$HOME/<user>.github.io
。
首先,從部署儲存庫目錄中,檢查託管您的發布來源的 git 分支。
然後從網站來源目錄(通常是您的 al-folio 叉子的克隆):
$ bundle exec jekyll build --lsi --destination $HOME /repo/publishing-source
這將指示 jekyll 在$HOME/repo/publishing-source
下部署網站。
注意: Jekyll 將在建置之前清理$HOME/repo/publishing-source
!
下面的引用直接取自 jekyll 設定文件:
目標資料夾在網站建置時被清理
預設情況下,在建置網站時,
<destination>
的內容會自動清理。非由您的網站所建立的檔案或資料夾將被刪除。可以透過在<keep_files>
設定指令中指定某些檔案來保留它們。不要為
<destination>
使用重要位置;相反,將其用作臨時區域並將文件從那裡複製到您的 Web 伺服器。
如果$HOME/repo/publishing-source
包含您希望 jekyll 保持不變的文件,請在_config.yml
中的keep_files
下指定它們。在預設組態中,al-folio 會將頂級README.md
複製到發布來源。如果您想要變更此行為,請在_config.yml
中的exclude
下新增README.md
。
注意:請勿在發布來源儲存庫上執行jekyll clean
,因為這將導致整個目錄被刪除,無論_config.yml
中keep_files
的內容為何。
如果您如上所述安裝了al-folio ,則可以設定 GitHub 操作以自動將您的儲存庫與主題的最新版本同步。
前往設定 -> 操作 -> 常規 -> 工作流程權限,為 GitHub Actions 授予讀寫權限,選取“允許 GitHub Actions 建立和批准拉取請求”,然後儲存變更。
然後轉到“操作”->“新工作流程”->“自行設定工作流程”,設定以下工作流程並提交變更:
name : Sync from template
on :
# cronjob trigger
schedule :
- cron : " 0 0 1 * * "
# manual trigger
workflow_dispatch :
jobs :
repo-sync :
runs-on : ubuntu-latest
steps :
# To use this repository's private action, you must check out the repository
- name : Checkout
uses : actions/checkout@v3
- name : actions-template-sync
uses : AndreasAugustin/[email protected]
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
source_repo_path : alshedivat/al-folio
upstream_branch : master
如果範本中有一些可用的更改,您將在儲存庫中收到拉取請求。
另一個選擇是按照以下步驟手動更新程式碼:
# Assuming the current directory is <your-repo-name>
$ git remote add upstream https://github.com/alshedivat/al-folio.git
$ git fetch upstream
$ git rebase v0.9.0
如果您對以前的版本進行了廣泛的定制,那麼升級可能會比較困難。您仍然可以按照上述步驟操作,但git rebase
可能會導致必須解決的合併衝突。有關更多信息,請參閱 git rebase 手冊以及如何解決衝突。如果變基太複雜,我們建議從頭開始重新安裝新版本的主題,並手動移植您的內容和對先前版本的變更。
以下是一些常見問題。如果您有其他問題,請使用討論問題。
Q :當我從此範本建立新儲存庫並設定儲存庫後,出現部署錯誤。網站不是應該自動正確部署嗎?
答:是的,如果您使用的是v0.3.5
或更高版本,網站將在您第一次提交後自動正確地重新部署。請進行一些更改(例如,更改_config.yml
中的網站資訊)、提交並推送。確保遵循上一節中的部署說明。 (相關問題:209。)
Q:我正在使用自訂網域(例如foo.com
)。每次部署後,我的自訂網域在儲存庫設定中變為空白。我該如何解決這個問題?
答:您需要將CNAME
檔案新增至儲存庫的master
或source
分支。該文件應包含您的自訂網域。 (相關問題:130。)
Q:我的網頁在本地運行。但部署後,它無法建置並拋出Unknown tag 'toc'
。我該如何解決這個問題?
答:確保您遵循了上一節中的部署說明。您應該將部署分支設定為gh-pages
。 (相關問題:1438。)
Q:我的網頁在本地運行。但部署後顯示不正確(CSS和JS未正確載入)。我該如何解決這個問題?
答:確保在_config.yml
中正確指定url
和baseurl
路徑。將url
設定為https://<your-github-username>.github.io
或https://<your.custom.domain>
如果您使用的是自訂網域)。如果您要部署個人或組織網站,請將baseurl
留空。如果您要部署專案頁面,請設定baseurl: /<your-project-name>/
。如果前面的所有步驟都正確完成,那麼您的瀏覽器將無法再次取得網站樣式表。
Q: Atom feed 不起作用。為什麼?
答:確保在_config.yml
中正確指定url
和baseurl
路徑。 RSS Feed 外掛程式適用於這些正確設定的欄位: title
、 url
、 description
和author
。確保以適當的方式填寫它們,然後再試一次。
Q:當我啟用related_blog_posts
時,我的網站無法運作。為什麼?
答:這可能是由於分類器 reborn 插件造成的,該插件用於計算相關帖子。如果錯誤指出Liquid Exception: Zero vectors can not be normalized...
,則表示它無法計算特定貼文的相關貼文。這通常是由於空洞或很少的部落格貼文沒有有意義的單字(即只有停用詞)甚至您在貼文中使用的特定字元引起的。此外,類似貼文的計算是針對每個post
進行的,這意味著每個使用layout: post
的頁面,包括公告。要更改此行為,只需將related_posts: false
新增至您不想顯示相關貼文的頁面的首頁即可。
Q :嘗試部署時,它要求提供 github 登入憑證,而 github 則停用了密碼身份驗證,並且它退出時出現錯誤。如何修復?
答:使用您喜歡的編輯器開啟 .git/config 檔案。將url
變數的https
部分改為ssh
。再次嘗試部署。
您的出版品頁面是根據您的 BibTex 參考書目自動產生的。只要編輯_bibliography/papers.bib
。您也可以新增新的*.bib
檔案並透過編輯_pages/publications.md
自訂出版物的外觀。
在出版物中,您自己的作者條目由_config.yml
中的字串陣列scholar:last_name
和字串陣列scholar:first_name
標識:
scholar :
last_name : [Einstein]
first_name : [Albert, A.]
如果條目與姓氏和名字的一種形式匹配,則會帶有下劃線。將有關共同作者的元資訊保存在_data/coauthors.yml
中,Jekyll 會自動插入指向其網頁的連結。 _data/coauthors.yml
中的共同作者資料格式如下,
" Adams " :
- firstname : ["Edwin", "E.", "E. P.", "Edwin Plimpton"]
url : https://en.wikipedia.org/wiki/Edwin_Plimpton_Adams
" Podolsky " :
- firstname : ["Boris", "B.", "B. Y.", "Boris Yakovlevich"]
url : https://en.wikipedia.org/wiki/Boris_Podolsky
" Rosen " :
- firstname : ["Nathan", "N."]
url : https://en.wikipedia.org/wiki/Nathan_Rosen
" Bach " :
- firstname : ["Johann Sebastian", "J. S."]
url : https://en.wikipedia.org/wiki/Johann_Sebastian_Bach
- firstname : ["Carl Philipp Emanuel", "C. P. E."]
url : https://en.wikipedia.org/wiki/Carl_Philipp_Emanuel_Bach
如果條目與姓氏和名字的組合之一匹配,它將突出顯示並連結到提供的 URL。
您可以使用幾個自訂 bibtex 關鍵字來影響網頁上條目的顯示方式:
abbr
:在條目左側新增縮寫。您可以透過在 _data 資料夾中建立venue.yaml 檔案並新增符合的條目來新增這些連結。abstract
:新增一個「Abs」按鈕,按一下該按鈕可展開隱藏文字欄位以顯示摘要文本arxiv
:新增至 Arxiv 網站的連結(注意:此處僅新增 arxiv 識別碼 - 連結是自動產生的)bibtex_show
:新增一個「書目」按鈕,用於擴展包含完整參考書目條目的隱藏文字字段html
:插入一個「HTML」按鈕,重定向到使用者指定的連結pdf
:新增重定向到指定文件的“PDF”按鈕(如果未指定完整鏈接,則假定該文件位於 /assets/pdf/ 目錄中)supp
:向指定文件添加“Supp”按鈕(如果未指定完整鏈接,則假定該文件位於 /assets/pdf/ 目錄中)blog
:新增重定向到指定連結的「部落格」按鈕code
:新增重定向到指定連結的「代碼」按鈕poster
:新增重定向到指定檔案的「海報」按鈕(如果未指定完整鏈接,則假定該檔案位於 /assets/pdf/ 目錄中)slides
:新增一個「幻燈片」按鈕,重定向到指定檔案(如果未指定完整鏈接,則假定該檔案位於 /assets/pdf/ 目錄中)website
:新增重定向到指定連結的「網站」按鈕altmetric
:新增 Altmetric 徽章(注意:如果提供了 DOI,則只需使用true
,否則僅在此處新增 altmetric 識別碼 - 連結會自動產生)dimensions
:新增 Dimensions 徽章(注意:如果提供了 DOI 或 PMID,則只需使用true
,否則僅在此處新增 Dimensions 識別碼 - 連結會自動產生)您可以透過編輯 bib.html 檔案來實現自己的按鈕。
這個 Jekyll 主題實作了collections
,讓您可以將工作分成類別。這個主題帶有兩個預設集合: news
和projects
。 news
集中的項目會自動顯示在主頁上。 projects
集合中的項目顯示在項目頁面上的響應式網格上。
您可以輕鬆創建自己的收藏、應用程式、短篇故事、課程或任何您的創意作品。為此,請編輯_config.yml
檔案中的集合,建立對應的資料夾,並為您的集合建立一個登陸頁面,類似於_pages/projects.md
。
al-folio為頁面和部落格文章提供了時尚的佈局。
此主題可讓您以 distill.pub 風格建立部落格文章:
有關如何使用<d-*>
標籤創建 distill 風格的帖子的更多詳細信息,請參閱示例。
al-folio支援透過 MathJax 進行快速數學排版,並支援使用 GitHub 風格的程式碼語法突出顯示:
使用 Bootstrap 的網格系統讓照片格式化變得簡單。在您的部落格文章和專案頁面中輕鬆建立漂亮的網格:
al-folio使用 github-readme-stats 和 github-profile-tropy 在/repositories/
頁面上顯示 GitHub 儲存庫和使用者統計資料。
編輯_data/repositories.yml
並更改github_users
和github_repos
列表以將您自己的 GitHub 設定檔和儲存庫包含到/repositories/
頁面。
您也可以使用以下程式碼在任何其他頁面中顯示此內容。
<!-- code for GitHub users -->
{% if site.data.repositories.github_users %}
< div class =" repositories d-flex flex-wrap flex-md-row flex-column justify-content-between align-items-center " >
{% for user in site.data.repositories.github_users %}
{% include repository/repo_user.html username=user %}
{% endfor %}
</ div >
{% endif %}
<!-- code for GitHub trophies -->
{% if site.repo_trophies.enabled %}
{% for user in site.data.repositories.github_users %}
{% if site.data.repositories.github_users.size > 1 %}
< h4 > {{ user }} </ h4 >
{% endif %}
< div class =" repositories d-flex flex-wrap flex-md-row flex-column justify-content-between align-items-center " >
{% include repository/repo_trophies.html username=user %}
</ div >
{% endfor %}
{% endif %}
<!-- code for GitHub repositories -->
{% if site.data.repositories.github_repos %}
< div class =" repositories d-flex flex-wrap flex-md-row flex-column justify-content-between align-items-center " >
{% for repo in site.data.repositories.github_repos %}
{% include repository/repo.html repository=repo %}
{% endfor %}
</ div >
{% endif %}
精心挑選了多種精美的主題顏色供您選擇。預設為紫色,但您可以透過編輯_sass/_themes.scss
檔案中的--global-theme-color
變數來快速更改它。其他顏色變數也列在那裡。可用的庫存主題顏色選項可以在_sass/_variables.scss
中找到。您也可以將自己的顏色新增至此文件中,為每個顏色指派一個名稱,以便於在範本中使用。
al-folio支援在社群媒體上預覽圖像。若要啟用此功能,您需要在_config.yml
中將serve_og_meta
設為true
。完成此操作後,您網站的所有頁面都將在 HTML head 元素中包含開放圖譜資料。
然後,您需要配置在網站的社交媒體預覽中顯示的圖像。這可以透過設定og_image
頁面變數來按頁面進行配置。如果對於單一頁面未設定此變量,則主題將回退到網站範圍的og_image
變量,可在_config.yml
中進行設定。在特定於頁面和網站範圍的情況下, og_image
變數需要儲存您希望在社群媒體預覽中顯示的圖像的 URL。
它會產生您的貼文的 Atom(類似 RSS)提要,對於 Atom 和 RSS 讀者很有用。只需在主頁/feed.xml
之後輸入即可存取該提要。例如,假設您的網站掛載點是主資料夾,您可以輸入yourusername.github.io/feed.xml
預設情況下,部落格文章底部會有一個相關文章部分。這些是透過選擇與目前貼文至少分享min_common_tags
標籤的max_related
最新貼文來產生的。如果您不想在特定帖子上顯示相關帖子,只需將related_posts: false
新增至帖子的首頁即可。如果您想要對所有貼文停用它,只需在_config.yml
的related_blog_posts
部分中將enabled
設定為 false 即可。
非常歡迎為 al-folio 做出貢獻!在開始之前,請先查看指南。
如果您想改進文件、將您的網頁新增到下面的清單中,或修復較小的不一致或錯誤,請隨時直接向master
發送 PR。對於更複雜的問題/錯誤或功能請求,請使用適當的範本開啟問題。
歡迎我們最活躍的貢獻者加入維護者團隊。如果您有興趣,請聯絡我們!
馬魯安 | 羅漢·德布·薩卡 | 阿米爾·普曼德 | 喬治 |
用 contrib.rocks 製作。
此主題根據 MIT 授權條款作為開源提供。
最初, al-folio是基於 *folio 主題(由 Lia Bogoev 發布並獲得 MIT 許可)。從那時起,它完全重寫了樣式和許多額外的酷功能。