一个简单、干净、响应灵敏的学术 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 手册以及如何解决冲突。如果变基太复杂,我们建议从头开始重新安装新版本的主题,并手动移植您的内容和对先前版本的更改。
以下是一些常见问题。如果您有其他问题,请使用讨论提问。
问:当我从此模板创建新存储库并设置存储库后,出现部署错误。网站不是应该自动正确部署吗?
答:是的,如果您使用的是v0.3.5
或更高版本,网站将在您第一次提交后自动正确地重新部署。请进行一些更改(例如,更改_config.yml
中的网站信息)、提交并推送。确保遵循上一节中的部署说明。 (相关问题:209。)
问:我正在使用自定义域(例如foo.com
)。每次部署后,我的自定义域在存储库设置中变为空白。我该如何解决这个问题?
答:您需要将CNAME
文件添加到存储库的master
或source
分支中。该文件应包含您的自定义域名。 (相关问题:130。)
问:我的网页在本地运行。但部署后,它无法构建并抛出Unknown tag 'toc'
。我该如何解决这个问题?
答:确保您遵循了上一节中的部署说明。您应该将部署分支设置为gh-pages
。 (相关问题:1438。)
问:我的网页在本地运行。但部署后显示不正确(CSS和JS未正确加载)。我该如何解决这个问题?
答:确保在_config.yml
中正确指定url
和baseurl
路径。将url
设置为https://<your-github-username>.github.io
或https://<your.custom.domain>
如果您使用的是自定义域)。如果您要部署个人或组织网站,请将baseurl
留空。如果您要部署项目页面,请设置baseurl: /<your-project-name>/
。如果前面的所有步骤都正确完成,那么您的浏览器将无法再次获取网站样式表。
问: Atom feed 不起作用。为什么?
答:确保在_config.yml
中正确指定url
和baseurl
路径。 RSS Feed 插件可与这些正确设置的字段配合使用: title
、 url
、 description
和author
。确保以适当的方式填写它们,然后重试。
问:当我启用related_blog_posts
时,我的网站无法运行。为什么?
答:这可能是由于分类器重生插件所致,该插件用于计算相关帖子。如果错误指出Liquid Exception: Zero vectors can not be normalized...
,则意味着它无法计算特定帖子的相关帖子。这通常是由于空洞或很少的博客文章没有有意义的单词(即只有停用词)甚至您在帖子中使用的特定字符引起的。此外,类似帖子的计算是针对每个post
进行的,这意味着每个使用layout: post
的页面,包括公告。要更改此行为,只需将related_posts: false
添加到您不想显示相关帖子的页面的首页即可。
问:尝试部署时,它要求提供 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 许可)。从那时起,它完全重写了样式和许多额外的酷功能。