diff --git a/.github/ISSUE_TEMPLATE/1_bug_report.yml b/.github/ISSUE_TEMPLATE/1_bug_report.yml
index 96ec317e50b33..b95ae0c5d81d0 100644
--- a/.github/ISSUE_TEMPLATE/1_bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/1_bug_report.yml
@@ -81,7 +81,8 @@ body:
description: select all environments where you have experienced this issue
multiple: true
options:
- - "Running locally with Docker"
+ - "Running locally with Docker (docker compose)"
+ - "Running locally with Docker (devcontainer)"
- "Running locally without Docker"
- "Deployed site"
validations:
diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml
index 12f796cb432e3..3f76faeb8cce7 100644
--- a/.github/workflows/broken-links.yml
+++ b/.github/workflows/broken-links.yml
@@ -49,4 +49,4 @@ jobs:
with:
fail: true
# removed md files that include liquid tags
- args: --user-agent 'curl/7.54' --exclude-path README.md --exclude-path _pages/404.md --exclude-path _pages/blog.md --exclude-path _posts/2018-12-22-distill.md --verbose --no-progress './**/*.md' './**/*.html'
+ args: --user-agent 'curl/7.54' --exclude-path README.md --exclude-path _pages/404.md --exclude-path _pages/blog.md --exclude-path _posts/2018-12-22-distill.md --exclude-path _posts/2023-04-24-videos.md --verbose --no-progress './**/*.md' './**/*.html'
diff --git a/.github/workflows/deploy-docker-tag.yml b/.github/workflows/deploy-docker-tag.yml
index fadfff665e9a4..d7710e2683e64 100644
--- a/.github/workflows/deploy-docker-tag.yml
+++ b/.github/workflows/deploy-docker-tag.yml
@@ -5,6 +5,8 @@ on:
tags:
- "v*"
paths:
+ - ".github/workflows/deploy-docker-tag.yml"
+ - ".github/workflows/deploy-image.yml"
- "bin/entry_point.sh"
- "Dockerfile"
- "Gemfile"
diff --git a/.github/workflows/deploy-image.yml b/.github/workflows/deploy-image.yml
index 133f22d7d143e..7ddd8f65003c5 100644
--- a/.github/workflows/deploy-image.yml
+++ b/.github/workflows/deploy-image.yml
@@ -6,6 +6,7 @@ on:
- master
- main
paths:
+ - ".github/workflows/deploy-image.yml"
- "bin/entry_point.sh"
- "Dockerfile"
- "Gemfile"
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 046ee0de770b8..85b7edffcbadd 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -7,6 +7,7 @@ on:
- main
paths:
- "assets/**"
+ - "**.bib"
- "**.html"
- "**.js"
- "**.liquid"
@@ -33,6 +34,7 @@ on:
- main
paths:
- "assets/**"
+ - "**.bib"
- "**.html"
- "**.js"
- "**.liquid"
diff --git a/.github/workflows/docker-slim.yml b/.github/workflows/docker-slim.yml
index 5d66812e5d039..3a67d32a142d6 100644
--- a/.github/workflows/docker-slim.yml
+++ b/.github/workflows/docker-slim.yml
@@ -2,6 +2,12 @@ name: Docker Slim
#Only trigger, when the build workflow succeeded
on:
+ push:
+ branches:
+ - master
+ - main
+ paths:
+ - ".github/workflows/docker-slim.yml"
workflow_run:
workflows: ["Docker Image CI"]
types:
@@ -15,7 +21,7 @@ on:
jobs:
build:
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-based-on-the-conclusion-of-another-workflow
- if: ${{ github.event.workflow_run.conclusion == 'success' }} and github.repository_owner == 'alshedivat'
+ if: ${{ github.event.workflow_run.conclusion == 'success' && github.repository_owner == 'alshedivat' }}
runs-on: ubuntu-latest
defaults:
run:
diff --git a/.github/workflows/lighthouse-badger.yml b/.github/workflows/lighthouse-badger.yml
index 182517c75cb2f..addec2d3165cf 100644
--- a/.github/workflows/lighthouse-badger.yml
+++ b/.github/workflows/lighthouse-badger.yml
@@ -12,10 +12,9 @@ name: "Lighthouse Badger"
# DEFINE YOUR INPUTS AND TRIGGERS IN THE FOLLOWING
########################################################################
-# INPUTS as environmental variables (env) for not manually triggered workflows
+# INPUTS as Secrets (env) for not manually triggered workflows
env:
URLS: https://alshedivat.github.io/al-folio/
- TOKEN_NAME: LIGHTHOUSE_BADGER_TOKEN
# If any of the following env is blank, a default value is used instead
REPO_BRANCH: "${{ github.repository }} master" # target repository & branch e.g. 'dummy/mytargetrepo main'
MOBILE_LIGHTHOUSE_PARAMS: "--only-categories=performance,accessibility,best-practices,seo --throttling.cpuSlowdownMultiplier=2"
@@ -50,7 +49,7 @@ jobs:
- uses: actions/checkout@v4
with:
repository: ${{ env.REPOSITORY }}
- token: ${{ secrets[github.event.inputs.token_name] || secrets[env.TOKEN_NAME] }}
+ token: ${{ secrets.LIGHTHOUSE_BADGER_TOKEN }}
ref: ${{ env.BRANCH }}
- uses: actions/checkout@v4
with:
diff --git a/.github/workflows/prettier-html.yml b/.github/workflows/prettier-html.yml
new file mode 100644
index 0000000000000..3dc4326e12f8f
--- /dev/null
+++ b/.github/workflows/prettier-html.yml
@@ -0,0 +1,36 @@
+name: Prettify gh-pages
+
+on:
+ workflow_dispatch:
+
+jobs:
+ format:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout gh-pages branch
+ uses: actions/checkout@v4
+ with:
+ ref: gh-pages
+
+ - name: Find and Remove Tags
+ run: find . -type f -name "*.html" -exec sed -i 's/<\/source>//g' {} +
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+
+ - name: Install Prettier
+ run: npm install -g prettier
+
+ - name: Check for Prettier
+ run: npx prettier --version || echo "Prettier not found"
+
+ - name: Run Prettier on HTML files
+ run: npx prettier --write '**/*.html'
+
+ - name: Commit and push changes
+ run: |
+ git config user.name "github-actions"
+ git config user.email "actions@github.com"
+ git add .
+ git commit -m "Formatted HTML files" || echo "No changes to commit"
+ git push
diff --git a/.github/workflows/schedule-posts.txt b/.github/workflows/schedule-posts.txt
new file mode 100644
index 0000000000000..fff22196f0705
--- /dev/null
+++ b/.github/workflows/schedule-posts.txt
@@ -0,0 +1,39 @@
+name: Publish posts scheduled for today
+
+on:
+ schedule:
+ # Run every day at 23:30 UTC or manually run
+ - cron: "30 23 * * *"
+ workflow_dispatch:
+
+jobs:
+ publish_scheduled:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout main branch
+ uses: actions/checkout@v4
+ with:
+ ref: master
+
+ - name: Get the date for today
+ id: date
+ run: echo "TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
+
+ - name: Check for scheduled posts and move to posts
+ run: |
+ echo "Today is $TODAY"
+ shopt -s nullglob
+ for file in _scheduled/${TODAY}-*.md; do
+ echo "Found scheduled: $file"
+ mv "$file" "_posts/"
+ echo "Moved $file to _posts/"
+ done
+
+ - name: Commit and push changes
+ run: |
+ git config user.name "github-actions"
+ git config user.email "actions@github.com"
+ git add _posts/
+ git add _scheduled/
+ git commit -m "Posted Scheduled Drafts on $TODAY" || echo "No changes to commit"
+ git push
diff --git a/.gitignore b/.gitignore
index 7d9ac415d93c3..53af7d0b4e7f6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,4 +9,5 @@ _site
Gemfile.lock
assets/libs/
node_modules/
-vendor
\ No newline at end of file
+vendor
+.idea
\ No newline at end of file
diff --git a/.prettierignore b/.prettierignore
index bfd89b76f034b..ea98f53b376fc 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -8,3 +8,4 @@ assets/js/search/*.js
assets/plotly/demo.html
lighthouse_results/**
_posts/2015-10-20-math.md
+_sass/font-awesome/*.scss
diff --git a/CUSTOMIZE.md b/CUSTOMIZE.md
index 7c63511904f7f..d68b5f3dc307b 100644
--- a/CUSTOMIZE.md
+++ b/CUSTOMIZE.md
@@ -80,7 +80,7 @@ You can easily create your own collections, apps, short stories, courses, or wha
To add publications create a new entry in the [\_bibliography/papers.bib](_bibliography/papers.bib) file. You can find the BibTeX entry of a publication in Google Scholar by clicking on the quotation marks below the publication title, then clicking on "BibTeX", or also in the conference page itself. By default, the publications will be sorted by year and the most recent will be displayed first. You can change this behavior and more in the `Jekyll Scholar` section in [\_config.yml](_config.yml) file.
-You can add extra information to a publication, like a PDF file in the `assets/pdfs/` directory and add the path to the PDF file in the BibTeX entry with the `pdf` field. Some of the supported fields are: `abstract`, `altmetric`, `arxiv`, `bibtex_show`, `blog`, `code`, `dimensions`, `doi`, `eprint`, `html`, `isbn`, `pdf`, `pmid`, `poster`, `slides`, `supp`, `video`, and `website`.
+You can add extra information to a publication, like a PDF file in the `assets/pdfs/` directory and add the path to the PDF file in the BibTeX entry with the `pdf` field. Some of the supported fields are: `abstract`, `altmetric`, `annotation`, `arxiv`, `bibtex_show`, `blog`, `code`, `dimensions`, `doi`, `eprint`, `html`, `isbn`, `pdf`, `pmid`, `poster`, `slides`, `supp`, `video`, and `website`.
### Author annotation
@@ -92,7 +92,7 @@ scholar:
first_name: [Albert, A.]
```
-If the entry matches one form of the last names and the first names, it will be underlined. Keep meta-information about your co-authors in [\_data/coauthors.yml](_data/coauthors.yml) and Jekyll will insert links to their webpages automatically. The co-author data format is as follows,
+If the entry matches one form of the last names and the first names, it will be underlined. Keep meta-information about your co-authors in [\_data/coauthors.yml](_data/coauthors.yml) and Jekyll will insert links to their webpages automatically. The co-author data format is as follows, with the last names lower cased and without accents as the key:
```yaml
"adams":
@@ -115,7 +115,7 @@ If the entry matches one form of the last names and the first names, it will be
url: https://en.wikipedia.org/wiki/Carl_Philipp_Emanuel_Bach
```
-If the entry matches one of the combinations of the last names and the first names, it will be highlighted and linked to the url provided.
+If the entry matches one of the combinations of the last names and the first names, it will be highlighted and linked to the url provided. Note that the keys **MUST BE** lower cased and **MUST NOT** contain accents. This is because the keys are used to match the last names in the BibTeX entries, considering possible variations.
### Buttons (through custom bibtex keywords)
@@ -124,6 +124,7 @@ There are several custom bibtex keywords that you can use to affect how the entr
- `abbr`: Adds an abbreviation to the left of the entry. You can add links to these by creating a venue.yaml-file in the \_data folder and adding entries that match.
- `abstract`: Adds an "Abs" button that expands a hidden text field when clicked to show the abstract text
- `altmetric`: Adds an [Altmetric](https://www.altmetric.com/) badge (Note: if DOI is provided just use `true`, otherwise only add the altmetric identifier here - the link is generated automatically)
+- `annotation`: Adds a popover info message to the end of the author list that can potentially be used to clarify superscripts. HTML is allowed.
- `arxiv`: Adds a link to the Arxiv website (Note: only add the arxiv identifier here - the link is generated automatically)
- `bibtex_show`: Adds a "Bib" button that expands a hidden text field with the full bibliography entry
- `blog`: Adds a "Blog" button redirecting to the specified link
@@ -145,3 +146,54 @@ A variety of beautiful theme colors have been selected for you to choose from. T
## Adding social media information
You can add your social media links by adding the specified information at the `Social integration` section in the [\_config.yml](_config.yml) file. This information will appear at the bottom of the `About` page.
+
+## Adding a newsletter
+
+You can add a newsletter subscription form by adding the specified information at the `newsletter` section in the [\_config.yml](_config.yml) file. To set up a newsletter, you can use a service like [Loops.so](https://loops.so/), which is the current supported solution. Once you have set up your newsletter, you can add the form [endpoint](https://loops.so/docs/forms/custom-form) to the `endpoint` field in the `newsletter` section of the [\_config.yml](_config.yml) file.
+
+Depending on your specified footer behavior, the sign up form either will appear at the bottom of the `About` page and at the bottom of blogposts if `related_posts` are enabled, or in the footer at the bottom of each page.
+
+## Adding Token for Lighthouse Badger
+
+To add secrets for [lighthouse-badger](https://github.com/alshedivat/al-folio/actions/workflows/lighthouse-badger.yml), create a [personal access token (PAT)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) and add it as a [secret](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-encrypted-secrets-for-a-repository) named `LIGHTHOUSE_BADGER_TOKEN` to your repository. The [lighthouse-badger documentation](https://github.com/MyActionWay/lighthouse-badger-workflows#lighthouse-badger-easyyml) specifies using an environment variable, but using it as a secret is more secure and appropriate for a PAT.
+
+Also In case you face the error: "Input required and not supplied: token" in the Lighthouse Badger action, this solution resolves it.
+
+### Personal Access Token (fine-grained) Permissions for Lighthouse Badger:
+
+- **contents**: access: read and write
+- **metadata**: access: read-only
+
+Due to the necessary permissions (PAT and others mentioned above), it is recommended to use it as a secret rather than an environment variable.
+
+## Customizing fonts, spacing, and more
+
+You can customize the fonts, spacing, and more by editing [\_sass/\_base.scss](_sass/_base.scss). The easiest way to try in advance the changes is by using [chrome dev tools](https://developer.chrome.com/docs/devtools/css) or [firefox dev tools](https://firefox-source-docs.mozilla.org/devtools-user/). In there you can click in the element and find all the attributes that are set for that element and where are they. For more information on how to use this, check [chrome](https://developer.chrome.com/docs/devtools/css) and [firefox](https://firefox-source-docs.mozilla.org/devtools-user/page_inspector/how_to/examine_and_edit_css/index.html) how-tos, and [this tutorial](https://www.youtube.com/watch?v=l0sgiwJyEu4).
+
+## Scheduled Posts
+
+`al-folio` contains a workflow which automatically publishes all posts scheduled at a specific day, at the end of the day (23:30). By default the action is disabled, and to enable it you need to go to `.github/workflows/` and find the file called `schedule-posts.txt`. This is the workflow file. For GitHub to recognize it as one (or to enable the action), you need to rename it to `schedule-posts.yml`.
+
+In order to use this you need to save all of your "Completed" blog posts which are scheduled to be uploaded on a specific date, in a folder named `_scheduled/` in the root directory.
+
+> Incomplete posts should be saved in `_drafts/`
+
+### Name Format
+
+In this folder you need to store your file in the same format as you would in `_posts/`
+
+> Example file name: `2024-08-26-This file will be uploaded on 26 August.md`
+
+### Important Notes
+
+- The scheduler uploads posts everyday at 🕛 23:30 UTC
+- It will only upload posts at 23:30 UTC of their respective scheduled days, It's not uploaded in 23:59 in case there are a lot of files as the scheduler must finish before 00:00
+- It will only upload files which follow the pattern `yyyy-mm-dd-title.md`
+ - This means that only markdown files will be posted
+ - It means that any markdown which do not follow this pattern will not be posted
+- The scheduler works by moving posts from the `_scheduled/` directory to `_posts/`, it will not post to folders like `_projects/` or `_news/`
+- The date in the name of the file is the day that file will be uploaded on
+ - `2024-08-27-file1.md` will not be posted before or after 27-August-2024 (Scheduler only works for posts scheduled on the present day)
+ - `2025-08-27-file2.md` will be posted exactly on 27-August-2025
+ - `File3.md` will not be posted at all
+ - `2026-02-31-file4.md` is supposed to be posted on 31-February-2026, but there is no 31st in February hence this file will never be posted either
diff --git a/Dockerfile b/Dockerfile
index 6843d3d0320bc..f704814abe102 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -8,9 +8,10 @@ RUN apt-get update -y && apt-get install -y --no-install-recommends \
imagemagick \
build-essential \
zlib1g-dev \
- jupyter-nbconvert \
+ python3-pip \
inotify-tools procps && \
- apt-get clean && rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
+ apt-get clean && rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/* && \
+ pip install nbconvert --break-system-packages
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
diff --git a/FAQ.md b/FAQ.md
index d6faca56df53f..ac8959e35d1fb 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -18,43 +18,75 @@ Here are some frequently asked questions. If you have a different question, plea
---
-#### After I create a new repository from this template and setup the repo, I get a deployment error. Isn't the website supposed to correctly deploy automatically?
+### After I create a new repository from this template and setup the repo, I get a deployment error. Isn't the website supposed to correctly deploy automatically?
Yes, if you are using release `v0.3.5` or later, the website will automatically and correctly re-deploy right after your first commit. Please make some changes (e.g., change your website info in `_config.yml`), commit, and push. Make sure to follow [deployment instructions](https://github.com/alshedivat/al-folio#deployment). (Relevant issue: [209](https://github.com/alshedivat/al-folio/issues/209#issuecomment-798849211).)
-#### I am using a custom domain (e.g., `foo.com`). My custom domain becomes blank in the repository settings after each deployment. How do I fix that?
+---
+
+### I am using a custom domain (e.g., `foo.com`). My custom domain becomes blank in the repository settings after each deployment. How do I fix that?
You need to add `CNAME` file to the `master` or `source` branch of your repository. The file should contain your custom domain name. (Relevant issue: [130](https://github.com/alshedivat/al-folio/issues/130).)
-#### My webpage works locally. But after deploying, it fails to build and throws `Unknown tag 'toc'`. How do I fix that?
+---
+
+### My webpage works locally. But after deploying, it fails to build and throws `Unknown tag 'toc'`. How do I fix that?
Make sure you followed through the [deployment instructions](#deployment) in the previous section. You should have set the deployment branch to `gh-pages`. (Related issue: [1438](https://github.com/alshedivat/al-folio/issues/1438).)
-#### My webpage works locally. But after deploying, it is not displayed correctly (CSS and JS are not loaded properly). How do I fix that?
+---
+
+### My webpage works locally. But after deploying, it is not displayed correctly (CSS and JS are not loaded properly). How do I fix that?
+
+If the website does not load the theme, the layout looks weird, and all links are broken, being the main page displayed this way:
+
+
-If the website does not load the theme, the layout looks weird, and all links are broken, make sure to correctly specify the `url` and `baseurl` paths in `_config.yml`. Set `url` to `https://.github.io` or to `https://` if you are using a custom domain. If you are deploying a personal or organization website, leave `baseurl` blank. If you are deploying a project page, set `baseurl: //`. If all previous steps were done correctly, all is missing is [for your browser to fetch again the site stylesheet](https://github.com/alshedivat/al-folio/issues/1398#issuecomment-1609518404).
+make sure to correctly specify the `url` and `baseurl` paths in `_config.yml`. Set `url` to `https://.github.io` or to `https://` if you are using a custom domain. If you are deploying a personal or organization website, leave `baseurl` **empty** (do **NOT** delete it). If you are deploying a project page, set `baseurl: //`. If all previous steps were done correctly, all is missing is for your browser to fetch again the site stylesheet. For this, you can:
-#### Atom feed doesn't work. Why?
+- press [Shift + F5 on Chromium-based](https://support.google.com/chrome/answer/157179#zippy=%2Cwebpage-shortcuts) or [Ctrl + F5 on Firefox-based](https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly) browsers to reload the page ignoring cached content
+- clean your browser history
+- simply try it in a private session, here's how to do it in [Chrome](https://support.google.com/chrome/answer/95464) and [Firefox](https://support.mozilla.org/en-US/kb/private-browsing-use-firefox-without-history)
+
+---
+
+### Atom feed doesn't work. Why?
Make sure to correctly specify the `url` and `baseurl` paths in `_config.yml`. RSS Feed plugin works with these correctly set up fields: `title`, `url`, `description` and `author`. Make sure to fill them in an appropriate way and try again.
-#### My site doesn't work when I enable `related_blog_posts`. Why?
+---
+
+### My site doesn't work when I enable `related_blog_posts`. Why?
This is probably due to the [classifier reborn](https://github.com/jekyll/classifier-reborn) plugin, which is used to calculate related posts. If the error states `Liquid Exception: Zero vectors can not be normalized...` or `sqrt': Numerical argument is out of domain - "sqrt"`, it means that it could not calculate related posts for a specific post. This is usually caused by [empty or minimal blog posts](https://github.com/jekyll/classifier-reborn/issues/64) without meaningful words (i.e. only [stop words](https://en.wikipedia.org/wiki/Stop_words)) or even [specific characters](https://github.com/jekyll/classifier-reborn/issues/194) you used in your posts. Also, the calculus for similar posts are made for every `post`, which means every page that uses `layout: post`, including the announcements. To change this behavior, simply add `related_posts: false` to the front matter of the page you don't want to display related posts on. Another solution is to disable the lsi (latent semantic indexing) entirely by setting the `lsi` flag to `false` in `_config.yml`. Related issue: [#1828](https://github.com/alshedivat/al-folio/issues/1828).
-#### When trying to deploy, it's asking for github login credentials, which github disabled password authentication and it exits with an error. How to fix?
+---
+
+### When trying to deploy, it's asking for github login credentials, which github disabled password authentication and it exits with an error. How to fix?
Open .git/config file using your preferred editor. Change the `https` portion of the `url` variable to `ssh`. Try deploying again.
-#### When I manually run the [Lighthouse Badger](https://github.com/alshedivat/al-folio/actions/workflows/lighthouse-badger.yml) workflow, it fails with `Error: Input required and not supplied: token`. How do I fix that?
+---
+
+### When I manually run the [Lighthouse Badger](https://github.com/alshedivat/al-folio/actions/workflows/lighthouse-badger.yml) workflow, it fails with `Error: Input required and not supplied: token`. How do I fix that?
You need to [create a personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) and [add it as a secret](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-encrypted-secrets-for-a-repository) named `LIGHTHOUSE_BADGER_TOKEN` to your repository. For more information, check [lighthouse-badger documentation](https://github.com/MyActionWay/lighthouse-badger-workflows#lighthouse-badger-easyyml) on how to do this.
-#### My code runs fine locally, but when I create a commit and submit it, it fails with `prettier code formatter workflow run failed for master branch`. How do I fix that?
+---
+
+### My code runs fine locally, but when I create a commit and submit it, it fails with `prettier code formatter workflow run failed for master branch`. How do I fix that?
+
+We implemented support for [Prettier code formatting](https://prettier.io/) in [#2048](https://github.com/alshedivat/al-folio/pull/2048). It basically ensures that your code is [well formatted](https://prettier.io/docs/en/). If you want to ensure your code is compliant with `Prettier`, you have a few options:
+
+- if you are running locally with `Docker` and using [development containers](https://github.com/alshedivat/al-folio/blob/master/INSTALL.md#local-setup-with-development-containers), `Prettier` is already included
+- if you don't use `Docker`, it is simple to integrate it with your preferred IDE using an [extension](https://prettier.io/docs/en/editors)
+- if you want to run it manually, you can follow the first 2 steps in [this tutorial](https://george-gca.github.io/blog/2023/slidev_for_non_web_devs/) (`Installing node version manager (nvm)` and `Installing Node (latest version)`), then, install it using `npm install prettier` inside the project directory, or install it globally on your computer using `npm install -g prettier`. To run `Prettier` on your current directory use `npx prettier . --write`.
+
+You can also disable it for your repo. For this, just delete the file [.github/workflows/prettier.yml](https://github.com/alshedivat/al-folio/blob/master/.github/workflows/prettier.yml).
-We implemented support for [Prettier code formatting](https://prettier.io/) in [#2048](https://github.com/alshedivat/al-folio/pull/2048). It basically ensures that your code is well formatted. If you want to ensure your code is compliant with `Prettier` you can install it in your computer [integrated with an editor](https://prettier.io/docs/en/editors), [install it and run manually](https://prettier.io/docs/en/install), or you can disable it for your repo. For this, just delete the file [.github/workflows/prettier.yml](https://github.com/alshedivat/al-folio/blob/master/.github/workflows/prettier.yml).
+---
-#### After I update my site with some new content, even a small change, the GitHub action throws an error or displays a warning. What happened?
+### After I update my site with some new content, even a small change, the GitHub action throws an error or displays a warning. What happened?
Probably your GitHub workflow is throwing an error like this:
@@ -75,15 +107,21 @@ If that's the case, you are using deprecated libraries/commands. This happens be
Note that libraries tend to be deprecated and support for them dropped as they are no longer maintained, and keep using them involves security breaches. Also, some of these deprecations are enforced, for example, by GitHub itself, so there's so much we can do. We have also added tons of new functionality, as well as tidying things up and improving the overall speed and structure, so you could also benefit from these improvements.
-#### I am trying to deploy my site, but it fails with `Could not find gem 'jekyll-diagrams' in locally installed gems`. How do I fix that?
+---
+
+### I am trying to deploy my site, but it fails with `Could not find gem 'jekyll-diagrams' in locally installed gems`. How do I fix that?
`jekyll-diagrams` support was dropped in [#1992](https://github.com/alshedivat/al-folio/pull/1992) in favor of using `mermaid.js` directly. Simply [update your code](INSTALL.md#upgrading-from-a-previous-version) to get the latest changes.
-#### How can I update Font Awesome version on the template
+---
+
+### How can I update Font Awesome version on the template
To update the Font Awesome version, you need to download the latest release "for the web" from the [Font Awesome website](https://fontawesome.com/download). After downloading, extract the zip file and copy the `scss/` directory content to `_sass/font-awesome/` and the `webfonts/` content to `assets/webfonts/`.
-#### What do all these GitHub actions/workflows mean?
+---
+
+### What do all these GitHub actions/workflows mean?
GitHub actions are a way to automate tasks in the repository. They are defined in `.github/workflows/` directory. Each file in this directory is a workflow. Workflows are made up of one or more jobs, and each job runs on a virtual machine hosted by GitHub. You can see the status of the workflows in the `Actions` tab of your repository. For more information, check the [GitHub Actions documentation](https://docs.github.com/en/actions).
diff --git a/Gemfile b/Gemfile
index 453c17edeb388..fa34c9646671a 100644
--- a/Gemfile
+++ b/Gemfile
@@ -11,6 +11,7 @@ group :jekyll_plugins do
gem 'jekyll-link-attributes'
gem 'jekyll-minifier'
gem 'jekyll-paginate-v2'
+ gem 'jekyll-regex-replace'
gem 'jekyll-scholar'
gem 'jekyll-sitemap'
gem 'jekyll-tabs'
diff --git a/Gemfile.lock b/Gemfile.lock
index 48c266a996ec4..bb9672cca3610 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,18 +1,19 @@
GEM
remote: https://rubygems.org/
specs:
- activesupport (7.1.3.2)
+ activesupport (7.2.1)
base64
bigdecimal
- concurrent-ruby (~> 1.0, >= 1.0.2)
+ concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
+ logger (>= 1.4.2)
minitest (>= 5.1)
- mutex_m
- tzinfo (~> 2.0)
- addressable (2.8.6)
- public_suffix (>= 2.0.2, < 6.0)
+ securerandom (>= 0.3)
+ tzinfo (~> 2.0, >= 2.0.5)
+ addressable (2.8.7)
+ public_suffix (>= 2.0.2, < 7.0)
base64 (0.2.0)
bibtex-ruby (6.1.0)
latex-decode (~> 0.0)
@@ -27,7 +28,7 @@ GEM
fast-stemmer (~> 1.0)
matrix (~> 0.4)
colorator (1.1.0)
- concurrent-ruby (1.2.3)
+ concurrent-ruby (1.3.4)
connection_pool (2.4.1)
crass (1.0.6)
csl (1.6.0)
@@ -35,7 +36,7 @@ GEM
rexml
csl-styles (1.0.1.11)
csl (~> 1.0)
- css_parser (1.17.1)
+ css_parser (1.19.0)
addressable
cssminify2 (2.0.1)
csv (3.3.0)
@@ -50,12 +51,23 @@ GEM
feedjira (3.2.3)
loofah (>= 2.3.1, < 3)
sax-machine (>= 1.0, < 2)
- ffi (1.16.3)
+ ffi (1.17.0-aarch64-linux-gnu)
+ ffi (1.17.0-arm64-darwin)
+ ffi (1.17.0-x86_64-darwin)
+ ffi (1.17.0-x86_64-linux-gnu)
forwardable-extended (2.6.0)
gemoji (4.1.0)
- google-protobuf (4.26.1-aarch64-linux)
+ google-protobuf (4.28.2-aarch64-linux)
+ bigdecimal
+ rake (>= 13)
+ google-protobuf (4.28.2-arm64-darwin)
+ bigdecimal
+ rake (>= 13)
+ google-protobuf (4.28.2-x86_64-darwin)
+ bigdecimal
rake (>= 13)
- google-protobuf (4.26.1-x86_64-linux)
+ google-protobuf (4.28.2-x86_64-linux)
+ bigdecimal
rake (>= 13)
html-pipeline (2.14.3)
activesupport (>= 2)
@@ -66,9 +78,9 @@ GEM
csv
mini_mime (>= 1.0.0)
multi_xml (>= 0.5.2)
- i18n (1.14.5)
+ i18n (1.14.6)
concurrent-ruby (~> 1.0)
- jekyll (4.3.3)
+ jekyll (4.3.4)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
@@ -105,6 +117,7 @@ GEM
uglifier (~> 4.1)
jekyll-paginate-v2 (3.0.0)
jekyll (>= 3.0, < 5.0)
+ jekyll-regex-replace (1.1.0)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-scholar (7.1.3)
@@ -116,7 +129,7 @@ GEM
jekyll (>= 3.7, < 5.0)
jekyll-tabs (1.2.1)
jekyll (>= 3.0, < 5.0)
- jekyll-toc (0.18.0)
+ jekyll-toc (0.19.0)
jekyll (>= 3.9)
nokogiri (~> 1.12)
jekyll-twitter-plugin (2.1.0)
@@ -134,61 +147,72 @@ GEM
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
latex-decode (0.4.0)
- libv8-node (21.7.2.0-aarch64-linux)
- libv8-node (21.7.2.0-x86_64-linux)
+ libv8-node (22.7.0.4-aarch64-linux)
+ libv8-node (22.7.0.4-arm64-darwin)
+ libv8-node (22.7.0.4-x86_64-darwin)
+ libv8-node (22.7.0.4-x86_64-linux)
liquid (4.0.4)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
+ logger (1.6.1)
loofah (2.22.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
matrix (0.4.2)
mercenary (0.4.0)
mini_mime (1.1.5)
- mini_racer (0.12.0)
- libv8-node (~> 21.7.2.0)
- minitest (5.22.3)
+ mini_racer (0.15.0)
+ libv8-node (~> 22.7.0.1)
+ minitest (5.25.1)
multi_xml (0.7.1)
bigdecimal (~> 3.1)
- mutex_m (0.2.0)
namae (1.2.0)
racc (~> 1.7)
- nokogiri (1.16.5-aarch64-linux)
+ nokogiri (1.16.7-aarch64-linux)
+ racc (~> 1.4)
+ nokogiri (1.16.7-arm64-darwin)
+ racc (~> 1.4)
+ nokogiri (1.16.7-x86_64-darwin)
racc (~> 1.4)
- nokogiri (1.16.5-x86_64-linux)
+ nokogiri (1.16.7-x86_64-linux)
racc (~> 1.4)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (5.0.5)
- racc (1.7.3)
+ public_suffix (6.0.1)
+ racc (1.8.1)
rake (13.2.1)
rb-fsevent (0.11.2)
- rb-inotify (0.10.1)
+ rb-inotify (0.11.1)
ffi (~> 1.0)
- rexml (3.2.8)
- strscan (>= 3.0.9)
- rouge (4.2.1)
+ rexml (3.3.7)
+ rouge (4.4.0)
safe_yaml (1.0.5)
- sass-embedded (1.77.0-aarch64-linux-gnu)
- google-protobuf (>= 3.25, < 5.0)
- sass-embedded (1.77.0-x86_64-linux-gnu)
- google-protobuf (>= 3.25, < 5.0)
+ sass-embedded (1.79.3-aarch64-linux-gnu)
+ google-protobuf (~> 4.27)
+ sass-embedded (1.79.3-arm64-darwin)
+ google-protobuf (~> 4.27)
+ sass-embedded (1.79.3-x86_64-darwin)
+ google-protobuf (~> 4.27)
+ sass-embedded (1.79.3-x86_64-linux-gnu)
+ google-protobuf (~> 4.27)
sax-machine (1.3.2)
- strscan (3.1.0)
+ securerandom (0.3.1)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
- uglifier (4.2.0)
+ uglifier (4.2.1)
execjs (>= 0.3.0, < 3)
- unicode-display_width (2.5.0)
+ unicode-display_width (2.6.0)
unicode_utils (1.4.0)
- webrick (1.8.1)
+ webrick (1.8.2)
PLATFORMS
aarch64-linux
- x86_64-linux-gnu
+ arm64-darwin
+ x86_64-darwin
+ x86_64-linux
DEPENDENCIES
classifier-reborn
@@ -205,6 +229,7 @@ DEPENDENCIES
jekyll-link-attributes
jekyll-minifier
jekyll-paginate-v2
+ jekyll-regex-replace
jekyll-scholar
jekyll-sitemap
jekyll-tabs
diff --git a/INSTALL.md b/INSTALL.md
index 8b3992083bbc5..71c938ff18fe3 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -21,16 +21,15 @@
## Recommended Approach
-The recommended approach for using **al-folio** is to first create your own site using the template with as few changes as possible, and only when it is up and running customize it however you like. This way it is easier to pinpoint what causes a potential issue in case of a bug. The minimum steps required to create your own site are:
+The recommended approach for using **al-folio** is to first create your own site using the template with as few changes as possible, and only when it is up and running customize it however you like. This way it is easier to pinpoint what causes a potential issue in case of a bug. The minimum steps required to create your own site are ([video tutorial here](assets/video/tutorial_al_folio.mp4)):
1. Create a new repository using this template. For this, click on [Use this template -> Create a new repository](https://github.com/new?template_name=al-folio&template_owner=alshedivat) above the file list. If you plan to upload your site to `.github.io`, note that the name of your repository :warning: **MUST BE** :warning: `.github.io` or `.github.io`, as stated in the [GitHub pages docs](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites).
2. In this new repository, go to `Settings -> Actions -> General -> Workflow permissions` and give `Read and write permissions` to GitHub Actions.
-3. Open file `_config.yml`, set `url` to `https://.github.io` and leave `baseurl` **empty** (do NOT delete it).
-4. Wait until the GitHub actions finish (check your repository **Actions** tab). Now, in addition to the master branch, your repository has a newly built gh-pages branch.
+3. Open file `_config.yml`, set `url` to `https://.github.io` and leave `baseurl` **empty** (do NOT delete it), as `baseurl:`.
+4. Wait until the GitHub action with subtitle `Deploy site` finishes (check your repository **Actions** tab), which takes ~4 min. Now, in addition to the `master` branch, your repository has a newly built `gh-pages` branch.
5. Finally, in the repository page go to `Settings -> Pages -> Build and deployment`, make sure that `Source` is set to `Deploy from a branch` and set the branch to `gh-pages` (NOT to master).
-6. Wait until the GitHub actions finish (check your repository **Actions** tab), then simply navigate to `https://.github.io` in your browser. At this point you should see a copy of the theme's [demo website](https://alshedivat.github.io/al-folio/).
-
-After everything is set up, you can download the repository to your machine and start customizing it. To do so, run the following commands:
+6. Wait until the GitHub action `pages-build-deployment` finishes (check your repository **Actions** tab), which takes ~45s, then simply navigate to `https://.github.io` in your browser. At this point you should see a copy of the theme's [demo website](https://alshedivat.github.io/al-folio/).
+ After everything is set up, you can download the repository to your machine and start customizing it. To do so, run the following commands:
```bash
$ git clone git@github.com:/.git
@@ -185,38 +184,7 @@ In its default configuration, al-folio will copy the top-level `README.md` to th
## Upgrading from a previous version
-If you installed **al-folio** as described above, you can configure a [GitHub action](https://github.com/AndreasAugustin/actions-template-sync) to automatically sync your repository with the latest version of the theme.
-
-Go to Settings -> Actions -> General -> Workflow permissions, give Read and write permissions to GitHub Actions, check "Allow GitHub Actions to create and approve pull requests", and save your changes.
-
-Then go to Actions -> New workflow -> set up a workflow yourself, setup the following workflow and commit your changes:
-
-```yaml
-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@v4
- - name: actions-template-sync
- uses: AndreasAugustin/actions-template-sync@v1
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- source_repo_path: alshedivat/al-folio
- upstream_branch: master
-```
-
-You will receive a pull request within your repository if there are some changes available in the template.
-
-Another option is to manually update your code by following the steps below:
+If you installed **al-folio** as described above, you can manually update your code by following the steps below:
```bash
# Assuming the current directory is
diff --git a/README.md b/README.md
index c2f60cdd7dc6e..1a29500949bd3 100644
--- a/README.md
+++ b/README.md
@@ -139,6 +139,24 @@ Feel free to add your own page(s) by sending a PR.
★★★
+★
+★
+★
+★
+★
+★
+★
+★
+★
+★
+★
+★
+★
+★
+★
+★
+★
+★
@@ -151,6 +169,8 @@ Feel free to add your own page(s) by sending a PR.
★★★
+★
+★
@@ -176,7 +196,8 @@ Score Based Methods (NeurIPS: 2022)
Medical Robotics Junior Faculty Forum (ISMR: 2023)
Beyond Vision: Physics meets AI (ICIAP: 2023)
-Workshop on Diffusion Models (NeurIPS: 2023)
+Workshop on Diffusion Models (NeurIPS: 2023)
+Workshop on Structured Probabilistic Inference & Generative Modeling (ICML: 2023, 2024)
@@ -437,7 +458,7 @@ Our most active contributors are welcome to join the maintainers team. If you ar
### All Contributors
-
+
## Star History
diff --git a/_bibliography/papers.bib b/_bibliography/papers.bib
index 948f6b6f91edf..d8c6b05cf2553 100644
--- a/_bibliography/papers.bib
+++ b/_bibliography/papers.bib
@@ -36,7 +36,7 @@ @article{einstein1950meaning
@article{PhysRev.47.777,
abbr={PhysRev},
title={Can Quantum-Mechanical Description of Physical Reality Be Considered Complete?},
- author={Einstein, A. and Podolsky, B. and Rosen, N.},
+ author={Einstein*†, A. and Podolsky*, B. and Rosen*, N.},
abstract={In a complete theory there is an element corresponding to each element of reality. A sufficient condition for the reality of a physical quantity is the possibility of predicting it with certainty, without disturbing the system. In quantum mechanics in the case of two physical quantities described by non-commuting operators, the knowledge of one precludes the knowledge of the other. Then either (1) the description of reality given by the wave function in quantum mechanics is not complete or (2) these two quantities cannot have simultaneous reality. Consideration of the problem of making predictions concerning a system on the basis of measurements made on another system that had previously interacted with it leads to the result that if (1) is false then (2) is also false. One is thus led to conclude that the description of reality as given by a wave function is not complete.},
journal={Phys. Rev.},
location={New Jersey},
@@ -56,7 +56,9 @@ @article{PhysRev.47.777
google_scholar_id={qyhmnyLat1gC},
video={https://www.youtube-nocookie.com/embed/aqz-KE-bpKQ},
additional_info={. *More Information* can be [found here](https://github.com/alshedivat/al-folio/)},
- selected={true}
+ annotation={* Example use of superscripts †Albert Einstein},
+ selected={true},
+ inspirehep_id = {3255}
}
@article{einstein1905molekularkinetischen,
diff --git a/_config.yml b/_config.yml
index 930a8facc7089..b17f37e598a61 100644
--- a/_config.yml
+++ b/_config.yml
@@ -51,6 +51,7 @@ navbar_fixed: true
footer_fixed: true
search_enabled: true
socials_in_search: true
+bib_search: true
# Dimensions
max_width: 930px
@@ -80,6 +81,7 @@ flickr_id: # your flickr id
github_username: # your GitHub user name
gitlab_username: # your GitLab user name
ieee_id: # your ieeexplore.ieee.org/author/id
+inspirehep_id: 1010907 # Inspire HEP author ID
instagram_id: # your instagram id
kaggle_id: # your kaggle id
keybase_username: # your keybase user name
@@ -121,6 +123,7 @@ contact_note: >
# and follow the instructions for Google Sites. You will need to create a Google Analytics property and copy the Google tag ID.
google_analytics: # your Google Analytics measurement ID (format: G-XXXXXXXXXX)
cronitor_analytics: # cronitor RUM analytics site ID (format: XXXXXXXXX)
+pirsch_analytics: # your Pirsch analytics site ID (length 32 characters)
# For Google Search Console, see https://support.google.com/webmasters/answer/9008080?hl=en#meta_tag_verification&zippy=%2Chtml-tag
google_site_verification: # your google-site-verification ID (Google Search Console)
@@ -133,7 +136,7 @@ bing_site_verification: # out your bing-site-verification ID (Bing Webmaster)
blog_name: al-folio # blog_name will be displayed in your blog page
blog_description: a simple whitespace theme for academics
permalink: /blog/:year/:title/
-lsi: true # produce an index for related posts
+lsi: false # produce an index for related posts
# Pagination
pagination:
@@ -168,6 +171,19 @@ disqus_shortname: al-folio # put your disqus shortname
external_sources:
- name: medium.com
rss_url: https://medium.com/@al-folio/feed
+ - name: Google Blog
+ posts:
+ - url: https://blog.google/technology/ai/google-gemini-update-flash-ai-assistant-io-2024/
+ published_date: 2024-05-14
+
+# -----------------------------------------------------------------------------
+# Newsletter
+# -----------------------------------------------------------------------------
+
+newsletter:
+ enabled: false
+ endpoint: # your loops endpoint (e.g., https://app.loops.so/api/newsletter-form/YOUR-ENDPOINT)
+ # https://loops.so/docs/forms/custom-form
# -----------------------------------------------------------------------------
# Collections
@@ -178,10 +194,10 @@ collections:
defaults:
layout: post
output: true
- permalink: /news/:path/
+ permalink: /:collection/:title/
projects:
output: true
- permalink: /projects/:path/
+ permalink: /:collection/:title/
announcements:
enabled: true
@@ -247,6 +263,7 @@ plugins:
- jekyll-link-attributes
- jekyll-minifier
- jekyll-paginate-v2
+ - jekyll-regex-replace
- jekyll/scholar
- jekyll-sitemap
- jekyll-tabs
@@ -269,7 +286,7 @@ sass:
# -----------------------------------------------------------------------------
jekyll-minifier:
- exclude: ["robots.txt", "assets/js/search/*.js"]
+ exclude: ["robots.txt", "assets/js/search/*.js", "assets/libs/**/*"]
uglifier_args:
harmony: true
@@ -288,8 +305,8 @@ jekyll-archives:
tag: "/blog/tag/:name/"
category: "/blog/category/:name/"
-display_tags: ["formatting", "images", "links", "math", "code"] # these tags will be displayed on the front page of your blog
-display_categories: ["blockquotes"] # these categories will be displayed on the front page of your blog
+display_tags: ["formatting", "images", "links", "math", "code", "blockquotes"] # these tags will be displayed on the front page of your blog
+display_categories: ["external-services"] # these categories will be displayed on the front page of your blog
# -----------------------------------------------------------------------------
# Jekyll Scholar
@@ -321,10 +338,12 @@ scholar:
group_order: descending
# Display different badges withs stats for your publications
+# Customize badge behavior in _layouts/bib.liquid
enable_publication_badges:
- altmetric: true # Altmetric badge (https://www.altmetric.com/products/altmetric-badges/)
- dimensions: true # Dimensions badge (https://badge.dimensions.ai/)
+ altmetric: true # Altmetric badge (Customization options: https://badge-docs.altmetric.com/index.html)
+ dimensions: true # Dimensions badge (Customization options: https://badge.dimensions.ai/)
google_scholar: true # Google Scholar badge (https://scholar.google.com/intl/en/scholar/citations.html)
+ inspirehep: true # Inspire HEP badge (https://help.inspirehep.net/knowledge-base/citation-metrics/)
# Filter out certain bibtex entry keywords used internally from the bib output
filtered_bibtex_keywords:
@@ -333,13 +352,16 @@ filtered_bibtex_keywords:
abstract,
additional_info,
altmetric,
+ annotation,
arxiv,
award,
award_name,
bibtex_show,
blog,
code,
+ google_scholar_id,
html,
+ inspirehep_id,
pdf,
poster,
preview,
@@ -405,6 +427,7 @@ lazy_loading_images: true # enables lazy loading of images (recommended)
enable_google_analytics: false # enables google analytics
enable_cronitor_analytics: false # enables cronitor RUM analytics
+enable_pirsch_analytics: false # enables Pirsch analytics (https://pirsch.io/)
enable_google_verification: false # enables google site verification
enable_bing_verification: false # enables bing site verification
enable_masonry: true # enables automatic project cards arrangement
@@ -514,13 +537,13 @@ third_party_libraries:
version: "1.9.4"
mathjax:
integrity:
- js: "sha256-rjmgmaB99riUNcdlrDtcAiwtLIojSxNyUFdl+Qh+rB4="
+ js: "sha256-MASABpB4tYktI2Oitl4t+78w/lyA+D7b/s9GEP0JOGI="
local:
fonts: "output/chtml/fonts/woff-v2/"
url:
fonts: "https://cdn.jsdelivr.net/npm/mathjax@{{version}}/es5/output/chtml/fonts/woff-v2/"
- js: "https://cdn.jsdelivr.net/npm/mathjax@{{version}}/es5/tex-mml-chtml.min.js"
- version: "3.2.0"
+ js: "https://cdn.jsdelivr.net/npm/mathjax@{{version}}/es5/tex-mml-chtml.js"
+ version: "3.2.2"
masonry:
integrity:
js: "sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI="
diff --git a/_data/repositories.yml b/_data/repositories.yml
index 5205c9f6f7e91..c2d7269e7bab2 100644
--- a/_data/repositories.yml
+++ b/_data/repositories.yml
@@ -2,11 +2,13 @@ github_users:
- torvalds
- alshedivat
+repo_description_lines_max: 2
+
github_repos:
- alshedivat/al-folio
- - twbs/bootstrap
- jekyll/jekyll
+ - twbs/bootstrap
- jquery/jquery
- FortAwesome/Font-Awesome
- - jpswalsh/academicons
- mathjax/MathJax
+ - jpswalsh/academicons
diff --git a/_includes/bib_search.liquid b/_includes/bib_search.liquid
new file mode 100644
index 0000000000000..c0ab526c652b8
--- /dev/null
+++ b/_includes/bib_search.liquid
@@ -0,0 +1,4 @@
+{% if site.bib_search %}
+
+
+{% endif %}
diff --git a/_includes/figure.liquid b/_includes/figure.liquid
index 7c108541225d5..a8d54dab5dbd9 100644
--- a/_includes/figure.liquid
+++ b/_includes/figure.liquid
@@ -1,4 +1,6 @@
{% assign img_path = include.path | remove: '.jpg' | remove: '.jpeg' | remove: '.png' | remove: '.tiff' | remove: '.gif' %}
+{% assign parts = include.path | split: '.' %}
+{% assign ext = parts.last %}