master ce140cb30afb cached
268 files
895.1 KB
276.5k tokens
20 symbols
1 requests
Download .txt
Showing preview only (964K chars total). Download the full file or copy to clipboard to get everything.
Repository: academicpages/academicpages.github.io
Branch: master
Commit: ce140cb30afb
Files: 268
Total size: 895.1 KB

Directory structure:
gitextract_4ov5u2bm/

├── .devcontainer/
│   └── devcontainer.json
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   └── workflows/
│       └── scrape_talks.yml
├── .gitignore
├── CONTRIBUTING.md
├── Dockerfile
├── Gemfile
├── LICENSE
├── README.md
├── _config.yml
├── _config_docker.yml
├── _data/
│   ├── authors.yml
│   ├── comments/
│   │   ├── layout-comments/
│   │   │   ├── comment-1470944006665.yml
│   │   │   └── comment-1470944162041.yml
│   │   ├── markup-syntax-highlighting/
│   │   │   └── comment-1470969665387.yml
│   │   └── welcome-to-jekyll/
│   │       ├── comment-1470942205700.yml
│   │       ├── comment-1470942247755.yml
│   │       ├── comment-1470942265819.yml
│   │       └── comment-1470942493518.yml
│   ├── cv.json
│   ├── navigation.yml
│   └── ui-text.yml
├── _drafts/
│   └── post-draft.md
├── _includes/
│   ├── analytics-providers/
│   │   ├── custom.html
│   │   ├── google-analytics-4.html
│   │   ├── google-universal.html
│   │   └── google.html
│   ├── analytics.html
│   ├── archive-single-cv.html
│   ├── archive-single-talk-cv.html
│   ├── archive-single-talk.html
│   ├── archive-single.html
│   ├── author-profile.html
│   ├── base_path
│   ├── breadcrumbs.html
│   ├── browser-upgrade.html
│   ├── category-list.html
│   ├── comment.html
│   ├── comments-providers/
│   │   ├── custom.html
│   │   ├── discourse.html
│   │   ├── disqus.html
│   │   ├── facebook.html
│   │   ├── google-plus.html
│   │   ├── scripts.html
│   │   └── staticman.html
│   ├── comments.html
│   ├── cv-template.html
│   ├── feature_row
│   ├── footer/
│   │   └── custom.html
│   ├── footer.html
│   ├── gallery
│   ├── group-by-array
│   ├── head/
│   │   └── custom.html
│   ├── head.html
│   ├── masthead.html
│   ├── nav_list
│   ├── page__hero.html
│   ├── page__taxonomy.html
│   ├── paginator.html
│   ├── post_pagination.html
│   ├── read-time.html
│   ├── scripts.html
│   ├── seo.html
│   ├── sidebar.html
│   ├── social-share.html
│   ├── tag-list.html
│   └── toc
├── _layouts/
│   ├── archive-taxonomy.html
│   ├── archive.html
│   ├── compress.html
│   ├── cv-layout.html
│   ├── default.html
│   ├── single.html
│   ├── splash.html
│   └── talk.html
├── _pages/
│   ├── 404.md
│   ├── about.md
│   ├── archive-layout-with-content.md
│   ├── category-archive.html
│   ├── collection-archive.html
│   ├── cv-json.md
│   ├── cv.md
│   ├── markdown.md
│   ├── non-menu-page.md
│   ├── page-archive.html
│   ├── portfolio.html
│   ├── publications.html
│   ├── sitemap.md
│   ├── tag-archive.html
│   ├── talkmap.html
│   ├── talks.html
│   ├── teaching.html
│   ├── terms.md
│   └── year-archive.html
├── _portfolio/
│   ├── portfolio-1.md
│   └── portfolio-2.html
├── _posts/
│   ├── 2012-08-14-blog-post-1.md
│   ├── 2013-08-14-blog-post-2.md
│   ├── 2014-08-14-blog-post-3.md
│   ├── 2015-08-14-blog-post-4.md
│   └── 2199-01-01-future-post.md
├── _publications/
│   ├── 2009-10-01-paper-title-number-1.md
│   ├── 2010-10-01-paper-title-number-2.md
│   ├── 2015-10-01-paper-title-number-3.md
│   ├── 2024-02-17-paper-title-number-4.md
│   └── 2025-06-08-paper-title-number-5.md
├── _sass/
│   ├── _syntax.scss
│   ├── _themes.scss
│   ├── include/
│   │   ├── _mixins.scss
│   │   └── _utilities.scss
│   ├── layout/
│   │   ├── _archive.scss
│   │   ├── _base.scss
│   │   ├── _buttons.scss
│   │   ├── _footer.scss
│   │   ├── _forms.scss
│   │   ├── _json_cv.scss
│   │   ├── _masthead.scss
│   │   ├── _navigation.scss
│   │   ├── _notices.scss
│   │   ├── _page.scss
│   │   ├── _reset.scss
│   │   ├── _sidebar.scss
│   │   └── _tables.scss
│   ├── theme/
│   │   ├── _air_dark.scss
│   │   ├── _air_light.scss
│   │   ├── _contrast_dark.scss
│   │   ├── _contrast_light.scss
│   │   ├── _default_dark.scss
│   │   ├── _default_light.scss
│   │   ├── _dirt_dark.scss
│   │   ├── _dirt_light.scss
│   │   ├── _mint_dark.scss
│   │   ├── _mint_light.scss
│   │   ├── _sunrise_dark.scss
│   │   └── _sunrise_light.scss
│   └── vendor/
│       ├── breakpoint/
│       │   ├── _breakpoint.scss
│       │   ├── _context.scss
│       │   ├── _helpers.scss
│       │   ├── _legacy-settings.scss
│       │   ├── _no-query.scss
│       │   ├── _parsers.scss
│       │   ├── _respond-to.scss
│       │   ├── _settings.scss
│       │   └── parsers/
│       │       ├── _double.scss
│       │       ├── _query.scss
│       │       ├── _resolution.scss
│       │       ├── _single.scss
│       │       ├── _triple.scss
│       │       ├── double/
│       │       │   ├── _default-pair.scss
│       │       │   ├── _default.scss
│       │       │   └── _double-string.scss
│       │       ├── resolution/
│       │       │   └── _resolution.scss
│       │       ├── single/
│       │       │   └── _default.scss
│       │       └── triple/
│       │           └── _default.scss
│       ├── font-awesome/
│       │   ├── _animated.scss
│       │   ├── _bordered-pulled.scss
│       │   ├── _core.scss
│       │   ├── _fixed-width.scss
│       │   ├── _functions.scss
│       │   ├── _icons.scss
│       │   ├── _list.scss
│       │   ├── _mixins.scss
│       │   ├── _rotated-flipped.scss
│       │   ├── _screen-reader.scss
│       │   ├── _shims.scss
│       │   ├── _sizing.scss
│       │   ├── _stacked.scss
│       │   ├── _variables.scss
│       │   ├── brands.scss
│       │   ├── fontawesome.scss
│       │   ├── regular.scss
│       │   ├── solid.scss
│       │   └── v4-shims.scss
│       └── susy/
│           ├── _su.scss
│           ├── _susy.scss
│           ├── _susyone.scss
│           └── susy/
│               ├── _su.scss
│               ├── language/
│               │   ├── _susy.scss
│               │   ├── _susyone.scss
│               │   ├── susy/
│               │   │   ├── _background.scss
│               │   │   ├── _bleed.scss
│               │   │   ├── _box-sizing.scss
│               │   │   ├── _breakpoint-plugin.scss
│               │   │   ├── _container.scss
│               │   │   ├── _context.scss
│               │   │   ├── _gallery.scss
│               │   │   ├── _grids.scss
│               │   │   ├── _gutters.scss
│               │   │   ├── _isolate.scss
│               │   │   ├── _margins.scss
│               │   │   ├── _padding.scss
│               │   │   ├── _rows.scss
│               │   │   ├── _settings.scss
│               │   │   ├── _span.scss
│               │   │   └── _validation.scss
│               │   └── susyone/
│               │       ├── _background.scss
│               │       ├── _functions.scss
│               │       ├── _grid.scss
│               │       ├── _isolation.scss
│               │       ├── _margin.scss
│               │       ├── _media.scss
│               │       ├── _padding.scss
│               │       └── _settings.scss
│               ├── output/
│               │   ├── _float.scss
│               │   ├── _shared.scss
│               │   ├── _support.scss
│               │   ├── float/
│               │   │   ├── _container.scss
│               │   │   ├── _end.scss
│               │   │   ├── _isolate.scss
│               │   │   └── _span.scss
│               │   ├── shared/
│               │   │   ├── _background.scss
│               │   │   ├── _container.scss
│               │   │   ├── _direction.scss
│               │   │   ├── _inspect.scss
│               │   │   ├── _margins.scss
│               │   │   ├── _output.scss
│               │   │   └── _padding.scss
│               │   └── support/
│               │       ├── _background.scss
│               │       ├── _box-sizing.scss
│               │       ├── _clearfix.scss
│               │       ├── _prefix.scss
│               │       ├── _rem.scss
│               │       └── _support.scss
│               └── su/
│                   ├── _grid.scss
│                   ├── _settings.scss
│                   ├── _utilities.scss
│                   └── _validation.scss
├── _talks/
│   ├── 2012-03-01-talk-1.md
│   ├── 2013-03-01-tutorial-1.md
│   ├── 2014-02-01-talk-2.md
│   └── 2014-03-01-talk-3.md
├── _teaching/
│   ├── 2014-spring-teaching-1.md
│   └── 2015-spring-teaching-2.md
├── assets/
│   ├── css/
│   │   ├── academicons.css
│   │   ├── collapse.css
│   │   └── main.scss
│   └── js/
│       ├── _main.js
│       ├── collapse.js
│       ├── plugins/
│       │   └── jquery.greedy-navigation.js
│       └── theme.js
├── docker-compose.yaml
├── files/
│   └── bibtex1.bib
├── images/
│   └── manifest.json
├── markdown_generator/
│   ├── OrcidToBib.ipynb
│   ├── PubsFromBib.ipynb
│   ├── README.md
│   ├── publications.csv
│   ├── publications.ipynb
│   ├── publications.py
│   ├── publications.tsv
│   ├── pubsFromBib.py
│   ├── talks.ipynb
│   ├── talks.py
│   └── talks.tsv
├── package.json
├── scripts/
│   ├── cv_markdown_to_json.py
│   └── update_cv_json.sh
├── talkmap/
│   ├── leaflet_dist/
│   │   ├── MarkerCluster.Default.css
│   │   ├── MarkerCluster.css
│   │   ├── leaflet.markercluster-src.js
│   │   ├── leaflet.markercluster.js
│   │   └── screen.css
│   ├── map.html
│   └── org-locations.js
├── talkmap.ipynb
├── talkmap.py
└── talkmap_out.ipynb

================================================
FILE CONTENTS
================================================

================================================
FILE: .devcontainer/devcontainer.json
================================================
{
    "name": "ACADEMIC PAGES",
    "dockerComposeFile": "../docker-compose.yaml",
    "service": "jekyll-site",
    "remoteEnv": {
        "VSCODE_SERVER_DIR": "/home/vscode/.vscode-server"
    },
    "runArgs": [
        "--user",
        "1000:1000"
    ],
    "workspaceFolder": "/usr/src/app",
    "remoteUser": "vscode",
    "forwardPorts": [4000] // Add port forwarding
}


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''

---

**Describe the bug**
A clear and concise description of what the bug is, be sure to note if the issue is presenet in the *template* or appeared on *your site*. If the bug appears on your site, please be sure to provide a link to your repository.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Browser (please complete the following information):**
 - Device: [e.g. iPhone6] (if applicable)
 - OS: [e.g. iOS]
 - Browser [e.g. chrome, safari]
 - Version [e.g. 22]

**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.


================================================
FILE: .github/workflows/scrape_talks.yml
================================================
name: Scrape Talk Locations

on:
  push:
    paths:
      - 'talks/**'
      - '_talks/**'
      - 'talkmap.ipynb'

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: write           # This workflow pushes to the repository

    steps:
    - uses: actions/checkout@v2

    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: '3.9'   # Specify the Python version you need

    - name: Install dependencies
      run: |
        pip install jupyter pandas requests beautifulsoup4 geopy  # Add other dependencies as needed
        pip install getorg --upgrade

    - name: Run Jupyter Notebook
      run: |
        jupyter nbconvert --to notebook --execute talkmap.ipynb --output talkmap_out.ipynb

    - name: Commit changes
      run: |
        git config user.name "github-actions[bot]"
        git config user.email "github-actions[bot]@users.noreply.github.com"
        git add .
        git commit -m "Automated update of talk locations" || echo "No changes to commit"
        git push


================================================
FILE: .gitignore
================================================
# Ignore the contents of the _site directory and other cache directories
_site/
.sass-cache/

# Ignore the directory for local files during development
local/

# Ignore the Gemfile that is generated
Gemfile.lock

# Ignore files created by npm
node_modules
package-lock.json

# Ignore the vendor file at root level and bundle for alternative installation
/vendor/
.bundle/

# Ignore folders related to IDEs
.vscode/

# Ignore files created by MacOS
.DS_Store


================================================
FILE: CONTRIBUTING.md
================================================
Contributions are welcome! 

Please add issues and make pull requests. There are no stupid questions. All ideas are welcome. This is a volunteer project. Be excellent to each other.

Bug reports and feature requests to the template  should be [submitted via GitHub](https://github.com/academicpages/academicpages.github.io/issues/new/choose). For questions concerning how to style the template, please feel free to start a [new discussion on GitHub](https://github.com/academicpages/academicpages.github.io/discussions).

Fork from master and go from there. Remember that this repository is intended to remain a generic, ready-to-fork template that demonstrates the features of academicpages.



================================================
FILE: Dockerfile
================================================
# Base image: Ruby with necessary dependencies for Jekyll
FROM ruby:3.2

# Install dependencies
RUN apt-get update && apt-get install -y \
    build-essential \
    nodejs \
    && rm -rf /var/lib/apt/lists/*


# Create a non-root user with UID 1000
RUN groupadd -g 1000 vscode && \
    useradd -m -u 1000 -g vscode vscode

# Set the working directory
WORKDIR /usr/src/app

# Set permissions for the working directory
RUN chown -R vscode:vscode /usr/src/app

# Switch to the non-root user
USER vscode

# Copy Gemfile into the container (necessary for `bundle install`)
COPY Gemfile ./



# Install bundler and dependencies
RUN gem install connection_pool:2.5.0
RUN gem install bundler:2.3.26
RUN bundle install

# Command to serve the Jekyll site
CMD ["jekyll", "serve", "-H", "0.0.0.0", "-w", "--config", "_config.yml,_config_docker.yml"]


================================================
FILE: Gemfile
================================================
source 'https://rubygems.org'

group :jekyll_plugins do
  gem 'jekyll'
  gem 'jekyll-feed'
  gem 'jekyll-sitemap'
  gem 'jekyll-redirect-from'
  gem 'jemoji'
  gem 'webrick', '~> 1.8'
end

gem 'github-pages'
gem 'connection_pool', '2.5.0'


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2016 Michael Rose

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

================================================
FILE: README.md
================================================
# Academic Pages
**Academic Pages is a GitHub Pages template for personal and professional portfolio-oriented websites.**

![Academic Pages template example](images/themes/homepage-light.png "Academic Pages template example")

# Getting Started

1. Register a GitHub account if you don't have one and confirm your e-mail (required!)
1. Click the "Use this template" button in the top right.
1. On the "New repository" page, enter your public repository name as "[your GitHub username].github.io", which will also be your website's URL.
1. Edit site-wide configuration in `_config.yml` and double check that the `url` is the one that you just selected in the previous step and that `repository` reflects the correct path for your repository.
1. Add your site content, upload any files (like PDFs, .zip files, etc.) to the `files/` directory. They will appear at https://[your GitHub username].github.io/files/example.pdf.
1. Check status by going to the repository settings, in the "GitHub pages" section
1. (Optional) Use the Jupyter notebooks or python scripts in the `markdown_generator` folder to generate markdown files for publications and talks from a TSV file.

See more info at https://academicpages.github.io/

### Additional Tutorials

Additional tutorials for working with the Academic Pages template can be found at the following sites:
- https://jayrobwilliams.com/posts/2020/06/academic-website/

## Running locally

When you are initially working on your website, it is very useful to be able to preview the changes locally before pushing them to GitHub. To work locally you will need to:

1. Clone the repository and made updates as detailed above.

### Using a different IDE
1. Make sure you have ruby-dev, bundler, and nodejs installed
    
    On most Linux distribution and [Windows Subsystem Linux](https://learn.microsoft.com/en-us/windows/wsl/about) the command is:
    ```bash
    sudo apt install ruby-dev ruby-bundler nodejs
    ```
    If you see error `Unable to locate package ruby-bundler`, `Unable to locate package nodejs `, run the following:
    ```bash
    sudo apt update && sudo apt upgrade -y
    ```
    then try run `sudo apt install ruby-dev ruby-bundler nodejs` again.

    On MacOS the commands are:
    ```bash
    brew install ruby
    brew install node
    gem install bundler
    ```
1. Run `bundle install` to install ruby dependencies. If you get errors, delete Gemfile.lock and try again.

    If you see file permission error like `Fetching bundler-2.6.3.gem ERROR:  While executing gem (Gem::FilePermissionError) You don't have write permissions for the /var/lib/gems/3.2.0 directory.` or `Bundler::PermissionError: There was an error while trying to write to /usr/local/bin.`
    Install Gems Locally (Recommended):
    ```bash
    bundle config set --local path 'vendor/bundle'
    ```
    then try run `bundle install` again. If succeeded, you should see a folder called `vendor` and `.bundle`.

1. Run `jekyll serve -l -H localhost` to generate the HTML and serve it from `localhost:4000` the local server will automatically rebuild and refresh the pages on change to Markdown (*.md) and HTML files, while changes to the core template and configuration (i.e., `_config.yml`) will require stopping and restarting Jekyll.
    You may also try `bundle exec jekyll serve -l -H localhost` to ensure jekyll to use specific dependencies on your own local machine.

If you are running on Linux it may be necessary to install some additional dependencies prior to being able to run locally: `sudo apt install build-essential gcc make`

## Using Docker

Working from a different OS, or just want to avoid installing dependencies? You can use the provided `Dockerfile` to build a container that will run the site for you if you have [Docker](https://www.docker.com/) installed.

You can build and execute the container by running the following command in the repository:

```bash
chmod -R 777 .
docker compose up
```

You should now be able to access the website from `localhost:4000`.

### Using the DevContainer in VS Code

If you are using [Visual Studio Code](https://code.visualstudio.com/) you can use the [Dev Container](https://code.visualstudio.com/docs/devcontainers/containers) that comes with this Repository. Normally VS Code detects that a development container configuration is available and asks you if you want to use the container. If this doesn't happen you can manually start the container by **F1->DevContainer: Reopen in Container**. This restarts your VS Code in the container and automatically hosts your academic page locally on http://localhost:4000. All changes will be updated live to that page after a few seconds.

# Maintenance

Bug reports and feature requests to the template should be [submitted via GitHub](https://github.com/academicpages/academicpages.github.io/issues/new/choose). For questions concerning how to style the template, please feel free to start a [new discussion on GitHub](https://github.com/academicpages/academicpages.github.io/discussions).

This repository was forked (then detached) by [Stuart Geiger](https://github.com/staeiou) from the [Minimal Mistakes Jekyll Theme](https://mmistakes.github.io/minimal-mistakes/), which is © 2016 Michael Rose and released under the MIT License (see LICENSE.md). It is currently being maintained by [Robert Zupko](https://github.com/rjzupkoii) and additional maintainers would be welcomed.

## Bugfixes and enhancements

If you have bugfixes and enhancements that you would like to submit as a pull request, you will need to [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) this repository as opposed to using it as a template. This will also allow you to [synchronize your copy](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) of template to your fork as well.

Unfortunately, one logistical issue with a template theme like Academic Pages that makes it a little tricky to get bug fixes and updates to the core theme. If you use this template and customize it, you will probably get merge conflicts if you attempt to synchronize, although [rebasing](https://git-scm.com/docs/git-rebase) the changes from this template will work along with manually [cherry picking](https://git-scm.com/docs/git-cherry-pick) the relevant commits. If you are not comfortable with the Git command line, you can save your various `.yml` configuration files and Markdown files, delete the repository, and fork it again. 

---
<div align="center">
    
![pages-build-deployment](https://github.com/academicpages/academicpages.github.io/actions/workflows/pages/pages-build-deployment/badge.svg)
[![GitHub contributors](https://img.shields.io/github/contributors/academicpages/academicpages.github.io.svg)](https://github.com/academicpages/academicpages.github.io/graphs/contributors)
[![GitHub release](https://img.shields.io/github/v/release/academicpages/academicpages.github.io)](https://github.com/academicpages/academicpages.github.io/releases/latest)
[![GitHub license](https://img.shields.io/github/license/academicpages/academicpages.github.io?color=blue)](https://github.com/academicpages/academicpages.github.io/blob/master/LICENSE)

[![GitHub stars](https://img.shields.io/github/stars/academicpages/academicpages.github.io)](https://github.com/academicpages/academicpages.github.io)
[![GitHub forks](https://img.shields.io/github/forks/academicpages/academicpages.github.io)](https://github.com/academicpages/academicpages.github.io/fork)
</div>


================================================
FILE: _config.yml
================================================
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your entire site, values
# which you are expected to set up once and rarely need to edit after that.
# For technical reasons, this file is *NOT* reloaded automatically when you use
# `jekyll serve -l -H localhost`. If you change this file, please restart the 
# server process.

# Basic Site Settings
locale                   : "en-US"
site_theme               : "default" # The available themes options are "default", "air", "sunrise", "mint", "dirt" and "contrast"
title                    : "Your Name / Site Title"
title_separator          : "-"
name                     : &name "Your Name"
description              : &description "Your Name's academic portfolio"   # Update this with a general description of your site, this is the default if not overridden by a page
url                      : https://academicpages.github.io # The base hostname & protocol for your site e.g. "https://[your GitHub username].github.io",
                                                           # or if you already have some other page hosted on Github then use "https://[your GitHub username].github.io/[Your Repo Name]"
baseurl                  : "" # the subpath of your site, e.g. "/blog"
repository               : "academicpages/academicpages.github.io"

# Site Author - The following control what appear as part of the author content on the side bar.
#               If a field is blank the icon and link will not appear, otherwise it will be shown.
#               Additional customization can be done by editing /_includes/author-profile.html
author:
  # Biographic information
  avatar           : "profile.png"
  name             : "Your Sidebar Name"
  pronouns         : # example: "she/her"  
  bio              : "Short biography for the left-hand sidebar"
  location         : "Earth"
  employer         : "Red Brick University"
  uri              : # URL
  email            : "none@example.org" 

  # Academic websites
  academia         : # URL
  arxiv            : # URL - Update with the correct link to your profile
  googlescholar    : "https://scholar.google.com/citations?user=PS_CX0AAAAAJ"
  inspire-hep      : # URL
  impactstory      : # URL
  orcid            : "https://orcid.org/yourorcidurl"
  semantic         : # URL
  ssrn             : # URL
  pubmed           : "https://www.ncbi.nlm.nih.gov/pubmed/?term=john+snow"
  researchgate     : # URL
  scopus           : # URL
  zotero           : # URL


  # Repositories and software development
  bitbucket        : # Username - Update with your username on the site
  codepen          : # Username
  dribbble         : # Username
  github           : "academicpages"
  kaggle           : # Username  
  stackoverflow    : # User number or user number and name (i.e., use "1" or "1/jeff-atwood")    

  # Social media
  artstation       : # Username
  bluesky          : "bsky.app" # Replace this with you Bluesky username
  facebook         : # Username
  flickr           : # Username
  foursquare       : # Username
  goodreads        : # Username
  google_plus      : # Username
  keybase          : # Username
  instagram        : # Username
  lastfm           : # Username
  linkedin         : # Username
  mastodon         : # URL
  medium           : # URL
  pinterest        : # Username
  soundcloud       : # Username
  steam            : # Username
  telegram         : # URL
  tumblr           : # Username
  twitter          : # Username for X / Twitter
  vine             : # Username
  weibo            : # Username
  wikipedia        : # Username
  xing             : # Username
  youtube          : # Username
  zhihu            : # Username

# Publication Category - The following the list of publication categories and their headings
publication_category:
  books:
    title: 'Books'
  manuscripts:
    title: 'Journal Articles'    
  conferences:
    title: 'Conference Papers'

# Site Settings
teaser                   :  # filename of teaser fallback teaser image placed in /images/ for social media previews
breadcrumbs              : false # true, false (default)
words_per_minute         : 160
future                   : true
read_more                : "disabled" # if enabled, adds "Read more" links to excerpts
talkmap_link             : false      #change to true to add link to talkmap on talks page
comments:
  provider               : # false (default), "disqus", "discourse", "facebook", "google-plus", "staticman", "custom"
  disqus:
    shortname            :
  discourse:
    server               : # https://meta.discourse.org/t/embedding-discourse-comments-via-javascript/31963 , e.g.: meta.discourse.org
  facebook:
    appid                :
    num_posts            : # 5 (default)
    colorscheme          : # "light" (default), "dark"
staticman:
  allowedFields          : ['name', 'email', 'url', 'message']
  branch                 : "gh-pages" # "master", "gh-pages"
  commitMessage          : "New comment."
  filename               : comment-{@timestamp}
  format                 : "yml"
  moderation             : true
  path                   : "_data/comments/{options.slug}"
  requiredFields         : ['name', 'email', 'message']
  transforms:
    email                : "md5"
  generatedFields:
    date:
      type               : "date"
      options:
        format           : "iso8601" # "iso8601" (default), "timestamp-seconds", "timestamp-milliseconds"
atom_feed:
  hide                   : false     # change to true to hide the RSS feed in the footer
  path                   : # blank (default) uses feed.xml


# SEO Related
google_site_verification :
bing_site_verification   :
alexa_site_verification  :
yandex_site_verification :


# Social Sharing
twitter:
  username               : &twitter
facebook:
  username               :
  app_id                 :
  publisher              :
og_image                 :  # Social media default site image
og_description           :  # Social media default site image description
# For specifying social profiles
# - https://developers.google.com/structured-data/customize/social-profiles
social:
  type                   : # Person or Organization (defaults to Person)
  name                   : # If the user or organization name differs from the site's name
  links: # An array of links to social media profiles


# Analytics
analytics:
  provider               :  "false" # false (default), "google", "google-universal", "google-analytics-4", "custom"
  google:
    tracking_id          :


# Reading Files
include:
  - .htaccess
  - _pages
  - files
exclude:
  - "*.sublime-project"
  - "*.sublime-workspace"
  - .asset-cache
  - .bundle
  - .github
  - .jekyll-assets-cache
  - .sass-cache
  - assets/js/_main.js
  - assets/js/plugins
  - assets/js/vendor
  - CHANGELOG
  - Capfile
  - config
  - Dockerfile
  - Gemfile
  - Gruntfile.js
  - gulpfile.js
  - LICENSE
  - local
  - log
  - node_modules
  - package.json*
  - Rakefile
  - README
  - tmp
  - vendor
keep_files:
  - .git
  - .svn
encoding: "utf-8"
markdown_ext: "markdown,mkdown,mkdn,mkd,md"


# Conversion
markdown: kramdown
highlighter: rouge
lsi: false
excerpt_separator: "\n\n"
incremental: false


# Markdown Processing
kramdown:
  input: GFM
  hard_wrap: false
  auto_ids: true
  footnote_nr: 1
  entity_output: as_char
  toc_levels: 1..6
  smart_quotes: lsquo,rsquo,ldquo,rdquo
  enable_coderay: false


# These settings control the types of collections used by the template
collections:
  teaching:
    output: true
    permalink: /:collection/:path/
  publications:
    output: true
    permalink: /:collection/:path/
  portfolio:
    output: true
    permalink: /:collection/:path/
  talks:
    output: true
    permalink: /:collection/:path/


# These settings control how pages and collections are included in the site
defaults:
  # _posts
  - scope:
      path: ""
      type: posts
    values:
      layout: single
      author_profile: true
      read_time: true
      comments: true
      share: true
      related: true
  # _pages
  - scope:
      path: ""
      type: pages
    values:
      layout: single
      author_profile: true
  # _teaching
  - scope:
      path: ""
      type: teaching
    values:
      layout: single
      author_profile: true
      share: true
      comments: true
  # _publications
  - scope:
      path: ""
      type: publications
    values:
      layout: single
      author_profile: true
      share: true
      comments: true
  # _portfolio
  - scope:
      path: ""
      type: portfolio
    values:
      layout: single
      author_profile: true
      share: true
      comment: true
  # _talks
  - scope:
      path: ""
      type: talks
    values:
      layout: talk
      author_profile: true
      share: true


# Sass/SCSS
sass:
  sass_dir: _sass
  style: compressed # https://sass-lang.com/documentation/file.SASS_REFERENCE.html#output_style


# Outputting
permalink: /:categories/:title/
# paginate: 5 # amount of posts to show
# paginate_path: /page:num/
timezone: Etc/UTC # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones


# Plugins
plugins:
  - jekyll-feed
  - jekyll-gist
  - jekyll-paginate
  - jekyll-sitemap
  - jekyll-redirect-from
  - jemoji

# Mimic GitHub Pages with --safe
whitelist:
  - jekyll-feed
  - jekyll-gist
  - jekyll-paginate
  - jekyll-sitemap
  - jekyll-redirect-from
  - jemoji


# Archives
#  Type
#  - GitHub Pages compatible archive pages built with Liquid ~> type: liquid (default)
#  - Jekyll Archives plugin archive pages ~> type: jekyll-archives
#  Path (examples)
#  - Archive page should exist at path when using Liquid method or you can
#    expect broken links (especially with breadcrumbs enabled)
#  - <base_path>/tags/my-awesome-tag/index.html ~> path: /tags/
#  - <base_path/categories/my-awesome-category/index.html ~> path: /categories/
#  - <base_path/my-awesome-category/index.html ~> path: /
category_archive:
  type: liquid
  path: /categories/
tag_archive:
  type: liquid
  path: /tags/
# https://github.com/jekyll/jekyll-archives
# jekyll-archives:
#   enabled:
#     - categories
#     - tags
#   layouts:
#     category: archive-taxonomy
#     tag: archive-taxonomy
#   permalinks:
#     category: /categories/:name/
#     tag: /tags/:name/


# HTML Compression
# - https://jch.penibelst.de/
compress_html:
  clippings: all
  ignore:
    envs: development


================================================
FILE: _config_docker.yml
================================================
url: ""

================================================
FILE: _data/authors.yml
================================================
# Authors

Name Name:
  name        : "Name Name"
  uri         : "https://name.com"
  email       : "name@name.com"
  bio         : "This is the first name."
  avatar      : "bio-photo-2.jpg"
  twitter     : "name"
  google_plus : "Name"

Name2 Name2:
  name        : "Name2 Name2"
  email       : "name2@name2.com"
  bio         : "I ordered what?"
  avatar      : "bio-photo.jpg"
  twitter     : "name2"
  google_plus : "Name"


================================================
FILE: _data/comments/layout-comments/comment-1470944006665.yml
================================================
message: "![Bill Murray](http://www.fillmurray.com/400/300)\r\n\r\n“It's hard to be an artist. It's hard to be anything. It's hard to be.”"
name: Bill Murray
email: b0caa2a71f5066b3d90711c224578c21
url: ''
hidden: ''
date: '2016-08-11T19:33:25.928Z'


================================================
FILE: _data/comments/layout-comments/comment-1470944162041.yml
================================================
message: "> “I never had seen Seinfeld, and they said, ‘Oh, it’s the last episode.’ And I said, ‘Oh, I’ll watch Seinfeld.’ And it was terrible.”\r\n>\r\n> *— From a 2014 interview with Howard Stern*"
name: Anonymous
email: 8c7e898f1b570760f834ecc03edf6b35
url: ''
hidden: ''
date: '2016-08-11T19:36:01.033Z'


================================================
FILE: _data/comments/markup-syntax-highlighting/comment-1470969665387.yml
================================================
message: "Here's a test comment with a Markdown code block:\r\n\r\n```scss\r\nh1, h2, h3, h4, h5, h6 {\r\n  margin: 2em 0 0.5em;\r\n  line-height: 1.2;\r\n  font-family: $header-font-family;\r\n  font-weight: bold;\r\n}\r\n```"
name: Michael Rose
email: 1ce71bc10b86565464b612093d89707e
url: 'https://mademistakes.com'
hidden: ''
date: '2016-08-12T02:41:04.706Z'


================================================
FILE: _data/comments/welcome-to-jekyll/comment-1470942205700.yml
================================================
message: "This is a test comment with some **Markdown** sprinkled about for *testing purposes*.\r\n\r\n### Subheading in a comment? Madness!\r\n\r\nNam et risus nec ipsum efficitur facilisis. Aenean tincidunt dapibus odio, eget rutrum urna lacinia non. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas."
name: Michael Rose
email: 1ce71bc10b86565464b612093d89707e
url: 'https://mademistakes.com'
hidden: ''
date: '2016-08-11T19:03:24.929Z'


================================================
FILE: _data/comments/welcome-to-jekyll/comment-1470942247755.yml
================================================
message: '"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"'
name: Jackalope
email: cba827e665ae179e1d1ae007a6c3c1ab
url: ''
hidden: ''
date: '2016-08-11T19:04:06.958Z'


================================================
FILE: _data/comments/welcome-to-jekyll/comment-1470942265819.yml
================================================
message: '"How much wood would a woodchuck chuck if a woodchuck could chuck wood?"'
name: Jackalope Duplicate
email: cba827e665ae179e1d1ae007a6c3c1ab
url: ''
hidden: ''
date: '2016-08-11T19:04:25.085Z'


================================================
FILE: _data/comments/welcome-to-jekyll/comment-1470942493518.yml
================================================
message: "Images can be added to a comment using Markdown like this\r\n\r\n```\r\n![Bill Murray](http://www.fillmurray.com/600/400)\r\n```\r\n![Bill Murray](http://www.fillmurray.com/600/400)"
name: Michael Rose
email: 1ce71bc10b86565464b612093d89707e
url: 'https://mademistakes.com'
hidden: ''
date: '2016-08-11T19:08:12.789Z'


================================================
FILE: _data/cv.json
================================================
{
  "basics": {
    "name": "Your Sidebar Name",
    "email": "none@example.org",
    "phone": "",
    "website": "https://academicpages.github.io",
    "summary": "Currently employed at Red Brick University. Short biography for the left-hand sidebar",
    "location": {
      "address": "",
      "postalCode": "",
      "city": "Earth",
      "countryCode": "US",
      "region": ""
    },
    "profiles": [
      {
        "network": "Google Scholar",
        "username": "",
        "url": "https://scholar.google.com/citations?user=PS_CX0AAAAAJ"
      },
      {
        "network": "ORCID",
        "username": "",
        "url": "https://orcid.org/yourorcidurl"
      },
      {
        "network": "GitHub",
        "username": "academicpages",
        "url": "https://github.com/academicpages"
      }
    ]
  },
  "work": [],
  "education": [
    {
      "institution": "GitHub University",
      "area": "Ph.D in Version Control Theory",
      "studyType": "",
      "startDate": "",
      "endDate": "2018",
      "gpa": null,
      "courses": []
    },
    {
      "institution": "GitHub University",
      "area": "M.S. in Jekyll",
      "studyType": "",
      "startDate": "",
      "endDate": "2014",
      "gpa": null,
      "courses": []
    },
    {
      "institution": "GitHub University",
      "area": "B.S. in GitHub",
      "studyType": "",
      "startDate": "",
      "endDate": "2012",
      "gpa": null,
      "courses": []
    }
  ],
  "skills": [],
  "languages": [],
  "interests": [],
  "references": [],
  "publications": [
    {
      "name": "Paper Title Number 1",
      "publisher": "Journal 1",
      "releaseDate": "2009-10-01",
      "website": "https://academicpages.github.io/files/paper1.pdf",
      "summary": "This paper is about the number 1. The number 2 is left for future work."
    },
    {
      "name": "Paper Title Number 2",
      "publisher": "Journal 1",
      "releaseDate": "2010-10-01",
      "website": "https://academicpages.github.io/files/paper2.pdf",
      "summary": "This paper is about the number 2. The number 3 is left for future work."
    },
    {
      "name": "Paper Title Number 3",
      "publisher": "Journal 1",
      "releaseDate": "2015-10-01",
      "website": "https://academicpages.github.io/files/paper3.pdf",
      "summary": "This paper is about the number 3. The number 4 is left for future work."
    },
    {
      "name": "Paper Title Number 4",
      "publisher": "GitHub Journal of Bugs",
      "releaseDate": "2024-02-17",
      "website": "https://academicpages.github.io/files/paper3.pdf",
      "summary": "This paper is about fixing template issue #693."
    }
  ],
  "presentations": [
    {
      "name": "Talk 1 on Relevant Topic in Your Field",
      "event": "UC San Francisco, Department of Testing",
      "date": "2012-03-01",
      "location": "San Francisco, CA, USA",
      "description": ""
    },
    {
      "name": "Tutorial 1 on Relevant Topic in Your Field",
      "event": "UC-Berkeley Institute for Testing Science",
      "date": "2013-03-01",
      "location": "Berkeley, CA, USA",
      "description": ""
    },
    {
      "name": "Talk 2 on Relevant Topic in Your Field",
      "event": "London School of Testing",
      "date": "2014-02-01",
      "location": "London, UK",
      "description": ""
    },
    {
      "name": "Conference Proceeding talk 3 on Relevant Topic in Your Field",
      "event": "Testing Institute of America 2014 Annual Conference",
      "date": "2014-03-01",
      "location": "Los Angeles, CA, USA",
      "description": ""
    }
  ],
  "teaching": [
    {
      "course": "Teaching experience 1",
      "institution": "University 1, Department",
      "date": "2014-01-01",
      "role": "Undergraduate course",
      "description": ""
    },
    {
      "course": "Teaching experience 2",
      "institution": "University 1, Department",
      "date": "2015-01-01",
      "role": "Workshop",
      "description": ""
    }
  ],
  "portfolio": [
    {
      "name": "Portfolio item number 1",
      "category": "portfolio",
      "date": "",
      "url": "",
      "description": "Short description of portfolio item number 1<br/><img src='/images/500x300.png'>"
    }
  ]
}


================================================
FILE: _data/navigation.yml
================================================
# The following is the order of the links in the header of the website.
#
# Changing the order here will adjust the order and you can also add additional
# links. Removing a link prevents it from showing in the header, but does not
# prevent it from being included in the site.
#
# NOTE that only one of the CV options should be selected, the first is for the
#      Markdown formatted page while the second is generated using JSON.

main:
  - title: "Publications"
    url: /publications/

  - title: "Talks"
    url: /talks/    

  - title: "Teaching"
    url: /teaching/    
    
  - title: "Portfolio"
    url: /portfolio/
        
  - title: "Blog Posts"
    url: /year-archive/
    
  - title: "CV"
    url: /cv/
    
  # - title: "CV"
  #   url: /cv-json/
    
  - title: "Guide"
    url: /markdown/


================================================
FILE: _data/ui-text.yml
================================================
# User interface text and labels

# English (default)
# -----------------
en: &DEFAULT_EN
  page                       : "Page"
  pagination_previous        : "Previous"
  pagination_next            : "Next"
  breadcrumb_home_label      : "Home"
  breadcrumb_separator       : "/"
  toc_label                  : "On This Page"
  ext_link_label             : "Direct Link"
  less_than                  : "less than"
  minute_read                : "minute read"
  share_on_label             : "Share on"
  meta_label                 :
  tags_label                 : "Tags:"
  categories_label           : "Categories:"
  date_label                 : "Published:"
  comments_label             : "Leave a Comment"
  comments_title             : "Comments"
  more_label                 : "Learn More"
  related_label              : "You May Also Enjoy"
  follow_label               : "Follow:"
  feed_label                 : "Feed"
  powered_by                 : "Powered by"
  website_label              : "Website"
  email_label                : "Email"
  recent_posts               : "Recent Posts"
  undefined_wpm              : "Undefined parameter words_per_minute at _config.yml"
  comment_form_info          : "Your email address will not be published. Required fields are marked"
  comment_form_comment_label : "Comment"
  comment_form_md_info       : "Markdown is supported."
  comment_form_name_label    : "Name"
  comment_form_email_label   : "Email address"
  comment_form_website_label : "Website (optional)"
  comment_btn_submit         : "Submit Comment"
  comment_btn_submitted      : "Submitted"
  comment_success_msg        : "Thanks for your comment! It will show on the site once it has been approved."
  comment_error_msg          : "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again."
  loading_label              : "Loading..."
en-US:
  <<: *DEFAULT_EN
en-CA:
  <<: *DEFAULT_EN
en-GB:
  <<: *DEFAULT_EN
en-AU:
  <<: *DEFAULT_EN

# Spanish
# --------------
es: &DEFAULT_ES
  page                       : "Página"
  pagination_previous        : "Anterior"
  pagination_next            : "Siguiente"
  breadcrumb_home_label      : "Inicio"
  breadcrumb_separator       : "/"
  toc_label                  : "Contenidos"
  ext_link_label             : "Enlace"
  less_than                  : "menos de"
  minute_read                : "minuto de lectura"
  share_on_label             : "Compartir"
  meta_label                 :
  tags_label                 : "Etiquetas:"
  categories_label           : "Categorías:"
  date_label                 : "Actualizado:"
  comments_label             : "Comentar"
  comments_title             : "Deja un comentario"
  more_label                 : "Ver más"
  related_label              : "Quizás te interese"
  follow_label               : "Seguir:"
  feed_label                 : "Feed"
  powered_by                 : "Creado por"
  website_label              : "Sitio web"
  email_label                : "Correo"
  recent_posts               : "Entradas recientes"
  undefined_wpm              : "Parámetro words_per_minute (palabras por minuto) no definido en _config.yml"
  comment_form_info          : "No se publicará tu correo electrónico. Véanse marcados los campos obligatorios"
  comment_form_comment_label : "Comentario"
  comment_form_md_info       : "Markdown es compatible"
  comment_form_name_label    : "Nombre"
  comment_form_email_label   : "Correo electrónico"
  comment_form_website_label : "Página web (opcional)"
  comment_btn_submit         : "Enviar comentario"
  comment_btn_submitted      : "Enviado"
  comment_success_msg        : "¡Gracias por tu comentario! Aparecerá en la página cuando sea aprobado." 
  comment_error_msg          : "Lo sentimos, ha habido un error con tu solicitud. Por favor, asegúrate de rellenar todos los campos obligatorios e inténtalo de nuevo."
  loading_label              : "Cargando..."
es-ES:
  <<: *DEFAULT_ES
es-CO:
  <<: *DEFAULT_ES

# French
# -----------------
fr: &DEFAULT_FR
  page                       : "Page"
  pagination_previous        : "Précédent"
  pagination_next            : "Suivant"
  breadcrumb_home_label      : "Accueil"
  breadcrumb_separator       : "/"
  toc_label                  : "Sur cette page"
  ext_link_label             : "Lien direct"
  less_than                  : "plus petit que"
  minute_read                : "minute de lecture"
  share_on_label             : "Partager sur"
  meta_label                 :
  tags_label                 : "Tags :"
  categories_label           : "Catégories :"
  date_label                 : "Mis à jour :"
  comments_label             : "Laisser un commentaire"
  comments_title             :
  more_label                 : "Lire plus"
  related_label              : "Vous pourriez aimer"
  follow_label               : "Suivez moi"
  feed_label                 : "Flux"
  powered_by                 : "Propulsé par"
  website_label              : "Site"
  email_label                : "Email"
  recent_posts               : "Posts récents"
  undefined_wpm              : "Le paramètre words_per_minute n'est pas défini dans _config.yml"
  comment_form_info          :
  comment_form_comment_label :
  comment_form_md_info       :
  comment_form_name_label    :
  comment_form_email_label   :
  comment_form_website_label :
  comment_btn_submit         :
  comment_btn_submitted      :
  comment_success_msg        :
  comment_error_msg          :
  loading_label              :
fr-FR:
  <<: *DEFAULT_FR
fr-BE:
  <<: *DEFAULT_FR
fr-CH:
  <<: *DEFAULT_FR

# Turkish
# -----------------
tr: &DEFAULT_TR
  page                       : "Sayfa"
  pagination_previous        : "Önceki"
  pagination_next            : "Sonraki"
  breadcrumb_home_label      : "Ana Sayfa"
  breadcrumb_separator       : "/"
  toc_label                  : "İçindekiler"
  ext_link_label             : "Doğrudan Bağlantı"
  less_than                  : "Şu süreden az: "
  minute_read                : "dakika tahmini okuma süresi"
  share_on_label             : "Paylaş"
  meta_label                 :
  tags_label                 : "Etiketler:"
  categories_label           : "Kategoriler:"
  date_label                 : "Güncelleme tarihi:"
  comments_label             : "Yorum yapın"
  comments_title             :
  more_label                 : "Daha fazlasını öğrenin"
  related_label              : "Bunlar ilginizi çekebilir:"
  follow_label               : "Takip et:"
  feed_label                 : "RSS"
  powered_by                 : "Emeği geçenler: "
  website_label              : "Web sayfası"
  email_label                : "E-posta"
  recent_posts               : "Son yazılar"
  undefined_wpm              : "_config.yml dosyasında tanımlanmamış words_per_minute parametresi"
  comment_form_info          :
  comment_form_comment_label :
  comment_form_md_info       :
  comment_form_name_label    :
  comment_form_email_label   :
  comment_form_website_label :
  comment_btn_submit         :
  comment_btn_submitted      :
  comment_success_msg        :
  comment_error_msg          :
  loading_label              :
tr-TR:
  <<: *DEFAULT_TR

# Brazilian Portguese
# -----------------
pt: &DEFAULT_PT
  page                       : "Página"
  pagination_previous        : "Anterior"
  pagination_next            : "Próxima"
  breadcrumb_home_label      : "Início"
  breadcrumb_separator       : "/"
  toc_label                  : "Nesta página"
  ext_link_label             : "Link direto"
  less_than                  : "menor que"
  minute_read                : "minutos de leitura"
  share_on_label             : "Compartilhe em"
  meta_label                 :
  tags_label                 : "Tags:"
  categories_label           : "Categorias:"
  date_label                 : "Atualizado em:"
  comments_label             : "Deixe um comentário"
  comments_title             :
  more_label                 : "Aprenda Mais"
  related_label              : "Talvez Você Goste Também"
  follow_label               : "Acompanhe em"
  feed_label                 : "Feed"
  powered_by                 : "Feito por"
  website_label              : "Site"
  email_label                : "E-mail"
  recent_posts               : "Postagens recentes"
  undefined_wpm              : "Parâmetro indefinido em word_per_minute no _config.yml"
  comment_form_info          : "Seu endereço de e-mail não será publicado. Campos obrigatórios são marcados"
  comment_form_comment_label : "Comentário"
  comment_form_md_info       : "Markdown é suportado"
  comment_form_name_label    : "Nome"
  comment_form_email_label   : "Endereço de e-mail'"
  comment_form_website_label : "Website (opcional)"
  comment_btn_submit         : "Enviar Comentário"
  comment_btn_submitted      : "Enviado"
  comment_success_msg        : "Obrigado por seu comentário! Ele será exibido no site depois de aprovado."
  comment_error_msg          : "Desculpe, houve um erro com o seu envio. Certifique-se de que todos os campos obrigatórios foram preenchidos e tente novamente."
  loading_label              : "Carregando..."
pt-BR:
  <<: *DEFAULT_PT
pt-PT:
  <<: *DEFAULT_PT

# Italian
# -----------------
it: &DEFAULT_IT
  page                       : "Pagina"
  pagination_previous        : "Precedente"
  pagination_next            : "Prossima"
  breadcrumb_home_label      : "Home"
  breadcrumb_separator       : "/"
  toc_label                  : "Indice della pagina"
  ext_link_label             : "Link"
  less_than                  : "meno di"
  minute_read                : "minuto/i di lettura"
  share_on_label             : "Condividi"
  meta_label                 :
  tags_label                 : "Tags:"
  categories_label           : "Categorie:"
  date_label                 : "Aggiornato:"
  comments_label             : "Scrivi un commento"
  comments_title             :
  more_label                 : "Scopri di più"
  related_label              : "Potrebbe Piacerti Anche"
  follow_label               : "Segui:"
  feed_label                 : "Feed"
  powered_by                 : "Powered by"
  website_label              : "Website"
  email_label                : "Email"
  recent_posts               : "Articoli Recenti"
  undefined_wpm              : "Parametro words_per_minute non definito in _config.yml"
  comment_form_info          :
  comment_form_comment_label :
  comment_form_md_info       :
  comment_form_name_label    :
  comment_form_email_label   :
  comment_form_website_label :
  comment_btn_submit         :
  comment_btn_submitted      :
  comment_success_msg        :
  comment_error_msg          :
  loading_label              :
it-IT:
  <<: *DEFAULT_IT

# Chinese (simplified)
# -----------------
zh: &DEFAULT_ZH
  page                       : "页面"
  pagination_previous        : "上一页"
  pagination_next            : "下一页"
  breadcrumb_home_label      : "主页"
  breadcrumb_separator       : "/"
  toc_label                  : "本页内容"
  ext_link_label             : "直接链接"
  less_than                  : "少于"
  minute_read                : "分钟阅读时长"
  share_on_label             : "分享到"
  meta_label                 :
  tags_label                 : "标签:"
  categories_label           : "分类:"
  date_label                 : "发布时间:"
  comments_label             : "发表评论"
  comments_title             : "评论"
  more_label                 : "了解更多"
  related_label              : "你可能感兴趣的"
  follow_label               : "关注:"
  feed_label                 : "打赏"
  powered_by                 : "技术支持:"
  website_label              : "网站"
  email_label                : "电子邮件"
  recent_posts               : "最新文章"
  undefined_wpm              : "_config.yml中未定义words_per_minute参数"
  comment_form_info          : "您的电子邮件地址不会被公开。(必填项已标注)"
  comment_form_comment_label : "评论"
  comment_form_md_info       : "支持Markdown格式"
  comment_form_name_label    : "姓名"
  comment_form_email_label   : "电子邮件地址"
  comment_form_website_label : "网站(可选)"
  comment_btn_submit         : "提交评论"
  comment_btn_submitted      : "已提交"
  comment_success_msg        : "感谢您的评论!审核通过后会显示在网站上。"
  comment_error_msg          : "抱歉,提交时出错。请确保所有必填项已完成,并重试。"
  loading_label              : "加载中..."
zh-CN:
  <<: *DEFAULT_ZH

# Chinese (traditional)
# -----------------
zh-HK: &DEFAULT_ZH_HK
  page                       : "頁面"
  pagination_previous        : "上一頁"
  pagination_next            : "下一頁"
  breadcrumb_home_label      : "主頁"
  breadcrumb_separator       : "/"
  toc_label                  : "本頁內容"
  ext_link_label             : "直接連結"
  less_than                  : "少於"
  minute_read                : "分鐘閱讀時長"
  share_on_label             : "分享到"
  meta_label                 :
  tags_label                 : "標籤:"
  categories_label           : "分類:"
  date_label                 : "發布時間:"
  comments_label             : "發表評論"
  comments_title             : "評論"
  more_label                 : "了解更多"
  related_label              : "你可能感興趣的"
  follow_label               : "關注:"
  feed_label                 : "打賞"
  powered_by                 : "技術支持:"
  website_label              : "網站"
  email_label                : "電子郵件"
  recent_posts               : "最新文章"
  undefined_wpm              : "_config.yml中未定義words_per_minute參數"
  comment_form_info          : "您的電子郵件地址不會被公開。(必填項已標註)"
  comment_form_comment_label : "評論"
  comment_form_md_info       : "支持Markdown格式"
  comment_form_name_label    : "姓名"
  comment_form_email_label   : "電子郵件地址"
  comment_form_website_label : "網站(可選)"
  comment_btn_submit         : "提交評論"
  comment_btn_submitted      : "已提交"
  comment_success_msg        : "感謝您的評論!審核通過後會顯示在網站上。"
  comment_error_msg          : "抱歉,提交時出錯。請確保所有必填項已完成,並重試。"
  loading_label              : "加載中..."
zh-TW:
  <<: *DEFAULT_ZH_HK

# Another locale
# --------------


================================================
FILE: _drafts/post-draft.md
================================================
---
layout: single
title:  "Draft Post"
header:
  teaser: "unsplash-gallery-image-2-th.jpg"
categories: 
  - Jekyll
tags:
  - edge case
---
Monocle ipsum dolor sit amet handsome pariatur aliqua, hub remarkable irure commodo classic deserunt bespoke. Sunt commodo signature, Swiss minim flat white Tsutaya excepteur artisanal et Nordic laborum joy ANA. Beams mollit exquisite Ginza efficient dolore qui Comme des Garçons Winkreative Lufthansa bulletin global. Iconic sed liveable duis. Mollit dolore eu laboris Comme des Garçons hub pintxos sed eiusmod tote bag Shinkansen nisi consectetur pariatur. Nordic international quis finest Baggu dolore, bureaux hub hand-crafted ut joy sint Airbus A380.

Conversation handsome hub cosy, enim emerging sed K-pop velit Gaggenau charming proident et boulevard ryokan. Remarkable airport deserunt international est, nulla minim magna emerging discerning in exclusive dolor. Commodo dolore deserunt cosy, global Nordic culpa uniforms signature charming. Smart ryokan commodo, eiusmod global occaecat incididunt aliqua Beams. Boulevard conversation excepteur finest Swiss non veniam Comme des Garçons essential artisanal. Destination Scandinavian international, anim Boeing 787 in duis Baggu irure essential.

Fugiat exclusive laborum, Gaggenau ad Winkreative sharp elit labore. Remarkable officia ryokan Boeing 787, consectetur boutique Nordic Singapore espresso elit iconic perfect izakaya soft power excepteur. Ut veniam carefully curated K-pop dolore, uniforms in voluptate. Craftsmanship Ettinger Lufthansa sophisticated esse boutique veniam exquisite. Aute cillum bespoke, intricate consectetur in exquisite international lovely bulletin irure Washlet Gaggenau deserunt. Efficient eu quality of life wardrobe labore, dolor emerging airport concierge reprehenderit izakaya dolore liveable Baggu.

Commodo elegant essential consectetur Gaggenau culpa consequat id sophisticated St Moritz sunt conversation duis non velit. Nulla business class non ut Marylebone ANA soft power fugiat carefully curated. Bureaux sed punctual handsome Washlet impeccable hand-crafted aute extraordinary tote bag enim boulevard soft power sleepy. Dolore conversation irure Zürich the best adipisicing, vibrant finest hub anim premium aliqua. Cupidatat smart international, bureaux Baggu id efficient punctual. Tempor nulla flat white enim, K-pop incididunt elit efficient Toto uniforms concierge discerning. Concierge sleepy extraordinary, deserunt Melbourne commodo Nordic Winkreative Washlet Ginza exercitation espresso.

Tsutaya sed in business class sharp. Do Beams in adipisicing Lufthansa. Business class occaecat Melbourne, irure Singapore commodo espresso carefully curated quis quality of life adipisicing. Impeccable laborum efficient classic proident in. Beams Helsinki ullamco Marylebone dolore sophisticated concierge Muji anim duis joy ut. Comme des Garçons aute Muji in aliquip ryokan soft power Nordic essential ANA culpa elegant.

================================================
FILE: _includes/analytics-providers/custom.html
================================================
<!-- start custom analytics snippet -->

<!-- end custom analytics snippet -->

================================================
FILE: _includes/analytics-providers/google-analytics-4.html
================================================
<script async src="https://www.googletagmanager.com/gtag/js?id={{site.analytics.google.tracking_id}}"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', '{{site.analytics.google.tracking_id}}');
</script>


================================================
FILE: _includes/analytics-providers/google-universal.html
================================================
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', '{{ site.analytics.google.tracking_id }}', 'auto');
  ga('send', 'pageview');
</script>

================================================
FILE: _includes/analytics-providers/google.html
================================================
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', '{{ site.analytics.google.tracking_id }}']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

================================================
FILE: _includes/analytics.html
================================================
{% if site.analytics.provider and page.analytics != false %}

{% case site.analytics.provider %}
{% when "google" %}
  {% include /analytics-providers/google.html %}
{% when "google-universal" %}
  {% include /analytics-providers/google-universal.html %}
{% when "google-analytics-4" %}
  {% include /analytics-providers/google-analytics-4.html %}
{% when "custom" %}
  {% include /analytics-providers/custom.html %}
{% endcase %}

{% endif %}

================================================
FILE: _includes/archive-single-cv.html
================================================
{% include base_path %}

{% if post.header.teaser %}
  {% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
  {% assign teaser = site.teaser %}
{% endif %}

{% if post.id %}
  {% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
  {% assign title = post.title %}
{% endif %}

<div class="{{ include.type | default: "list" }}__item">
  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
    <li>
    {% if include.type == "grid" and teaser %}
      <div class="archive__item-teaser">
        <img src=
          {% if teaser contains "://" %}
            "{{ teaser }}"
          {% else %}
            "{{ teaser | prepend: "/images/" | prepend: base_path }}"
          {% endif %}
          alt="">
      </div>
    {% endif %}
    <h3 class="archive__item-title" itemprop="headline">
      {% if post.link %}
        <a href="{{ post.link }}">{{ title }}</a> <a href="{{ base_path }}{{ post.url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
      {% else %}
        <a href="{{ base_path }}{{ post.url }}" rel="permalink">{{ title }}</a>
      {% endif %}
    </h3>
    {% if post.read_time %}
      <p class="page__meta"><i class="fa fa-clock" aria-hidden="true"></i> {% include read-time.html %}</p>
    {% endif %}
    {% if post.venue%}<p class="archive__item-excerpt" itemprop="description">{{ post.citation }}</p> {% endif %}
    </li>
 </article>
</div>


================================================
FILE: _includes/archive-single-talk-cv.html
================================================
{% include base_path %}

{% if post.header.teaser %}
  {% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
  {% assign teaser = site.teaser %}
{% endif %}

{% if post.id %}
  {% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
  {% assign title = post.title %}
{% endif %}

<div class="{{ include.type | default: "list" }}__item">
  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
    <li>
    {% if include.type == "grid" and teaser %}
      <div class="archive__item-teaser">
        <img src=
          {% if teaser contains "://" %}
            "{{ teaser }}"
          {% else %}
            "{{ teaser | prepend: "/images/" | prepend: base_path }}"
          {% endif %}
          alt="">
      </div>
    {% endif %}
    <h3 class="archive__item-title" itemprop="headline">
      {% if post.link %}
        <a href="{{ post.link }}">{{ title }}</a> <a href="{{ base_path }}{{ post.url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
      {% else %}
        <a href="{{ base_path }}{{ post.url }}" rel="permalink">{{ title }}</a>
      {% endif %}
    </h3>
    {% if post.date %}<p class="page__meta"><i class="fa fa-clock" aria-hidden="true"></i> {{ post.date | date: '%B %d, %Y' }}</p>{% endif %}
    {% if post.venue%}<p class="archive__item-excerpt" itemprop="description">{{post.type}} at {{ post.venue }},  {{post.location}}</p>{% endif %}
    </li>
  </article>
</div>



================================================
FILE: _includes/archive-single-talk.html
================================================
{% include base_path %}

{% if post.header.teaser %}
  {% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
  {% assign teaser = site.teaser %}
{% endif %}

{% if post.id %}
  {% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
  {% assign title = post.title %}
{% endif %}

<div class="{{ include.type | default: "list" }}__item">
  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
    {% if include.type == "grid" and teaser %}
      <div class="archive__item-teaser">
        <img src=
          {% if teaser contains "://" %}
            "{{ teaser }}"
          {% else %}
            "{{ teaser | prepend: "/images/" | prepend: base_path }}"
          {% endif %}
          alt="">
      </div>
    {% endif %}
    <h2 class="archive__item-title" itemprop="headline">
      {% if post.link %}
        <a href="{{ post.link }}">{{ title }}</a> <a href="{{ base_path }}{{ post.url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
      {% else %}
        <a href="{{ base_path }}{{ post.url }}" rel="permalink">{{ title }}</a>
      {% endif %}
    </h2>
    {% if post.read_time %}
      <p class="page__meta"><i class="fa fa-clock" aria-hidden="true"></i> {% include read-time.html %}</p>
    {% endif %}
    {% if post.date %}<p class="page__meta"><i class="fa fa-clock" aria-hidden="true"></i> {{ post.date | date: '%B %d, %Y' }}</p>{% endif %}
    {% if post.venue %}<p class="archive__item-excerpt" itemprop="description">{{post.type}}, {{ post.venue }},  {{post.location}} {% endif %}
    {% if post.excerpt %}<p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify }}</p>{% endif %}
  </article>
</div>


================================================
FILE: _includes/archive-single.html
================================================
{% include base_path %}

{% if post.header.teaser %}
  {% capture teaser %}{{ post.header.teaser }}{% endcapture %}
{% else %}
  {% assign teaser = site.teaser %}
{% endif %}

{% if post.id %}
  {% assign title = post.title | markdownify | remove: "<p>" | remove: "</p>" %}
{% else %}
  {% assign title = post.title %}
{% endif %}

<div class="{{ include.type | default: "list" }}__item">
  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
    {% if include.type == "grid" and teaser %}
      <div class="archive__item-teaser">
        <img src=
          {% if teaser contains "://" %}
            "{{ teaser }}"
          {% else %}
            "{{ teaser | prepend: "/images/" | prepend: base_path }}"
          {% endif %}
          alt="">
      </div>
    {% endif %}

    <h2 class="archive__item-title" itemprop="headline">
      {% if post.link %}
        <a href="{{ post.link }}">{{ title }}</a> <a href="{{ base_path }}{{ post.url }}" rel="permalink"><i class="fa fa-link" aria-hidden="true" title="permalink"></i><span class="sr-only">Permalink</span></a>
      {% else %}
        <a href="{{ base_path }}{{ post.url }}" rel="permalink">{{ title }}</a>
      {% endif %}
    </h2>
    
    {% if post.read_time %}
      <p class="page__meta"><i class="fa fa-clock" aria-hidden="true"></i> {% include read-time.html %}</p>
    {% endif %}

        {% if post.collection == 'teaching' %}
          <p> {{ post.type }}, <i>{{ post.venue }}</i>, {{ post.date | default: "1900-01-01" | date: "%Y" }} </p>
        {% elsif post.collection == 'publications' %}
          <p>Published in <i>{{ post.venue }}</i>, {{ post.date | default: "1900-01-01" | date: "%Y" }} </p>
        {% elsif post.date %}
         <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Published:" }}</strong> <time datetime="{{ post.date | default: "1900-01-01" | date_to_xmlschema }}">{{ post.date | default: "1900-01-01" | date: "%B %d, %Y" }}</time></p>
        {% endif %}

    {% if post.excerpt and site.read_more != 'enabled' %}
    <p class="archive__item-excerpt" itemprop="description">{{ post.excerpt | markdownify }}</p>
    {% elsif post.excerpt and site.read_more == 'enabled' %}
    <p class="archive__item-excerpt" itemprop="description"><p>{{ post.excerpt | markdownify | remove: '<p>' | remove: '</p>' }}<strong><a href="{{ base_path }}{{ post.url }}" rel="permalink"> Read more</a></strong></p></p>
    {% endif %}
    
    {% if post.citation and post.paperurl and post.slidesurl and post.bibtexurl %}
      <p>Recommended citation: {{ post.citation }}<br /><a href="{{ post.paperurl }}">Download Paper</a> | <a href="{{ post.slidesurl }}">Download Slides</a> | <a href="{{ post.bibtexurl }}">Download Bibtex</a></p>
    {% elsif post.citation and post.paperurl and post.slidesurl %}
      <p>Recommended citation: {{ post.citation }}<br /><a href="{{ post.paperurl }}">Download Paper</a> | <a href="{{ post.slidesurl }}">Download Slides</a></p>
    {% elsif post.citation and post.paperurl and post.bibtexurl %}
      <p>Recommended citation: {{ post.citation }}<br /><a href="{{ post.paperurl }}">Download Paper</a> | <a href="{{ post.bibtexurl }}">Download Bibtex</a></p>
    {% elsif post.citation and post.paperurl %}
      <p>Recommended citation: {{ post.citation }}<br /><a href="{{ post.paperurl }}">Download Paper</a></p>
    {% elsif post.citation and post.slidesurl and post.bibtexurl %}
      <p>Recommended citation: {{ post.citation }}<br /><a href="{{ post.slidesurl }}">Download Slides</a> | <a href="{{ post.bibtexurl}}">Download Bibtex</a></p>
    {% elsif post.citation and post.slidesurl %}
      <p>Recommended citation: {{ post.citation }}<br /><a href="{{ post.slidesurl }}">Download Slides</a></p>
    {% elsif post.citation and post.bibtexurl %}
      <p>Recommended citation: {{ post.citation }}<br /><a href="{{ post.bibtexurl }}">Download Bibtex</a></p>
    {% elsif post.citation %}
      <p>Recommended citation: {{ post.citation }}</p>
    {% elsif post.paperurl and post.bibtexurl %}
      <p><a href="{{ post.paperurl }}">Download Paper</a> | <a href="{{ post.bibtexurl }}">Download Bibtex</a></p>
    {% elsif post.paperurl %}
      <p><a href="{{ post.paperurl }}">Download Paper</a></p>
    {% elsif post.slidesurl and post.bibtexurl %}
      <p><a href="{{ post.slidesurl }}">Download Slides</a> | <a href="{{ post.bibtexurl }}">Download Bibtex</a></p>
    {% elsif post.slidesurl %}
      <p><a href="{{ post.slidesurl }}">Download Slides</a></p>
    {% elsif post.bibtexurl %}
      <p><a href="{{ post.bibtexurl }}">Download Bibtex</a></p>
    {% endif %}

  </article>
</div>


================================================
FILE: _includes/author-profile.html
================================================
{% include base_path %}

{% if page.author and site.data.authors[page.author] %}
  {% assign author = site.data.authors[page.author] %}{% else %}{% assign author = site.author %}
{% endif %}

<div itemscope itemtype="http://schema.org/Person">

  <div class="author__avatar">
    {% if author.avatar contains "://" %}
    	<img src="{{ author.avatar }}" alt="{{ author.name }}"  fetchpriority="high" />
    {% else %}
    	<img src="{{ author.avatar | prepend: "/images/" | prepend: base_path }}" class="author__avatar" alt="{{ author.name }}"  fetchpriority="high" />
    {% endif %}
  </div>

  <div class="author__content">
    <h3 class="author__name">{{ author.name }}</h3>
    {% if author.pronouns %}<p class="author__pronouns">{{ author.pronouns }}</p>{% endif %}
    {% if author.bio %}<p class="author__bio">{{ author.bio }}</p>{% endif %}
  </div>

  <div class="author__urls-wrapper">
    <button class="btn btn--inverse">Follow</button>
    <ul class="author__urls social-icons">
      <!-- Font Awesome icons / Biographic information  -->
      {% if author.location %}
        <li class="author__desktop"><i class="fas fa-fw fa-location-dot icon-pad-right" aria-hidden="true"></i>{{ author.location }}</li>
      {% endif %}
      {% if author.employer %}
        <li class="author__desktop"><i class="fas fa-fw fa-building-columns icon-pad-right" aria-hidden="true"></i>{{ author.employer }}</li>
      {% endif %}
      {% if author.uri %}
        <li><a href="{{ author.uri }}"><i class="fas fa-fw fa-link icon-pad-right" aria-hidden="true"></i>{{ site.data.ui-text[site.locale].website_label | default: "Website" }}</a></li>
      {% endif %}
      {% if author.email %}
        <li><a href="mailto:{{ author.email }}"><i class="fas fa-fw fa-envelope icon-pad-right" aria-hidden="true"></i>{{ site.data.ui-text[site.locale].email_label | default: "Email" }}</a></li>
      {% endif %}

      <!-- Font Awesome and Academicons icons / Academic websites -->
      {% if author.academia %}
        <li><a href="{{ author.academia }}"><i class="ai ai-academia ai-fw icon-pad-right" aria-hidden="true"></i>Academia</a></li>
      {% endif %}
      {% if author.arxiv %}
        <li><a href="{{ author.arxiv }}"><i class="ai ai-arxiv ai-fw icon-pad-right"></i>arXiv</a></li>
      {% endif %}      
      {% if author.googlescholar %}
        <li><a href="{{ author.googlescholar }}"><i class="ai ai-google-scholar ai-fw icon-pad-right"></i>Google Scholar</a></li>
      {% endif %}
      {% if author.inspire-hep %}
        <li><a href="{{ author.inspire-hep }}"><i class="ai ai-inspire ai-fw icon-pad-right"></i>INSPIRE-HEP</a></li>
      {% endif %}      
      {% if author.impactstory %}
        <li><a href="{{ author.impactstory }}"><i class="ai ai-impactstory ai-fw icon-pad-right"></i>Impactstory</a></li>
      {% endif %}
      {% if author.orcid %}
        <li><a href="{{ author.orcid }}"><i class="ai ai-orcid ai-fw icon-pad-right"></i>ORCID</a></li>
      {% endif %}
      {% if author.pubmed %}
        <li><a href="{{ author.pubmed }}"><i class="ai ai-pubmed ai-fw icon-pad-right"></i>PubMed</a></li>
      {% endif %}                        
      {% if author.researchgate %}
        <li><a href="{{ author.researchgate }}"><i class="fab fa-fw fa-researchgate icon-pad-right" aria-hidden="true"></i>ResearchGate</a></li>
      {% endif %}
      {% if author.scopus %}
        <li><a href="{{ author.scopus }}"><i class="ai ai-scopus ai-fw icon-pad-right"></i>Scopus</a></li>
      {% endif %}
      {% if author.semantic %}
        <li><a href="{{ author.semantic }}"><i class="ai ai-semantic-scholar ai-fw icon-pad-right"></i>Semantic Scholar</a></li>
      {% endif %}
      {% if author.ssrn %}
        <li><a href="{{ author.ssrn }}"><i class="ai ai-ssrn ai-fw icon-pad-right"></i>SSRN</a></li>
      {% endif %}
      {% if author.zotero %}
        <li><a href="{{ author.zotero }}"><i class="ai ai-zotero ai-fw icon-pad-right"></i>Zotero</a></li>
      {% endif %}

      <!-- Font Awesome icons / Repositories and software development -->
      {% if author.bitbucket %}
        <li><a href="https://bitbucket.org/{{ author.bitbucket }}"><i class="fab fa-fw fa-bitbucket icon-pad-right" aria-hidden="true"></i>Bitbucket</a></li>
      {% endif %}
      {% if author.codepen %}
        <li><a href="https://codepen.io/{{ author.codepen }}"><i class="fab fa-fw fa-codepen icon-pad-right" aria-hidden="true"></i>CodePen</a></li>
      {% endif %}      
      {% if author.dribbble %}
        <li><a href="https://dribbble.com/{{ author.dribbble }}"><i class="fab fa-fw fa-dribbble icon-pad-right" aria-hidden="true"></i>Dribbble</a></li>
      {% endif %}      
      {% if author.github %}
        <li><a href="https://github.com/{{ author.github }}"><i class="fab fa-fw fa-github icon-pad-right" aria-hidden="true"></i>GitHub</a></li>
      {% endif %}
      {% if author.kaggle %}
        <li><a href="https://kaggle.com/{{ author.kaggle }}"><i class="fab fa-fw fa-kaggle icon-pad-right" aria-hidden="true"></i>Kaggle</a></li>
      {% endif %}      
      {% if author.stackoverflow %}
        <li><a href="https://www.stackoverflow.com/users/{{ author.stackoverflow }}"><i class="fab fa-fw fa-stack-overflow icon-pad-right" aria-hidden="true"></i>Stackoverflow</a></li>
      {% endif %}      

      <!-- Font Awesome icons / Social media -->
      {% if author.artstation %}
        <li><a href="https://www.artstation.com/{{ author.artstation }}"><i class="fab fa-fw fa-artstation icon-pad-right" aria-hidden="true"></i>Artstation</a></li>
      {% endif %}        
      {% if author.bluesky %}
        <li><a href="https://bsky.app/profile/{{ author.bluesky }}"><i class="fab fa-fw fa-bluesky icon-pad-right" aria-hidden="true"></i>Bluesky</a></li>
      {% endif %}
      {% if author.facebook %}
        <li><a href="https://www.facebook.com/{{ author.facebook }}"><i class="fab fa-fw fa-facebook-f icon-pad-right" aria-hidden="true"></i>Facebook</a></li>
      {% endif %}
      {% if author.flickr %}
        <li><a href="https://www.flickr.com/{{ author.flickr }}"><i class="fab fa-fw fa-flickr icon-pad-right" aria-hidden="true"></i>Flickr</a></li>
      {% endif %}      
      {% if author.foursquare %}
        <li><a href="https://foursquare.com/{{ author.foursquare }}"><i class="fab fa-fw fa-foursquare icon-pad-right" aria-hidden="true"></i>Foursquare</a></li>
      {% endif %}
      {% if author.goodreads %}
        <li><a href="https://www.goodreads.com/{{ author.goodreads }}"><i class="fab fa-fw fa-goodreads icon-pad-right" aria-hidden="true"></i>Goodreads</a></li>
      {% endif %}            
      {% if author.google_plus %}
        <li><a href="https://plus.google.com/+{{ author.google_plus }}"><i class="fab fa-fw fa-google-plus-g icon-pad-right" aria-hidden="true"></i>Google+</a></li>
      {% endif %}            
      {% if author.keybase %}
        <li><a href="https://keybase.io/{{ author.keybase }}"><i class="fas fa-fw fa-key icon-pad-right" aria-hidden="true"></i>Keybase</a></li>
      {% endif %}
      {% if author.instagram %}
        <li><a href="https://instagram.com/{{ author.instagram }}"><i class="fab fa-fw fa-instagram icon-pad-right" aria-hidden="true"></i>Instagram</a></li>
      {% endif %}      
      {% if author.lastfm %}
        <li><a href="https://last.fm/user/{{ author.lastfm }}"><i class="fab fa-fw fa-lastfm icon-pad-right" aria-hidden="true"></i>Last.fm</a></li>
      {% endif %}      
      {% if author.linkedin %}
        <li><a href="https://www.linkedin.com/in/{{ author.linkedin }}"><i class="fab fa-fw fa-linkedin icon-pad-right" aria-hidden="true"></i>LinkedIn</a></li>
      {% endif %}      
      {% if author.mastodon %}
        <li><a href="{{ author.mastodon }}"><i class="fab fa-fw fa-mastodon icon-pad-right" aria-hidden="true"></i>Mastodon</a></li>
      {% endif %}
      {% if author.medium %}
        <li><a href="{{ author.medium }}"><i class="fab fa-fw fa-medium icon-pad-right" aria-hidden="true"></i>Medium</a></li>
      {% endif %}      
      {% if author.pinterest %}
        <li><a href="https://www.pinterest.com/{{ author.pinterest }}"><i class="fab fa-fw fa-pinterest icon-pad-right" aria-hidden="true"></i>Pinterest</a></li>
      {% endif %}            
      {% if author.soundcloud %}
        <li><a href="https://soundcloud.com/{{ author.soundcloud }}"><i class="fab fa-fw fa-soundcloud icon-pad-right" aria-hidden="true"></i>Soundcloud</a></li>
      {% endif %}      
      {% if author.steam %}
        <li><a href="https://steamcommunity.com/id/{{ author.steam }}"><i class="fab fa-fw fa-steam icon-pad-right" aria-hidden="true"></i>Steam</a></li>
      {% endif %}
      {% if author.telegram %}
        <li><a href="{{ author.telegram }}"><i class="fab fa-fw fa-telegram icon-pad-right" aria-hidden="true"></i>Telegram</a></li>
      {% endif %}      
      {% if author.tumblr %}
        <li><a href="https://{{ author.tumblr }}.tumblr.com"><i class="fab fa-fw fa-tumblr icon-pad-right" aria-hidden="true"></i>Tumblr</a></li>
      {% endif %}      
      {% if author.twitter %}
        <li><a href="https://twitter.com/{{ author.twitter }}"><i class="fab fa-fw fa-x-twitter icon-pad-right" aria-hidden="true"></i>X (formerly Twitter)</a></li>
      {% endif %}
      {% if author.vine %}
        <li><a href="https://vine.co/u/{{ author.vine }}"><i class="fab fa-fw fa-vine icon-pad-right" aria-hidden="true"></i>Vine</a></li>
      {% endif %}        
      {% if author.weibo %}
        <li><a href="https://www.weibo.com/{{ author.weibo }}"><i class="fab fa-fw fa-weibo icon-pad-right" aria-hidden="true"></i>Weibo</a></li>
      {% endif %}
      {% if author.wikipedia %}
        <li><a href="https://en.wikipedia.org/wiki/User:{{ author.wikipedia }}"><i class="fab fa-fw fa-wikipedia-w icon-pad-right" aria-hidden="true"></i>Wikipedia</a></li>
      {% endif %}                
      {% if author.xing %}
        <li><a href="https://www.xing.com/profile/{{ author.xing }}"><i class="fab fa-fw fa-xing icon-pad-right" aria-hidden="true"></i>XING</a></li>
      {% endif %}
      {% if author.youtube %}
        <li><a href="https://www.youtube.com/@{{ author.youtube }}"><i class="fab fa-fw fa-youtube icon-pad-right" aria-hidden="true"></i>YouTube</a></li>
      {% endif %}
      {% if author.zhihu %}
      <li><a href="https://www.zhihu.com/people/{{ author.zhihu }}"><i class="fab fa-fw fa-zhihu icon-pad-right" aria-hidden="true"></i>Zhihu</a></li>
      {% endif %}      
    </ul>
  </div>
</div>


================================================
FILE: _includes/base_path
================================================
{% if site.url %}
  {% assign base_path = site.url | append: site.baseurl %}
{% else %}
  {% assign base_path = site.github.url %}
{% endif %}

================================================
FILE: _includes/breadcrumbs.html
================================================
{% include base_path %}

{% case site.categories.type %}
  {% when "liquid" %}
    {% assign path_type = "#" %}
  {% when "jekyll-archives" %}
    {% assign path_type = nil %}
{% endcase %}

{% if page.collection != 'posts' %}
  {% assign path_type = nil %}
  {% assign crumb_path = '/' %}
{% else %}
  {% assign crumb_path = site.categories.path %}
{% endif %}

<nav class="breadcrumbs">
  <ol itemscope itemtype="http://schema.org/BreadcrumbList">
    {% assign crumbs = page.url | split: '/' %}
    {% assign i = 1 %}
    {% for crumb in crumbs offset: 1 %}
      {% if forloop.first %}
        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
          <a href="{{ base_path }}/" itemprop="item"><span itemprop="name">{{ site.data.ui-text[site.locale].breadcrumb_home_label | default: "Home" }}</span></a>
          <meta itemprop="position" content="{{ i }}" />
        </li>
        <span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
      {% endif %}
      {% if forloop.last %}
        <li class="current">{{ page.title }}</li>
      {% else %}
        {% assign i = i | plus: 1 %}
        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
          <a href="{{ base_path }}{{ crumb | downcase | replace: '%20', '-' | prepend: path_type | prepend: crumb_path }}" itemprop="item"><span itemprop="name">{{ crumb | replace: '-', ' ' | replace: '%20', ' ' | capitalize }}</span></a>
          <meta itemprop="position" content="{{ i }}" />
        </li>
        <span class="sep">{{ site.data.ui-text[site.locale].breadcrumb_separator | default: "/" }}</span>
      {% endif %}
    {% endfor %}
  </ol>
</nav>

================================================
FILE: _includes/browser-upgrade.html
================================================
<!--[if lt IE 9]>
<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
<![endif]-->

================================================
FILE: _includes/category-list.html
================================================
{% include base_path %}

{% include base_path %}

{% case site.category_archive.type %}
  {% when "liquid" %}
    {% assign path_type = "#" %}
  {% when "jekyll-archives" %}
    {% assign path_type = nil %}
{% endcase %}

{% if site.category_archive.path %}
  {% comment %}
    <!-- Sort alphabetically regardless of case e.g. a B c d E -->
    <!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
  {% endcomment %}
  {% capture page_categories %}{% for category in page.categories %}{{ category | downcase }}#{{ category }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
  {% assign category_hashes = (page_categories | split: ',' | sort:0) %}

  <p class="page__taxonomy">
    <strong><i class="fa fa-fw fa-folder-open" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} </strong>
    <span itemprop="keywords">
    {% for hash in category_hashes %}
      {% assign keyValue = hash | split: '#' %}
      {% capture category_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
      <a href="{{ base_path }}{{ category_word | slugify | prepend: path_type | prepend: site.category_archive.path }}" class="page__taxonomy-item" rel="tag">{{ category_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
    {% endfor %}
    </span>
  </p>
{% endif %}

================================================
FILE: _includes/comment.html
================================================
<article id="comment{{ include.index }}" class="js-comment comment">
  <div class="comment__avatar-wrapper">
    <img class="comment__avatar" src="https://www.gravatar.com/avatar/{{ include.email }}?d=mm&s=80">
  </div>
  <div class="comment__content-wrapper">
    <h3 class="comment__author">
      {% unless include.url == blank %}
        <a rel="nofollow" href="{{ include.url }}">{{ include.name }}</a>
      {% else %}
        {{ include.name }}
      {% endunless %}
    </h3>
    <p class="comment__date">
      {% if include.date %}
        {% if include.index %}<a href="#comment{{ include.index }}">{% endif %}
        <time datetime="{{ include.date | date_to_xmlschema }}">{{ include.date | date: "%B %d, %Y at %I:%M %p" }}</time>
        {% if include.index %}</a>{% endif %}
      {% endif %}
    </p>
    {{ include.message | markdownify }}
  </div>
</article>

================================================
FILE: _includes/comments-providers/custom.html
================================================
<!-- start custom comments snippet -->

<!-- end custom comments snippet -->

================================================
FILE: _includes/comments-providers/discourse.html
================================================
{% if site.comments.discourse.server %}
{% include base_path %}
{% capture canonical %}{{ base_path }}{% if site.permalink contains '.html' %}{{ page.url }}{% else %}{{ page.url | remove:'index.html' | strip_slash }}{% endif %}{% endcapture %}
<script type="text/javascript">
    DiscourseEmbed = { discourseUrl: '//{{ site.comments.discourse.server }}/',
                       discourseEmbedUrl: '{{ canonical }}' };
   (function () {
     var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
     d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
     (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
   })();
</script>
<noscript>Please enable JavaScript to view the comments powered by [Discourse](http://forum.beta-europe.org/c/beta/website).</a></noscript>
{% endif %}

================================================
FILE: _includes/comments-providers/disqus.html
================================================
{% if site.comments.disqus.shortname %}
  <script type="text/javascript">
  	/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
  	var disqus_shortname = '{{ site.comments.disqus.shortname }}';

  	/* * * DON'T EDIT BELOW THIS LINE * * */
  	(function() {
  		var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
  		dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
  		(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  	})();

  	/* * * DON'T EDIT BELOW THIS LINE * * */
  	(function () {
  		var s = document.createElement('script'); s.async = true;
  		s.type = 'text/javascript';
  		s.src = '//' + disqus_shortname + '.disqus.com/count.js';
  		(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
  	}());
  </script>
  <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
{% endif %}

================================================
FILE: _includes/comments-providers/facebook.html
================================================
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5{% if site.comments.facebook.appid %}&appId={{ site.comments.facebook.appid }}{% endif %}";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

================================================
FILE: _includes/comments-providers/google-plus.html
================================================
<script async type="text/javascript" src="//apis.google.com/js/plusone.js?callback=gpcb"></script>
<noscript>Please enable JavaScript to view the <a href="https://plus.google.com/">comments powered by Google+.</a></noscript>

================================================
FILE: _includes/comments-providers/scripts.html
================================================
{% if site.comments.provider and page.comments %}

{% case site.comments.provider %}
{% when "disqus" %}
  {% include /comments-providers/disqus.html %}
{% when "discourse" %}
  {% include /comments-providers/discourse.html %}
{% when "facebook" %}
  {% include /comments-providers/facebook.html %}
{% when "google-plus" %}
  {% include /comments-providers/google-plus.html %}
{% when "staticman" %}
  {% include /comments-providers/staticman.html %}
{% when "custom" %}
  {% include /comments-providers/custom.html %}
{% endcase %}

{% endif %}

================================================
FILE: _includes/comments-providers/staticman.html
================================================
{% if site.repository and site.staticman.branch %}
  <script>
    (function ($) {
    var $comments = $('.js-comments');

    $('#new_comment').submit(function () {
      var form = this;

      $(form).addClass('disabled');
      $('#comment-form-submit').html('<i class="fa fa-spinner fa-spin fa-fw"></i> {{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}');

      $.ajax({
        type: $(this).attr('method'),
        url: $(this).attr('action'),
        data: $(this).serialize(),
        contentType: 'application/x-www-form-urlencoded',
        success: function (data) {
          $('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submitted | default: "Submitted" }}');
          $('.page__comments-form .js-notice').removeClass('notice--danger');
          $('.page__comments-form .js-notice').addClass('notice--success');
          showAlert('{{ site.data.ui-text[site.locale].comment_success_msg | default: "Thanks for your comment! It will show on the site once it has been approved." }}');
        },
        error: function (err) {
          console.log(err);
          $('#comment-form-submit').html('{{ site.data.ui-text[site.locale].comment_btn_submit  | default: "Submit Comment" }}');
          $('.page__comments-form .js-notice').removeClass('notice--success');
          $('.page__comments-form .js-notice').addClass('notice--danger');
          showAlert('{{ site.data.ui-text[site.locale].comment_error_msg | default: "Sorry, there was an error with your submission. Please make sure all required fields have been completed and try again." }}');
          $(form).removeClass('disabled');
        }
      });

      return false;
    });

    function showAlert(message) {
      $('.page__comments-form .js-notice').removeClass('hidden');
      $('.page__comments-form .js-notice-text').html(message);
    }
  })(jQuery);
  </script>
{% endif %}

================================================
FILE: _includes/comments.html
================================================
{% include base_path %}

<div class="page__comments">
  {% capture comments_label %}{{ site.data.ui-text[site.locale].comments_label | default: "Comments" }}{% endcapture %}
  {% case site.comments.provider %}
  {% when "disqus" %}
    <h4 class="page__comments-title">{{ comments_label }}</h4>
    <section id="disqus_thread"></section>
    {% include /comments-providers/disqus.html %}
  {% when "facebook" %}
    <h4 class="page__comments-title">{{ comments_label }}</h4>
    <section class="fb-comments" data-href="{{ base_path }}{{ page.url }}" data-mobile="true" data-num-posts="{{ site.comments.facebook.num_posts | default: 5 }}" data-width="100%" data-colorscheme="{{ site.comments.facebook.colorscheme | default: 'light' }}"></section>
  {% when "google-plus" %}
    <h4 class="page__comments-title">{{ comments_label }}</h4>
    <section class="g-comments" data-href="{{ base_path }}{{ page.url }}" data-first_party_property="BLOGGER" data-view_type="FILTERED_POSTMOD">Loading Google+ Comments ...</section>
  {% when "staticman" %}
    <section id="comments">
      {% if site.repository and site.staticman.branch %}
        <!-- Start static comments -->
        <div class="js-comments">
          {% if site.data.comments[page.slug] %}
            <h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_title | default: "Comments" }}</h4>
            {% assign comments = site.data.comments[page.slug] | sort %}

            {% for comment in comments %}
              {% assign email = comment[1].email %}
              {% assign name = comment[1].name %}
              {% assign url = comment[1].url %}
              {% assign date = comment[1].date %}
              {% assign message = comment[1].message %}
              {% include comment.html index=forloop.index email=email name=name url=url date=date message=message %}
            {% endfor %}
          {% endif %}
        </div>
        <!-- End static comments -->

        <!-- Start new comment form -->
        <h4 class="page__comments-title">{{ site.data.ui-text[site.locale].comments_label | default: "Leave a Comment" }}</h4>
        <p class="small">{{ site.data.ui-text[site.locale].comment_form_info | default: "Your email address will not be published. Required fields are marked" }} <span class="required">*</span></p>
        <form id="new_comment" class="page__comments-form js-form form" method="post" action="https://api.staticman.net/v1/entry/{{ site.repository }}/{{ site.staticman.branch }}">
          <div class="form__spinner">
            <i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
            <span class="sr-only">{{ site.data.ui-text[site.locale].loading_label | default: "Loading..." }}</span>
          </div>

          <fieldset>
            <label for="comment-form-message">{{ site.data.ui-text[site.locale].comment_form_comment_label | default: "Comment" }} <small class="required">*</small></label>
            <textarea type="text" rows="3" id="comment-form-message" name="fields[message]" tabindex="1"></textarea>
            <div class="small help-block"><a href="https://daringfireball.net/projects/markdown/">{{ site.data.ui-text[site.locale].comment_form_md_info | default: "Markdown is supported." }}</a></div>
          </fieldset>
          <fieldset>
            <label for="comment-form-name">{{ site.data.ui-text[site.locale].comment_form_name_label | default: "Name" }} <small class="required">*</small></label>
            <input type="text" id="comment-form-name" name="fields[name]" tabindex="2" />
          </fieldset>
          <fieldset>
            <label for="comment-form-email">{{ site.data.ui-text[site.locale].comment_form_email_label | default: "Email address" }} <small class="required">*</small></label>
            <input type="email" id="comment-form-email" name="fields[email]" tabindex="3" />
          </fieldset>
          <fieldset>
            <label for="comment-form-url">{{ site.data.ui-text[site.locale].comment_form_website_label | default: "Website (optional)" }}</label>
            <input type="url" id="comment-form-url" name="fields[url]" tabindex="4"/>
          </fieldset>
          <fieldset class="hidden">
            <input type="hidden" name="options[slug]" value="{{ page.slug }}">
            <input type="hidden" name="fields[hidden]"/>
          </fieldset>
          <!-- Start comment form alert messaging -->
          <p class="hidden js-notice">
            <strong class="js-notice-text"></strong>
          </p>
          <!-- End comment form alert messaging -->
          <fieldset>
            <button type="submit" id="comment-form-submit" tabindex="5" class="btn btn--large">{{ site.data.ui-text[site.locale].comment_btn_submit | default: "Submit Comment" }}</button>
          </fieldset>
        </form>
        <!-- End new comment form -->
      {% endif %}
    </section>
  {% when "custom" %}
    <h4 class="page__comments-title">{{ comments_label }}</h4>
    <section id="comments"></section>
    {% include /comments-providers/scripts.html %}
  {% endcase %}
</div>

================================================
FILE: _includes/cv-template.html
================================================
{% assign cv = site.data.cv %}

<style>
  .archive {
    width: 80%;
    margin: 0 auto;
    float: none;
    padding-right: 0;
  }
  
  @media (min-width: 80em) {
    .archive {
      width: 70%;
    }
  }
</style>

<div class="cv-container">
  <!-- Basic Information -->
  <div class="cv-section cv-header">
    <h1>{{ cv.basics.name }}</h1>
    {% if cv.basics.label %}
    <h2>{{ cv.basics.label }}</h2>
    {% endif %}
    
    <div class="cv-contact">
      {% if cv.basics.email %}
      <div class="cv-contact-item">
        <i class="fas fa-envelope"></i> {{ cv.basics.email }}
      </div>
      {% endif %}
      
      {% if cv.basics.phone %}
      <div class="cv-contact-item">
        <i class="fas fa-phone"></i> {{ cv.basics.phone }}
      </div>
      {% endif %}
      
      {% if cv.basics.website %}
      <div class="cv-contact-item">
        <i class="fas fa-globe"></i> <a href="{{ cv.basics.website }}" target="_blank">{{ cv.basics.website }}</a>
      </div>
      {% endif %}
      
      {% if cv.basics.location.city %}
      <div class="cv-contact-item">
        <i class="fas fa-map-marker-alt"></i> {{ cv.basics.location.city }}{% if cv.basics.location.region %}, {{ cv.basics.location.region }}{% endif %}{% if cv.basics.location.countryCode %}, {{ cv.basics.location.countryCode }}{% endif %}
      </div>
      {% endif %}
    </div>
    
    {% if cv.basics.profiles.size > 0 %}
    <div class="cv-profiles">
      {% for profile in cv.basics.profiles %}
      <a href="{{ profile.url }}" target="_blank" class="cv-profile-link">
        <i class="fab fa-{{ profile.network | downcase }}"></i> {{ profile.network }}
      </a>
      {% endfor %}
    </div>
    {% endif %}
  </div>
  
  {% if cv.basics.summary %}
  <!-- Summary -->
  <div class="cv-section">
    <h2>Summary</h2>
    <p>{{ cv.basics.summary }}</p>
  </div>
  {% endif %}
  
  {% if cv.education.size > 0 %}
  <!-- Education -->
  <div class="cv-section">
    <h2>Education</h2>
    <ul class="cv-list">
      {% for education in cv.education %}
      <li class="cv-item">
        <div class="cv-item-header">
          <div class="cv-item-title">{{ education.area }}</div>
          <div class="cv-item-date">{{ education.endDate }}</div>
        </div>
        <div class="cv-item-content">
          <div class="cv-item-subtitle">{{ education.institution }}</div>
          {% if education.gpa %}
          <div class="cv-item-detail">GPA: {{ education.gpa }}</div>
          {% endif %}
          {% if education.courses.size > 0 %}
          <div class="cv-item-detail">
            <strong>Courses:</strong> {{ education.courses | join: ", " }}
          </div>
          {% endif %}
        </div>
      </li>
      {% endfor %}
    </ul>
  </div>
  {% endif %}
  
  {% if cv.work.size > 0 %}
  <!-- Work Experience -->
  <div class="cv-section">
    <h2>Work Experience</h2>
    <ul class="cv-list">
      {% for work in cv.work %}
      <li class="cv-item">
        <div class="cv-item-header">
          <div class="cv-item-title">{{ work.position }}</div>
          <div class="cv-item-date">{{ work.startDate }}{% if work.endDate %} - {{ work.endDate }}{% endif %}</div>
        </div>
        <div class="cv-item-content">
          <div class="cv-item-subtitle">{{ work.company }}</div>
          {% if work.summary %}
          <div class="cv-item-detail">{{ work.summary }}</div>
          {% endif %}
          {% if work.highlights.size > 0 %}
          <ul class="cv-highlights">
            {% for highlight in work.highlights %}
            <li>{{ highlight }}</li>
            {% endfor %}
          </ul>
          {% endif %}
        </div>
      </li>
      {% endfor %}
    </ul>
  </div>
  {% endif %}
  
  {% if cv.skills.size > 0 %}
  <!-- Skills -->
  <div class="cv-section">
    <h2>Skills</h2>
    <div class="cv-skills">
      {% for skill in cv.skills %}
      <div class="cv-skill-category">
        <h3>{{ skill.name }}</h3>
        <ul class="cv-skill-list">
          {% for keyword in skill.keywords %}
          <li>{{ keyword }}</li>
          {% endfor %}
        </ul>
      </div>
      {% endfor %}
    </div>
  </div>
  {% endif %}
  
  {% if cv.publications.size > 0 %}
  <!-- Publications -->
  <div class="cv-section">
    <h2>Publications</h2>
    <ul class="cv-list">
      {% for publication in cv.publications %}
      <li class="cv-item">
        <div class="cv-item-header">
          <div class="cv-item-title">{{ publication.name }}</div>
          <div class="cv-item-date">{{ publication.releaseDate | slice: 0, 4 }}</div>
        </div>
        <div class="cv-item-content">
          <div class="cv-item-subtitle">{{ publication.publisher }}</div>
          {% if publication.summary %}
          <div class="cv-item-detail">{{ publication.summary }}</div>
          {% endif %}
          {% if publication.website %}
          <div class="cv-item-detail">
            <a href="{{ publication.website }}" target="_blank">View Publication</a>
          </div>
          {% endif %}
        </div>
      </li>
      {% endfor %}
    </ul>
  </div>
  {% endif %}
  
  {% if cv.presentations.size > 0 %}
  <!-- Presentations/Talks -->
  <div class="cv-section">
    <h2>Presentations</h2>
    <ul class="cv-list">
      {% for talk in cv.presentations %}
      <li class="cv-item">
        <div class="cv-item-header">
          <div class="cv-item-title">{{ talk.name }}</div>
          <div class="cv-item-date">{{ talk.date | slice: 0, 4 }}</div>
        </div>
        <div class="cv-item-content">
          <div class="cv-item-subtitle">{{ talk.event }}</div>
          {% if talk.location %}
          <div class="cv-item-detail">{{ talk.location }}</div>
          {% endif %}
          {% if talk.description %}
          <div class="cv-item-detail">{{ talk.description }}</div>
          {% endif %}
        </div>
      </li>
      {% endfor %}
    </ul>
  </div>
  {% endif %}
  
  {% if cv.teaching.size > 0 %}
  <!-- Teaching -->
  <div class="cv-section">
    <h2>Teaching</h2>
    <ul class="cv-list">
      {% for teaching in cv.teaching %}
      <li class="cv-item">
        <div class="cv-item-header">
          <div class="cv-item-title">{{ teaching.course }}</div>
          <div class="cv-item-date">{{ teaching.date | slice: 0, 4 }}</div>
        </div>
        <div class="cv-item-content">
          <div class="cv-item-subtitle">{{ teaching.institution }}</div>
          {% if teaching.role %}
          <div class="cv-item-detail">Role: {{ teaching.role }}</div>
          {% endif %}
          {% if teaching.description %}
          <div class="cv-item-detail">{{ teaching.description }}</div>
          {% endif %}
        </div>
      </li>
      {% endfor %}
    </ul>
  </div>
  {% endif %}
  
  {% if cv.portfolio.size > 0 %}
  <!-- Portfolio -->
  <div class="cv-section">
    <h2>Portfolio</h2>
    <ul class="cv-list">
      {% for item in cv.portfolio %}
      <li class="cv-item">
        <div class="cv-item-header">
          <div class="cv-item-title">{{ item.name }}</div>
          <div class="cv-item-date">{{ item.date | slice: 0, 4 }}</div>
        </div>
        <div class="cv-item-content">
          <div class="cv-item-subtitle">{{ item.category | capitalize }}</div>
          {% if item.description %}
          <div class="cv-item-detail">{{ item.description }}</div>
          {% endif %}
          {% if item.url %}
          <div class="cv-item-detail">
            <a href="{{ item.url }}" target="_blank">View Project</a>
          </div>
          {% endif %}
        </div>
      </li>
      {% endfor %}
    </ul>
  </div>
  {% endif %}
  
  {% if cv.languages.size > 0 %}
  <!-- Languages -->
  <div class="cv-section">
    <h2>Languages</h2>
    <ul class="cv-list">
      {% for language in cv.languages %}
      <li class="cv-item">
        <div class="cv-item-content">
          <div class="cv-item-title">{{ language.language }}</div>
          <div class="cv-item-detail">{{ language.fluency }}</div>
        </div>
      </li>
      {% endfor %}
    </ul>
  </div>
  {% endif %}
  
  {% if cv.interests.size > 0 %}
  <!-- Interests -->
  <div class="cv-section">
    <h2>Interests</h2>
    <ul class="cv-list">
      {% for interest in cv.interests %}
      <li class="cv-item">
        <div class="cv-item-content">
          <div class="cv-item-title">{{ interest.name }}</div>
          {% if interest.keywords.size > 0 %}
          <div class="cv-item-detail">{{ interest.keywords | join: ", " }}</div>
          {% endif %}
        </div>
      </li>
      {% endfor %}
    </ul>
  </div>
  {% endif %}
  
  {% if cv.references.size > 0 %}
  <!-- References -->
  <div class="cv-section">
    <h2>References</h2>
    <ul class="cv-list">
      {% for reference in cv.references %}
      <li class="cv-item">
        <div class="cv-item-content">
          <div class="cv-item-title">{{ reference.name }}</div>
          {% if reference.reference %}
          <div class="cv-item-detail">{{ reference.reference }}</div>
          {% endif %}
        </div>
      </li>
      {% endfor %}
    </ul>
  </div>
  {% endif %}
</div>


================================================
FILE: _includes/feature_row
================================================
{% include base_path %}

{% if include.id %}
  {% assign feature_row = page.[include.id] %}
{% else %}
  {% assign feature_row = page.feature_row %}
{% endif %}

<div class="feature__wrapper">

  {% for f in feature_row %}

    {% if f.url contains "://" %}
      {% capture f_url %}{{ f.url }}{% endcapture %}
    {% else %}
      {% capture f_url %}{{ f.url | prepend: base_path }}{% endcapture %}
    {% endif %}

    <div class="feature__item{% if include.type %}--{{ include.type }}{% endif %}">
      <div class="archive__item">
        {% if f.image_path %}
          <div class="archive__item-teaser">
            <img src=
              {% if f.image_path contains "://" %}
                "{{ f.image_path }}"
              {% else %}
                "{{ f.image_path | prepend: "/images/" | prepend: base_path }}"
              {% endif %}
            alt="{% if f.alt %}{{ f.alt }}{% endif %}">
          </div>
        {% endif %}

        <div class="archive__item-body">
          {% if f.title %}
            <h2 class="archive__item-title">{{ f.title }}</h2>
          {% endif %}

          {% if f.excerpt %}
            <div class="archive__item-excerpt">
              {{ f.excerpt | markdownify }}
            </div>
          {% endif %}

          {% if f.url %}
            <p><a href="{{ f_url }}" class="btn {{ f.btn_class }}">{{ f.btn_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
          {% endif %}
        </div>
      </div>
    </div>
  {% endfor %}

</div>

================================================
FILE: _includes/footer/custom.html
================================================
<!-- start custom footer snippets -->

<a href="/sitemap/">Sitemap</a>

<!-- Support for MatJax -->
<script defer src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
<script defer src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" id="MathJax-script"></script>

<!-- Support for Mermaid -->
<script type="module">
    import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
    mermaid.initialize({startOnLoad:true, theme:'default'});
    await mermaid.run({querySelector:'code.language-mermaid'});
</script>

<!-- end custom footer snippets -->


================================================
FILE: _includes/footer.html
================================================
{% include base_path %}

{% if site.author.github or site.author.bitbucket or site.atom_feed.hide != true %}
<div class="page__footer-follow">
  <ul class="social-icons">
    {% if site.data.ui-text[site.locale].follow_label %}
      <li><strong>{{ site.data.ui-text[site.locale].follow_label }}</strong></li>
    {% endif %}
    {% if site.author.github %}
      <li><a href="https://github.com/{{ site.author.github }}"><i class="fab fa-github" aria-hidden="true"></i> GitHub</a></li>
    {% endif %}
    {% if site.author.bitbucket %}
      <li><a href="https://bitbucket.org/{{ site.author.bitbucket }}"><i class="fab fa-bitbucket" aria-hidden="true"></i> Bitbucket</a></li>
    {% endif %}
    {% if site.atom_feed.hide != true %}
    <li><a href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ base_path }}/feed.xml{% endif %}"><i class="fa fa-fw fa-rss-square" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].feed_label | default: "Feed" }}</a></li>
    {% endif %}
  </ul>
</div>
{% endif %}

<div class="page__footer-copyright">
  &copy; {{ site.time | date: '%Y' }} {{ site.name | default: site.title }}, {{ site.data.ui-text[site.locale].powered_by | default: "Powered by" }} <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> &amp; <a href="https://github.com/academicpages/academicpages.github.io">AcademicPages</a>, a fork of <a href="https://mademistakes.com/work/minimal-mistakes-jekyll-theme/" rel="nofollow">Minimal Mistakes</a>.<br />
  Site last updated {{ "now" | date: '%Y-%m-%d' }}
</div>


================================================
FILE: _includes/gallery
================================================
{% include base_path %}

{% if include.id %}
  {% assign gallery = page.[include.id] %}
{% else %}
  {% assign gallery = page.gallery %}
{% endif %}

{% if gallery.size == 2 %}
  {% assign gallery_layout = 'half' %}
{% elsif gallery.size >= 3 %}
  {% assign gallery_layout = 'third' %}
{% else %}
  {% assign gallery_layout = '' %}
{% endif %}

<figure class="{{ gallery_layout }} {{ include.class }}">
  {% for img in gallery %}
    {% if img.url %}
      <a href=
        {% if img.url contains "://" %}
          "{{ img.url }}"
        {% else %}
          "{{ img.url | prepend: "/images/" | prepend: base_path }}"
        {% endif %}
        {% if img.title %}title="{{ img.title }}"{% endif %}
      >
        <img src=
          {% if img.image_path contains "://" %}
            "{{ img.image_path }}"
          {% else %}
            "{{ img.image_path | prepend: "/images/" | prepend: base_path }}"
          {% endif %}
          alt="{% if img.alt %}{{ img.alt }}{% endif %}">
      </a>
    {% else %}
      <img src=
        {% if img.image_path contains "://" %}
          "{{ img.image_path }}"
        {% else %}
          "{{ img.image_path | prepend: "/images/" | prepend: base_path }}"
        {% endif %}
        alt="{% if img.alt %}{{ img.alt }}{% endif %}">
    {% endif %}
  {% endfor %}
  {% if include.caption %}
    <figcaption>{{ include.caption | markdownify | remove: "<p>" | remove: "</p>" }}</figcaption>
  {% endif %}
</figure>

================================================
FILE: _includes/group-by-array
================================================
<!--
# Jekyll Group-By-Array 0.1.0
# https://github.com/mushishi78/jekyll-group-by-array
# © 2015 Max White <mushishi78@gmail.com>
# MIT License
-->

<!-- Initialize -->
{% assign __empty_array = '' | split: ',' %}
{% assign group_names = __empty_array %}
{% assign group_items = __empty_array %}

<!-- Map -->
{% assign __names =  include.collection | map: include.field %}

<!-- Flatten -->
{% assign __names =  __names | join: ',' | join: ',' | split: ',' %}

<!-- Uniq -->
{% assign __names =  __names | sort %}
{% for name in __names | sort %}

<!-- If not equal to previous then it must be unique as sorted -->
{% unless name == previous %}

<!-- Push to group_names -->
{% assign group_names = group_names | push: name %}
{% endunless %}

{% assign previous = name %}
{% endfor %}


<!-- group_items -->
{% for name in group_names %}

<!-- Collect if contains -->
{% assign __item = __empty_array %}
{% for __element in include.collection %}
{% if __element[include.field] contains name %}
{% assign __item = __item | push: __element %}
{% endif %}
{% endfor %}

<!-- Push to group_items -->
{% assign group_items = group_items | push: __item %}
{% endfor %}

================================================
FILE: _includes/head/custom.html
================================================
{% include base_path %}

<!-- start custom head snippets -->

<!-- Support for Academicons -->
<link rel="stylesheet" href="{{ base_path }}/assets/css/academicons.css"/>

<!-- favicon from https://commons.wikimedia.org/wiki/File:OOjs_UI_icon_academic-progressive.svg -->
<link rel="apple-touch-icon" sizes="180x180" href="{{ base_path }}/images/apple-touch-icon-180x180.png"/>
<link rel="icon" type="image/svg+xml" href="{{ base_path }}/images/favicon.svg"/>
<link rel="icon" type="image/png" href="{{ base_path }}/images/favicon-32x32.png" sizes="32x32"/>
<link rel="icon" type="image/png" href="{{ base_path }}/images/favicon-192x192.png" sizes="192x192"/>
<link rel="manifest" href="{{ base_path }}/images/manifest.json"/>
<link rel="icon" href="/images/favicon.ico"/>
<meta name="theme-color" content="#ffffff"/>

<!-- end custom head snippets -->


================================================
FILE: _includes/head.html
================================================
{% include base_path %}

<meta charset="utf-8">

{% include seo.html %}

<link href="{% if site.atom_feed.path %}{{ site.atom_feed.path }}{% else %}{{ base_path }}/feed.xml{% endif %}" type="application/atom+xml" rel="alternate" title="{{ site.title }} Feed">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<script>
  document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
</script>

<!-- For all browsers -->
<link rel="stylesheet" href="{{ base_path }}/assets/css/main.css">


================================================
FILE: _includes/masthead.html
================================================
{% include base_path %}
<div class="masthead">
  <div class="masthead__inner-wrap">
    <div class="masthead__menu">
      <nav id="site-nav" class="greedy-nav">
        <button><span class="navicon"></span></button>
        <ul class="visible-links">
          <li class="masthead__menu-item masthead__menu-item--lg persist {% if page.url == '/' or page.url == '/index.html' %}selected{% endif %}">
            <a href="{{ base_path }}/">{{ site.title }}</a>
          </li>
          {% for link in site.data.navigation.main %}
            {% if link.url contains 'http' %}
              {% assign domain = '' %}
            {% else %}
              {% assign domain = base_path %}
            {% endif %}
            <li class="masthead__menu-item {% if page.url contains link.url and link.url != '/' %}selected{% endif %}">
              <a href="{{ domain }}{{ link.url }}">{{ link.title }}</a>
            </li>
          {% endfor %}
          <li id="theme-toggle" class="masthead__menu-item persist tail">
            <a role="button" aria-labelledby="theme-icon"><i id="theme-icon" class="fa-solid fa-sun" aria-hidden="true" title="toggle theme"></i></a>
          </li>
        </ul>
        <ul class="hidden-links hidden"></ul>
      </nav>
    </div>
  </div>
</div>


================================================
FILE: _includes/nav_list
================================================
{% include base_path %}
{% assign navigation = site.data.navigation[include.nav] %}

<nav class="nav__list">
  {% if page.sidebar.title %}<header><h4 class="nav__title" style="padding: 0;">{{ page.sidebar.title }}</h4></header>{% endif %}
  <ul>
    {% for nav in navigation %}
      <li>
        {% if nav.url %}
          {% comment %}internal/external URL check{% endcomment %}
          {% if nav.url contains "://" %}
            {% assign domain = "" %}
          {% else %}
            {% assign domain = base_path %}
          {% endif %}

          <a href="{{ domain }}{{ nav.url }}"><span class="nav__sub-title">{{ nav.title }}</span></a>
        {% else %}
          <span class="nav__sub-title">{{ nav.title }}</span>
        {% endif %}

        {% if nav.children != null %}
        <ul>
          {% for child in nav.children %}
            {% comment %}internal/external URL check{% endcomment %}
            {% if child.url contains "://" %}
              {% assign domain = "" %}
            {% else %}
              {% assign domain = base_path %}
            {% endif %}

            {% comment %}set "active" class on current page{% endcomment %}
            {% if child.url == page.url %}
              {% assign active = "active" %}
            {% else %}
              {% assign active = "" %}
            {% endif %}

            <li><a href="{{ domain }}{{ child.url }}" class="{{ active }}">{{ child.title }}</a></li>
          {% endfor %}
        </ul>
        {% endif %}
      </li>
    {% endfor %}
  </ul>
</nav>

================================================
FILE: _includes/page__hero.html
================================================
{% include base_path %}

{% if page.header.image contains "://" %}
  {% capture img_path %}{{ page.header.image }}{% endcapture %}
{% else %}
  {% capture img_path %}{{ page.header.image | prepend: "/images/" | prepend: base_path }}{% endcapture %}
{% endif %}

{% if page.header.cta_url contains "://" %}
  {% capture cta_path %}{{ page.header.cta_url }}{% endcapture %}
{% else %}
  {% capture cta_path %}{{ page.header.cta_url | prepend: base_path }}{% endcapture %}
{% endif %}

{% if page.header.overlay_image contains "://" %}
  {% capture overlay_img_path %}{{ page.header.overlay_image }}{% endcapture %}
{% elsif page.header.overlay_image %}
  {% capture overlay_img_path %}{{ page.header.overlay_image | prepend: "/images/" | prepend: base_path }}{% endcapture %}
{% endif %}

{% if page.header.overlay_filter contains "rgba" %}
  {% capture overlay_filter %}{{ page.header.overlay_filter }}{% endcapture %}
{% elsif page.header.overlay_filter %}
  {% capture overlay_filter %}rgba(0, 0, 0, {{ page.header.overlay_filter }}){% endcapture %}
{% endif %}

<div class="page__hero{% if page.header.overlay_color or page.header.overlay_image %}--overlay{% endif %}"
  style="{% if page.header.overlay_color %}background-color: {{ page.header.overlay_color | default: 'transparent' }};{% endif %} {% if overlay_img_path %}background-image: {% if overlay_filter %}linear-gradient({{ overlay_filter }}, {{ overlay_filter }}), {% endif %}url('{{ overlay_img_path }}');{% endif %}"
>
  {% if page.header.overlay_color or page.header.overlay_image %}
    <div class="wrapper">
      <h1 class="page__title" itemprop="headline">
        {% if paginator %}
          {{ site.title }}{% unless paginator.page == 1 %} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}
        {% else %}
          {{ page.title | default: site.title | markdownify | remove: "<p>" | remove: "</p>" }}
        {% endif %}
      </h1>
      {% if page.excerpt %}
        <p class="page__lead">{{ page.excerpt | markdownify | remove: "<p>" | remove: "</p>" }}</p>
      {% endif %}
      {% if site.read_time and page.read_time %}
        <p class="page__meta"><i class="fa fa-clock" aria-hidden="true"></i> {% include read-time.html %}</p>
      {% endif %}
      {% if page.header.cta_url %}
        <p><a href="{{ cta_path }}" class="btn btn--light-outline btn--large">{{ page.header.cta_label | default: site.data.ui-text[site.locale].more_label | default: "Learn More" }}</a></p>
      {% endif %}
    </div>
  {% else %}
    <img src="{{ img_path }}" alt="{{ page.title }}" class="page__hero-image">
  {% endif %}
  {% if page.header.caption %}
    <span class="page__hero-caption">{{ page.header.caption | markdownify | remove: "<p>" | remove: "</p>" }}</span>
  {% endif %}
</div>

================================================
FILE: _includes/page__taxonomy.html
================================================
{% include base_path %}

{% if site.tag_archive.type and page.tags[0] %}
  {% include tag-list.html %}
{% endif %}

{% if site.category_archive.type and page.categories[0] and page.collection != 'publications' %}
  {% include category-list.html %}
{% endif %}

================================================
FILE: _includes/paginator.html
================================================
{% include base_path %}

{% if paginator.total_pages > 1 %}
<nav class="pagination">
  <ul>
    {% comment %} Link for previous page {% endcomment %}
    {% if paginator.previous_page %}
      {% if paginator.previous_page == 1 %}
        <li><a href="{{ base_path }}/">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
      {% else %}
        <li><a href="{{ base_path }}/page{{ paginator.previous_page }}/">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a></li>
      {% endif %}
    {% else %}
      <li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</span></a></li>
    {% endif %}

    {% comment %} First page {% endcomment %}
    {% if paginator.page == 1 %}
      <li><a href="#" class="disabled current">1</a></li>
    {% else %}
      <li><a href="{{ base_path }}/">1</a></li>
    {% endif %}

    {% assign page_start = 2 %}
    {% if paginator.page > 4 %}
      {% assign page_start = paginator.page | minus: 2 %}
      {% comment %} Ellipsis for truncated links {% endcomment %}
      <li><a href="#" class="disabled">&hellip;</a></li>
    {% endif %}

    {% assign page_end = paginator.total_pages | minus: 1 %}
    {% assign pages_to_end = paginator.total_pages | minus: paginator.page %}
    {% if pages_to_end > 4 %}
      {% assign page_end = paginator.page | plus: 2 %}
    {% endif %}

    {% for index in (page_start..page_end) %}
      {% if index == paginator.page %}
        <li><a href="{{ base_path }}/page{{ index }}/" class="disabled current">{{ index }}</a></li>
      {% else %}
        {% comment %} Distance from current page and this link {% endcomment %}
        {% assign dist = paginator.page | minus: index %}
        {% if dist < 0 %}
          {% comment %} Distance must be a positive value {% endcomment %}
          {% assign dist = 0 | minus: dist %}
        {% endif %}
        <li><a href="{{ base_path }}/page{{ index }}/">{{ index }}</a></li>
      {% endif %}
    {% endfor %}

    {% comment %} Ellipsis for truncated links {% endcomment %}
    {% if pages_to_end > 3 %}
      <li><a href="#" class="disabled">&hellip;</a></li>
    {% endif %}

    {% if paginator.page == paginator.total_pages %}
      <li><a href="#" class="disabled current">{{ paginator.page }}</a></li>
    {% else %}
      <li><a href="{{ base_path }}/page{{ paginator.total_pages }}/">{{ paginator.total_pages }}</a></li>
    {% endif %}

    {% comment %} Link next page {% endcomment %}
    {% if paginator.next_page %}
      <li><a href="{{ base_path }}/page{{ paginator.next_page }}/">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a></li>
    {% else %}
      <li><a href="#" class="disabled"><span aria-hidden="true">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</span></a></li>
    {% endif %}
  </ul>
</nav>
{% endif %}

================================================
FILE: _includes/post_pagination.html
================================================
{% include base_path %}

{% if page.previous or page.next %}
  <nav class="pagination">
    {% if page.previous %}
      <a href="{{ base_path }}{{ page.previous.url }}" class="pagination--pager" title="{{ page.previous.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
    {% else %}
      <a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_previous | default: "Previous" }}</a>
    {% endif %}
    {% if page.next %}
      <a href="{{ base_path }}{{ page.next.url }}" class="pagination--pager" title="{{ page.next.title | markdownify | strip_html }}">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
    {% else %}
      <a href="#" class="pagination--pager disabled">{{ site.data.ui-text[site.locale].pagination_next | default: "Next" }}</a>
    {% endif %}
  </nav>
{% endif %}

================================================
FILE: _includes/read-time.html
================================================
{% if post.read_time %}
  {% assign words = post.content | strip_html | number_of_words %}
{% elsif page.read_time %}
  {% assign words = page.content | strip_html | number_of_words %}
{% endif %}

{% if site.words_per_minute %}
  {% if words < 180 %}
	  {{ site.data.ui-text[site.locale].less_than | default: "less than" }} 1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
	{% elsif words < 360 %}
	  1 {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
	{% else %}
	  {{ words | divided_by:site.words_per_minute }} {{ site.data.ui-text[site.locale].minute_read | default: "minute read" }}
	{% endif %}
{% else %}
  {{ site.data.ui-text[site.locale].undefined_wpm | "Undefined parameter words_per_minute at _config.yml" }}
{% endif %}

================================================
FILE: _includes/scripts.html
================================================
<script type="module" src="{{ base_path }}/assets/js/main.min.js"></script>

{% include analytics.html %}


================================================
FILE: _includes/seo.html
================================================
{% include base_path %}

<!-- begin SEO -->
{% if site.url %}
  {% assign seo_url = site.url | append: site.baseurl %}
{% endif %}
{% assign seo_url = seo_url | default: site.github.url %}

{% if page.title %}
  {% assign seo_title = page.title | append: " " | append: site.title_separator | append: " " | append: site.title %}
{% endif %}

{% if seo_title %}
  {% assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once %}
{% endif %}

{% if site.url %}
  {% assign canonical_url = page.url | replace: "index.html", "" | prepend: site.url %}
{% endif %}

<title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ site.title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>

{% assign seo_description = page.description | default: page.excerpt | default: site.description %}
{% if seo_description %}
  {% assign seo_description = seo_description | markdownify | strip_html | strip_newlines | escape_once %}
{% endif %}
<meta name="description" content="{{ seo_description }}">

{% assign seo_author = page.author | default: page.author[0] | default: site.author[0] %}
{% if seo_author %}
  {% if seo_author.twitter %}
    {% assign seo_author_twitter = seo_author.twitter %}
  {% else %}
    {% if site.data.authors and site.data.authors[seo_author] %}
      {% assign seo_author_twitter = site.data.authors[seo_author].twitter  %}
    {% else %}
      {% assign seo_author_twitter = seo_author  %}
    {% endif %}
  {% endif %}
  {% assign seo_author_twitter = seo_author_twitter | replace: "@", "" %}
{% endif %}

{% if page.date %}
  <meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}">
{% endif %}

{% if seo_url %}
  <link rel="canonical" href="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
{% endif %}

{% if site.twitter.username %}
  <meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
  <meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
  <meta name="twitter:description" content="{{ seo_description }}">
  <meta name="twitter:url" content="{{ canonical_url }}">

  {% if page.header.image %}
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:image" content="{% if page.header.image contains "://" %}{{ page.header.image }}{% else %}{{ page.header.image | prepend: "/images/" | prepend: base_path }}{% endif %}">
  {% else %}
    <meta name="twitter:card" content="summary">
    {% if site.og_image %}
      <meta name="twitter:image" content="{{ site.og_image | prepend: "/images/" | prepend: base_path }}">
    {% endif %}
  {% endif %}

  {% if seo_author_twitter %}
    <meta name="twitter:creator" content="@{{ seo_author_twitter }}">
  {% endif %}
{% endif %}

{% if site.facebook %}
  {% if site.facebook.publisher %}
    <meta property="article:publisher" content="{{ site.facebook.publisher }}">
  {% endif %}

  {% if site.facebook.app_id %}
    <meta property="fb:app_id" content="{{ site.facebook.app_id }}">
  {% endif %}
{% endif %}

{% if paginator.previous_page %}
  <link rel="prev" href="{{ paginator.previous_page_path | prepend: seo_url }}">
{% endif %}
{% if paginator.next_page %}
  <link rel="next" href="{{ paginator.next_page_path | prepend: seo_url }}">
{% endif %}

{% if site.social %}
  <script type="application/ld+json">
    {
      "@context" : "http://schema.org",
      "@type" : "{% if site.social.type %}{{ site.social.type }}{% else %}Person{% endif %}",
      "name" : "{{ site.social.name | default: site.name }}",
      "url" : {{ seo_url | jsonify }},
      "sameAs" : {{ site.social.links | jsonify }}
    }
  </script>
{% endif %}

{% if site.google_site_verification %}
  <meta name="google-site-verification" content="{{ site.google_site_verification }}" />
{% endif %}
{% if site.bing_site_verification %}
  <meta name="msvalidate.01" content="{{ site.bing_site_verification }}">
{% endif %}
{% if site.alexa_site_verification %}
  <meta name="alexaVerifyID" content="{{ site.alexa_site_verification }}">
{% endif %}
{% if site.yandex_site_verification %}
  <meta name="yandex-verification" content="{{ site.yandex_site_verification }}">
{% endif %}
<!-- end SEO -->

<!-- Open Graph protocol data (https://ogp.me/), used by social media -->
<meta property="og:locale" content="{{ site.locale | default: "en" }}">
<meta property="og:site_name" content="{{ site.title }}"> 
<meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
{% if page.date %}
  <meta property="og:type" content="article">
{% endif %}
{% if page.excerpt %}
  <meta property="og:description" name="description" content="{{ seo_description }}">
{% elsif site.og_description %}
  <meta property="og:description" name="description" content="{{ site.og_description }}">
{% endif %}
{% if seo_url %}
  <meta property="og:url" content="{{ page.url | prepend: seo_url | replace: "/index.html", "/" }}">
{% endif %}

{% if site.og_image %}
  <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "Organization",
      "url": {{ seo_url | jsonify }},
      "logo": {{ site.og_image | prepend: "/images/" | prepend: base_path | jsonify }}
    }
  </script>
{% endif %}

{% if page.header.image %}
  <meta property="og:image" content="{% if page.header.image contains "://" %}{{ page.header.image }}{% else %}{{ page.header.image | prepend: "/images/" | prepend: base_path }}{% endif %}">
{% elsif page.header.overlay_image %}
  <meta property="og:image" content="{% if page.header.overlay_image contains "://" %}{{ page.header.overlay_image }}{% else %}{{ page.header.overlay_image | prepend: "/images/" | prepend: base_path }}{% endif %}">
{% endif %}
<!-- end Open Graph protocol -->

================================================
FILE: _includes/sidebar.html
================================================
{% include base_path %}

{% if page.author_profile or layout.author_profile or page.sidebar %}
  <div class="sidebar sticky">
  {% if page.author_profile or layout.author_profile %}{% include author-profile.html %}{% endif %}
  {% if page.sidebar %}
    {% for s in page.sidebar %}
      {% if s.image %}
        <img src=
        {% if s.image contains "://" %}
          "{{ s.image }}"
        {% else %}
          "{{ s.image | prepend: "/images/" | prepend: base_path }}"
        {% endif %}
        alt="{% if s.image_alt %}{{ s.image_alt }}{% endif %}">
      {% endif %}
      {% if s.title %}<h3>{{ s.title }}</h3>{% endif %}
      {% if s.text %}{{ s.text | markdownify }}{% endif %}
    {% endfor %}
    {% if page.sidebar.nav %}
      {% include nav_list nav=page.sidebar.nav %}
    {% endif %}
  {% endif %}
  </div>
{% endif %}

================================================
FILE: _includes/social-share.html
================================================
{% include base_path %}

<section class="page__share">
  {% if site.data.ui-text[site.locale].share_on_label %}
    <h4 class="page__share-title">{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}</h4>
  {% endif %}

  <a href="https://bsky.app/intent/compose?text={{ base_path }}{{ page.url }}" class="btn btn--bluesky" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Bluesky"><i class="fab fa-bluesky" aria-hidden="true"></i><span> Bluesky</span></a>

  <a href="https://www.facebook.com/sharer/sharer.php?u={{ base_path }}{{ page.url }}" class="btn btn--facebook" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Facebook"><i class="fab fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>

  <a href="https://www.linkedin.com/shareArticle?mini=true&url={{ base_path }}{{ page.url }}" class="btn btn--linkedin" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} LinkedIn"><i class="fab fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>

  <a href="https://www.addtoany.com/add_to/mastodon?linkurl={{  base_path | append: page.url | url_encode }}" class="btn btn--mastodon" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} Mastodon"><i class="fab fa-mastodon" aria-hidden="true"></i><span> Mastodon</span></a>

  <a href="https://x.com/intent/post?text={{ base_path }}{{ page.url }}" class="btn btn--x" title="{{ site.data.ui-text[site.locale].share_on_label | default: 'Share on' }} X"><i class="fab fa-x-twitter" aria-hidden="true"></i><span> X (formerly Twitter)</span></a>
</section>


================================================
FILE: _includes/tag-list.html
================================================
{% include base_path %}

{% case site.tag_archive.type %}
  {% when "liquid" %}
    {% assign path_type = "#" %}
  {% when "jekyll-archives" %}
    {% assign path_type = nil %}
{% endcase %}

{% if site.tag_archive.path %}
  {% comment %}
    <!-- Sort alphabetically regardless of case e.g. a B c d E -->
    <!-- modified from http://www.codeofclimber.ru/2015/sorting-site-tags-in-jekyll/ -->
  {% endcomment %}
  {% capture page_tags %}{% for tag in page.tags %}{{ tag | downcase }}#{{ tag }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
  {% assign tag_hashes = (page_tags | split: ',' | sort:0) %}

  <p class="page__taxonomy">
    <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} </strong>
    <span itemprop="keywords">
    {% for hash in tag_hashes %}
      {% assign keyValue = hash | split: '#' %}
      {% capture tag_word %}{{ keyValue[1] | strip_newlines }}{% endcapture %}
      <a href="{{ base_path }}{{ tag_word | slugify | prepend: path_type | prepend: site.tag_archive.path }}" class="page__taxonomy-item" rel="tag">{{ tag_word }}</a>{% unless forloop.last %}<span class="sep">, </span>{% endunless %}
    {% endfor %}
    </span>
  </p>
{% endif %}

================================================
FILE: _includes/toc
================================================
<aside class="sidebar__right">
<nav class="toc" markdown="1">
<header><h4 class="nav__title"><i class="fa fa-{{ include.icon | default: 'file-text' }}"></i> {{ include.title | default: site.data.ui-text[site.locale].toc_label }}</h4></header>
*  Auto generated table of contents
{:toc .toc__menu}
</nav>
</aside>

================================================
FILE: _layouts/archive-taxonomy.html
================================================
---
layout: default
author_profile: false
---

<div id="main" role="main">
  {% include sidebar.html %}

  <div class="archive">
    <h1 class="page__title">{{ page.title }}</h1>
    {% include base_path %}
    {% for post in page.posts %}
      {% include archive-single.html %}
    {% endfor %}
  </div>
</div>

================================================
FILE: _layouts/archive.html
================================================
---
layout: default
---

{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
  {% include page__hero.html %}
{% endif %}

{% if page.url != "/" and site.breadcrumbs %}
  {% unless paginator %}
    {% include breadcrumbs.html %}
  {% endunless %}
{% endif %}

<div id="main" role="main">
  {% include sidebar.html %}

  <div class="archive">
    {% unless page.header.overlay_color or page.header.overlay_image %}
      <h1 class="page__title">{{ page.title }}</h1>
    {% endunless %}
    {{ content }}
  </div>
</div>


================================================
FILE: _layouts/compress.html
================================================
---
# Jekyll layout that compresses HTML
# v3.0.2
# https://jch.penibelst.de/
# © 2014–2015 Anatol Broder
# MIT License
---

{% capture _LINE_FEED %}
{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}


================================================
FILE: _layouts/cv-layout.html
================================================
---
layout: compress
---

{% include base_path %}

<!doctype html>
<html lang="{{ site.locale | slice: 0,2 | default: "en" }}" class="no-js">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %} | {{ site.name | default: site.title }}</title>
    {% include head.html %}
    {% include head/custom.html %}
    <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/cv-layout.css">
  </head>

  <body class="cv-layout">
    {% include browser-upgrade.html %}
    {% include masthead.html %}

    <div id="main" role="main">
      <div class="container">
        {{ content }}
      </div>
    </div>

    <div class="page__footer">
      <footer>
        {% include footer/custom.html %}
        {% include footer.html %}
      </footer>
    </div>

    {% include scripts.html %}

  </body>
</html>


================================================
FILE: _layouts/default.html
================================================
---
layout: compress
---

{% include base_path %}

<!doctype html>
<html lang="{{ site.locale | slice: 0,2 }}" class="no-js"{% if site.site_theme == "dark" %} data-theme="dark"{% endif %}>
  <head>
    {% include head.html %}
    {% include head/custom.html %}
  </head>

  <body>

    {% include browser-upgrade.html %}
    {% include masthead.html %}

    {{ content }}

    <div class="page__footer">
      <footer>
        {% include footer/custom.html %}
        {% include footer.html %}
      </footer>
    </div>

    {% include scripts.html %}

  </body>
</html>


================================================
FILE: _layouts/single.html
================================================
---
layout: default
---

{% include base_path %}

{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
  {% include page__hero.html %}
{% endif %}

{% if page.url != "/" and site.breadcrumbs %}
  {% unless paginator %}
    {% include breadcrumbs.html %}
  {% endunless %}
{% endif %}

<div id="main" role="main">
  {% include sidebar.html %}

  <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
    {% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
    {% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
    {% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
    {% if page.modified %}<meta itemprop="dateModified" content="{{ page.modified | date: "%B %d, %Y" }}">{% endif %}

    <div class="page__inner-wrap">
      {% unless page.header.overlay_color or page.header.overlay_image %}
        <header>
          {% if page.title %}<h1 class="page__title" itemprop="headline">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</h1>{% endif %}
          {% if page.read_time %}
            <p class="page__meta"><i class="fa fa-clock" aria-hidden="true"></i> {% include read-time.html %}</p>
          {% endif %}
        {% if page.modified %}
          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Published:" }}</strong> <time datetime="{{ page.modified | date: "%Y-%m-%d" }}">{{ page.modified | date: "%B %d, %Y" }}</time></p>
        {% endif %}
        
        {% if page.collection == 'teaching' %}
          <p> {{ page.type }}, <i>{{ page.venue }}</i>, {{ page.date | default: "1900-01-01" | date: "%Y" }} </p>
        {% elsif page.venue and page.date %}
          <p>Published in <i>{{ page.venue }}</i>, {{ page.date | default: "1900-01-01" | date: "%Y" }} </p>
        {% elsif page.date %}
          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> {{ site.data.ui-text[site.locale].date_label | default: "Published:" }}</strong> <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | default: "1900-01-01" | date: "%B %d, %Y" }}</time></p>
        {% endif %}    
        </header>
      {% endunless %}

      <section class="page__content" itemprop="text">
        {{ content }}

        {% if page.citation and page.paperurl and page.slidesurl and page.bibtexurl %}
          <p style="font-size: smaller">Recommended citation: {{ page.citation }}<br /><a href="{{ page.paperurl }}">Download Paper</a> | <a href="{{ page.slidesurl }}">Download Slides</a> | <a href="{{ page.bibtexurl }}">Download Bibtex</a></p>
        {% elsif page.citation and page.paperurl and page.slidesurl %}
          <p style="font-size: smaller">Recommended citation: {{ page.citation }}<br /><a href="{{ page.paperurl }}">Download Paper</a> | <a href="{{ page.slidesurl }}">Download Slides</a></p>
        {% elsif page.citation and page.paperurl and page.bibtexurl %}
          <p style="font-size: smaller">Recommended citation: {{ page.citation }}<br /><a href="{{ page.paperurl }}">Download Paper</a> | <a href="{{ page.bibtexurl }}">Download Bibtex</a></p>
        {% elsif page.citation and page.paperurl %}
          <p style="font-size: smaller">Recommended citation: {{ page.citation }}<br /><a href="{{ page.paperurl }}">Download Paper</a></p>
        {% elsif page.citation and page.slidesurl and page.bibtexurl %}
          <p style="font-size: smaller">Recommended citation: {{ page.citation }}<br /><a href="{{ page.slidesurl }}">Download Slides</a> | <a href="{{ page.bibtexurl }}">Download Bibtex</a></p>
        {% elsif page.citation and page.slidesurl %}
          <p style="font-size: smaller">Recommended citation: {{ page.citation }}<br /><a href="{{ page.slidesurl }}">Download Slides</a></p>
        {% elsif page.slidesurl and page.bibtexurl %}
          <p style="font-size: smaller"><a href="{{ page.slidesurl }}">Download Slides</a> | <a href="{{ page.bibtexurl }}">Download Bibtex</a></p>
        {% elsif page.paperurl and page.bibtexurl %}
          <p style="font-size: smaller"><a href="{{ page.paperurl }}">Download Paper</a> | <a href="{{ page.bibtexurl }}">Download Bibtex</a></p>
        {% elsif page.citation and page.bibtexurl %}
          <p style="font-size: smaller">Recommended citation: {{ page.citation }}<br /><a href="{{ page.bibtexurl }}">Download Bibtex</a></p>
        {% elsif page.citation %}
          <p style="font-size: smaller">Recommended citation: {{ page.citation }}</p>
        {% elsif page.slidesurl %}
          <p style="font-size: smaller"><a href="{{ page.slidesurl }}">Download Slides</a></p>
        {% elsif page.bibtexurl %}
          <p style="font-size: smaller"><a href="{{ page.bibtexurl }}">Download Bibtex</a></p>
        {% endif %}

        {% if page.link %}<div><a href="{{ page.link }}" class="btn">{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}</a></div>{% endif %}
      </section>

      <footer class="page__meta">
        {% if site.data.ui-text[site.locale].meta_label %}
          <h4 class="page__meta-title">{{ site.data.ui-text[site.locale].meta_label }}</h4>
        {% endif %}
        {% include page__taxonomy.html %}
      </footer>

      {% if page.share %}{% include social-share.html %}{% endif %}

      {% include post_pagination.html %}
    </div>

    {% if site.comments.provider and page.comments %}
      {% include comments.html %}
    {% endif %}
  </article>

  {% comment %}<!-- only show related on a post page when not disabled -->{% endcomment %}
  {% if page.id and page.related and site.related_posts.size > 0 %}
    <div class="page__related">
      {% if site.data.ui-text[site.locale].related_label %}
        <h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
      {% endif %}
      <div class="grid__wrapper">
        {% for post in site.related_posts limit:4 %}
          {% include archive-single.html type="grid" %}
        {% endfor %}
      </div>
    </div>
  {% endif %}
</div>


================================================
FILE: _layouts/splash.html
================================================
---
layout: default
---

{% include base_path %}

{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
  {% include page__hero.html %}
{% endif %}

<div id="main" role="main">
  <article class="splash" itemscope itemtype="http://schema.org/CreativeWork">
    {% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
    {% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
    {% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
    {% if page.modified %}<meta itemprop="dateModified" content="{{ page.modified | date: "%B %d, %Y" }}">{% endif %}

    <section class="page__content" itemprop="text">
      {{ content }}
    </section>
  </article>
</div>


================================================
FILE: _layouts/talk.html
================================================
---
layout: default
---

{% include base_path %}

{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
  {% include page__hero.html %}
{% endif %}

{% if page.url != "/" and site.breadcrumbs %}
  {% unless paginator %}
    {% include breadcrumbs.html %}
  {% endunless %}
{% endif %}

<div id="main" role="main">
  {% include sidebar.html %}

  <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
    {% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
    {% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
    {% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date: "%B %d, %Y" }}">{% endif %}
    {% if page.modified %}<meta itemprop="dateModified" content="{{ page.modified | date: "%B %d, %Y" }}">{% endif %}

    <div class="page__inner-wrap">
      {% unless page.header.overlay_color or page.header.overlay_image %}
        <header>
          {% if page.title %}<h1 class="page__title" itemprop="headline">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</h1>{% endif %}
          {% if page.read_time %}
            <p class="page__meta"><i class="fa fa-clock" aria-hidden="true"></i> {% include read-time.html %}</p>
          {% endif %}
        {% if page.modified %}
          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i>Date:</strong> <time datetime="{{ page.modified | date: "%Y-%m-%d" }}">{{ page.modified | date: "%B %d, %Y" }}</time></p>
        {% elsif page.date %}
          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i>Date:</strong> <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%B %d, %Y" }}</time></p>
        {% endif %}
        {% if page.talk_type %}<p>{{page.talk_type}} at {{ page.venue }},  {{page.location}} {% endif %}

        </header>
      {% endunless %}

      <section class="page__content" itemprop="text">
        {{ content }}
        {% if page.link %}<div><a href="{{ page.link }}" class="btn">{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}</a></div>{% endif %}
      </section>

      <footer class="page__meta">
        {% if site.data.ui-text[site.locale].meta_label %}
          <h4 class="page__meta-title">{{ site.data.ui-text[site.locale].meta_label }}</h4>
        {% endif %}
        {% include page__taxonomy.html %}
      </footer>

      {% if page.share %}{% include social-share.html %}{% endif %}

      {% include post_pagination.html %}
    </div>

    {% if site.comments.provider and page.comments %}
      {% include comments.html %}
    {% endif %}
  </article>

  {% comment %}<!-- only show related on a post page when not disabled -->{% endcomment %}
  {% if page.id and page.related and site.related_posts.size > 0 %}
    <div class="page__related">
      {% if site.data.ui-text[site.locale].related_label %}
        <h4 class="page__related-title">{{ site.data.ui-text[site.locale].related_label | default: "You May Also Enjoy" }}</h4>
      {% endif %}
      <div class="grid__wrapper">
        {% for post in site.related_posts limit:4 %}
          {% include archive-single.html type="grid" %}
        {% endfor %}
      </div>
    </div>
  {% endif %}
</div>


================================================
FILE: _pages/404.md
================================================
---
title: "Page Not Found"
sitemap: false
permalink: /404.html
---

Sorry, but the page you were trying to view does not exist.


================================================
FILE: _pages/about.md
================================================
---
permalink: /
title: "Academic Pages is a ready-to-fork GitHub Pages template for academic personal websites"
author_profile: true
redirect_from: 
  - /about/
  - /about.html
---

This is the front page of a website that is powered by the [Academic Pages template](https://github.com/academicpages/academicpages.github.io) and hosted on GitHub pages. [GitHub pages](https://pages.github.com) is a free service in which websites are built and hosted from code and data stored in a GitHub repository, automatically updating when a new commit is made to the repository. This template was forked from the [Minimal Mistakes Jekyll Theme](https://mmistakes.github.io/minimal-mistakes/) created by Michael Rose, and then extended to support the kinds of content that academics have: publications, talks, teaching, a portfolio, blog posts, and a dynamically-generated CV. Incidentally, these same features make it a great template for anyone that needs to show off a professional template!

 You can fork [this template](https://github.com/academicpages/academicpages.github.io) right now, modify the configuration and Markdown files, add your own PDFs and other content, and have your own site for free, with no ads!

A data-driven personal website
======
Like many other Jekyll-based GitHub Pages templates, Academic Pages makes you separate the website's content from its form. The content & metadata of your website are in structured Markdown files, while various other files constitute the theme, specifying how to transform that content & metadata into HTML pages. You keep these various Markdown (.md), YAML (.yml), HTML, and CSS files in a public GitHub repository. Each time you commit and push an update to the repository, the [GitHub pages](https://pages.github.com/) service creates static HTML pages based on these files, which are hosted on GitHub's servers free of charge.

Many of the features of dynamic content management systems (like Wordpress) can be achieved in this fashion, using a fraction of the computational resources and with far less vulnerability to hacking and DDoSing. You can also modify the theme to your heart's content without touching the content of your site. If you get to a point where you've broken something in Jekyll/HTML/CSS beyond repair, your Markdown files describing your talks, publications, etc. are safe. You can rollback the changes or even delete the repository and start over - just be sure to save the Markdown files! You can also write scripts that process the structured data on the site, such as [this one](https://github.com/academicpages/academicpages.github.io/blob/master/talkmap.ipynb) that analyzes metadata in pages about talks to display [a map of every location you've given a talk](https://academicpages.github.io/talkmap.html).

For those users that need more advanced functionality, the template also supports the following popular tools:
- [MathJax](https://www.mathjax.org/) for mathematical equations
- [Mermaid](https://mermaid.js.org/) for diagraming
- [Plotly](https://plotly.com/javascript/) for plotting

Getting started
======
1. Register a GitHub account if you don't have one and confirm your e-mail (required!)
1. Fork [this template](https://github.com/academicpages/academicpages.github.io) by clicking the "Use this template" button in the top right. 
1. Go to the repository's settings (rightmost item in the tabs that start with "Code", should be below "Unwatch"). Rename the repository "[your GitHub username].github.io", which will also be your website's URL.
1. Set site-wide configuration and create content & metadata (see below -- also see [this set of diffs](https://archive.is/3TPas) showing what files were changed to set up [an example site](https://getorg-testacct.github.io) for a user with the username "getorg-testacct")
1. Upload any files (like PDFs, .zip files, etc.) to the files/ directory. They will appear at https://[your GitHub username].github.io/files/example.pdf.  
1. Check status by going to the repository settings, in the "GitHub pages" section

Site-wide configuration
------
The main configuration file for the site is in the base directory in [_config.yml](https://github.com/academicpages/academicpages.github.io/blob/master/_config.yml), which defines the content in the sidebars and other site-wide features. You will need to replace the default variables with ones about yourself and your site's github repository. The configuration file for the top menu is in [_data/navigation.yml](https://github.com/academicpages/academicpages.github.io/blob/master/_data/navigation.yml). For example, if you don't have a portfolio or blog posts, you can remove those items from that navigation.yml file to remove them from the header. 

Create content & metadata
------
For site content, there is one Markdown file for each type of content, which are stored in directories like _publications, _talks, _posts, _teaching, or _pages. For example, each talk is a Markdown file in the [_talks directory](https://github.com/academicpages/academicpages.github.io/tree/master/_talks). At the top of each Markdown file is structured data in YAML about the talk, which the theme will parse to do lots of cool stuff. The same structured data about a talk is used to generate the list of talks on the [Talks page](https://academicpages.github.io/talks), each [individual page](https://academicpages.github.io/talks/2012-03-01-talk-1) for specific talks, the talks section for the [CV page](https://academicpages.github.io/cv), and the [map of places you've given a talk](https://academicpages.github.io/talkmap.html) (if you run this [python file](https://github.com/academicpages/academicpages.github.io/blob/master/talkmap.py) or [Jupyter notebook](https://github.com/academicpages/academicpages.github.io/blob/master/talkmap.ipynb), which creates the HTML for the map based on the contents of the _talks directory).

**Markdown generator**

The repository includes [a set of Jupyter notebooks](https://github.com/academicpages/academicpages.github.io/tree/master/markdown_generator
) that converts a CSV containing structured data about talks or presentations into individual Markdown files that will be properly formatted for the Academic Pages template. The sample CSVs in that directory are the ones I used to create my own personal website at stuartgeiger.com. My usual workflow is that I keep a spreadsheet of my publications and talks, then run the code in these notebooks to generate the Markdown files, then commit and push them to the GitHub repository.

How to edit your site's GitHub repository
------
Many people use a git client to create files on their local computer and then push them to GitHub's servers. If you are not familiar with git, you can directly edit these configuration and Markdown files directly in the github.com interface. Navigate to a file (like [this one](https://github.com/academicpages/academicpages.github.io/blob/master/_talks/2012-03-01-talk-1.md) and click the pencil icon in the top right of the content preview (to the right of the "Raw | Blame | History" buttons). You can delete a file by clicking the trashcan icon to the right of the pencil icon. You can also create new files or upload files by navigating to a directory and clicking the "Create new file" or "Upload files" buttons. 

Example: editing a Markdown file for a talk
![Editing a Markdown file for a talk](/images/editing-talk.png)

For more info
------
More info about configuring Academic Pages can be found in [the guide](https://academicpages.github.io/markdown/), the [growing wiki](https://github.com/academicpages/academicpages.github.io/wiki), and you can always [ask a question on GitHub](https://github.com/academicpages/academicpages.github.io/discussions). The [guides for the Minimal Mistakes theme](https://mmistakes.github.io/minimal-mistakes/docs/configuration/) (which this theme was forked from) might also be helpful.


================================================
FILE: _pages/archive-layout-with-content.md
================================================
---
title: "Archive Layout with Content"
layout: archive
permalink: /archive-layout-with-content/
---

A variety of common markup showing how the theme styles them.

# Header one

## Header two

### Header three

#### Header four

##### Header five

###### Header six

## Blockquotes

Single line blockquote:

> Quotes are cool.

## Tables

| Entry            | Item   |                                                              |
| --------         | ------ | ------------------------------------------------------------ |
| [John Doe](#)    | 2016   | Description of the item in the list                          |
| [Jane Doe](#)    | 2019   | Description of the item in the list                          |
| [Doe Doe](#)     | 2022   | Description of the item in the list                          |

| Header1 | Header2 | Header3 |
|:--------|:-------:|--------:|
| cell1   | cell2   | cell3   |
| cell4   | cell5   | cell6   |
|-----------------------------|
| cell1   | cell2   | cell3   |
| cell4   | cell5   | cell6   |
|=============================|
| Foot1   | Foot2   | Foot3   |

## Definition Lists

Definition List Title
:   Definition list division.

Startup
:   A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.

#dowork
:   Coined by Rob Dyrdek and his personal body guard Christopher "Big Black" Boykins, "Do Work" works as a self motivator, to motivating your friends.

Do It Live
:   I'll let Bill O'Reilly [explain](https://www.youtube.com/watch?v=O_HyZ5aW76c "We'll Do It Live") this one.

## Unordered Lists (Nested)

  * List item one 
      * List item one 
          * List item one
          * List item two
          * List item three
          * List item four
      * List item two
      * List item three
      * List item four
  * List item two
  * List item three
  * List item four

## Ordered List (Nested)

  1. List item one 
      1. List item one 
          1. List item one
          2. List item two
          3. List item three
          4. List item four
      2. List item two
      3. List item three
      4. List item four
  2. List item two
  3. List item three
  4. List item four

## Buttons

Make any link standout more when applying the `.btn` class.

## Notices

**Watch out!** You can also add notices by appending `{: .notice}` to a paragraph.
{: .notice}

## HTML Tags

### Address Tag

<address>
  1 Infinite Loop<br /> Cupertino, CA 95014<br /> United States
</address>

### Anchor Tag (aka. Link)

This is an example of a [link](https://github.com "GitHub").

### Abbreviation Tag

The abbreviation CSS stands for "Cascading Style Sheets".

*[CSS]: Cascading Style Sheets

### Cite Tag

"Code is poetry." ---<cite>Automattic</cite>

### Code Tag

You will learn later on in these tests that `word-wrap: break-word;` will be your best friend.

### Strike Tag

This tag will let you <strike>strikeout text</strike>.

### Emphasize Tag

The emphasize tag should _italicize_ text.

### Insert Tag

This tag should denote <ins>inserted</ins> text.

### Keyboard Tag

This scarcely known tag emulates <kbd>keyboard text</kbd>, which is usually styled like the `<code>` tag.

### Preformatted Tag

This tag styles large blocks of code.

<pre>
.post-title {
  margin: 0 0 5px;
  font-weight: bold;
  font-size: 38px;
  line-height: 1.2;
  and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
}
</pre>

### Quote Tag

<q>Developers, developers, developers&#8230;</q> &#8211;Steve Ballmer

### Strong Tag

This tag shows **bold text**.

### Subscript Tag

Getting our science styling on with H<sub>2</sub>O, which should push the "2" down.

### Superscript Tag

Still sticking with science and Isaac Newton's E = MC<sup>2</sup>, which should lift the 2 up.

### Variable Tag

This allows you to denote <var>variables</var>.

{% include base_path %}
{% for post in site.pages %}
{% include archive-single.html %}
{% endfor %}


================================================
FILE: _pages/category-archive.html
================================================
---
layout: archive
permalink: /categories/
title: "Posts by Category"
author_profile: true
---

{% include base_path %}
{% include group-by-array collection=site.posts field="categories" %}

{% for category in group_names %}
  {% assign posts = group_items[forloop.index0] %}
  <h2 id="{{ category | slugify }}" class="archive__subtitle">{{ category }}</h2>
  {% for post in posts %}
    {% include archive-single.html %}
  {% endfor %}
{% endfor %}

================================================
FILE: _pages/collection-archive.html
================================================
---
layout: archive
title: "Posts by Collection"
permalink: /collection-archive/
author_profile: true
---

{% include base_path %}
{% capture written_label %}'None'{% endcapture %}

{% for collection in site.collections %}
  {% unless collection.output == false or collection.label == "posts" %}
    {% capture label %}{{ collection.label }}{% endcapture %}
    {% if label != written_label %}
      <h2 id="{{ label | slugify }}" class="archive__subtitle">{{ label }}</h2>
      {% capture written_label %}{{ label }}{% endcapture %}
    {% endif %}
  {% endunless %}
  {% for post in collection.docs %}
    {% unless collection.output == false or collection.label == "posts" %}
      {% include archive-single.html %}
    {% endunless %}
  {% endfor %}
{% endfor %}

================================================
FILE: _pages/cv-json.md
================================================
---
layout: archive
title: "CV"
permalink: /cv-json/
author_profile: false
redirect_from:
  - /resume-json
---

{% include base_path %}

{% include cv-template.html %}

<div class="cv-download-links">
  <a href="{{ base_path }}/files/cv.pdf" class="btn btn--primary">Download CV as PDF</a>
  <a href="{{ base_path }}" class="btn btn--inverse">View Markdown CV</a>
</div>


================================================
FILE: _pages/cv.md
================================================
---
layout: archive
title: "CV"
permalink: /cv/
author_profile: true
redirect_from:
  - /resume
---

{% include base_path %}

Education
======
* Ph.D in Version Control Theory, GitHub University, 2018 (expected)
* M.S. in Jekyll, GitHub University, 2014
* B.S. in GitHub, GitHub University, 2012

Work experience
======
* Spring 2024: Academic Pages Collaborator
  * GitHub University
  * Duties includes: Updates and improvements to template
  * Supervisor: The Users

* Fall 2015: Research Assistant
  * GitHub University
  * Duties included: Merging pull requests
  * Supervisor: Professor Hub

* Summer 2015: Research Assistant
  * GitHub University
  * Duties included: Tagging issues
  * Supervisor: Professor Git
  
Skills
======
* Skill 1
* Skill 2
  * Sub-skill 2.1
  * Sub-skill 2.2
  * Sub-skill 2.3
* Skill 3

Publications
======
  <ul>{% for post in site.publications reversed %}
    {% include archive-single-cv.html %}
  {% endfor %}</ul>
  
Talks
======
  <ul>{% for post in site.talks reversed %}
    {% include archive-single-talk-cv.html  %}
  {% endfor %}</ul>
  
Teaching
======
  <ul>{% for post in site.teaching reversed %}
    {% include archive-single-cv.html %}
  {% endfor %}</ul>
  
Service and leadership
======
* Currently signed in to 43 different slack teams


================================================
FILE: _pages/markdown.md
================================================
---
permalink: /markdown/
title: "Markdown"
author_profile: true
redirect_from: 
  - /md/
  - /markdown.html
---

{% include toc %}

## Locations of key files/directories

* Basic config options: _config.yml
* Top navigation bar config: _data/navigation.yml
* Single pages: _pages/
* Collections of pages are .md or .html files in:
  * _publications/
  * _portfolio/
  * _posts/
  * _teaching/
  * _talks/
* Footer: _includes/footer.html
* Static files (like PDFs): /files/
* Profile image (can set in _config.yml): images/profile.png

## Tips and hints

* Name a file ".md" to have it render in markdown, name it ".html" to render in HTML.
* Go to the [commit list](https://github.com/academicpages/academicpages.github.io/commits/master) (on your repo) to find the last version GitHub built with Jekyll. 
  * Green check: successful build
  * Orange circle: building
  * Red X: error
  * No icon: not built

* Academic Pages uses [Jekyll Kramdown](https://jekyllrb.com/docs/configuration/markdown/), GitHub Flavored Markdown (GFM) parser, which is similar to the version of Markdown used on GitHub, but may have some minor differences. 
  * Some of emoji supported on GitHub should be supposed via the [Jemoji](https://github.com/jekyll/jemoji) plugin :computer:.
  * The best list of the supported emoji can be found in the [Emojis for Jekyll via Jemoji](https://www.fabriziomusacchio.com/blog/2021-08-16-emojis_for_Jekyll/#computer) blog post.

* While GitHub Pages prevents server side code from running, client-side scripts are supported.
  * This means that Google Analytics is supported, and [the wiki](https://github.com/academicpages/academicpages.github.io/wiki/Adding-Google-Analytics) should contain the most up-to-date information on getting it working.

* Your CV can be written using either Markdown ([preview](https://academicpages.github.io/cv/)) or generated via JSON ([preview](https://academicpages.github.io/cv-json/)) and the layouts are slightly different. You can update the path to the one being used in `_data/navigation.yml` with the JSON formatted CV being hidden by default.

 * The [Liquid syntax guide](https://shopify.github.io/liquid/tags/control-flow/) is a useful guide for those that want to add functionality to the template or to become contributors to the [template on GitHub](https://github.com/academicpages/academicpages.github.io).

## MathJax 

Support for MathJax (version 3.* via [jsDelivr](https://www.jsdelivr.com/), [documentation](https://docs.mathjax.org/en/latest/)) is included in the template:

$$
\displaylines{
\nabla \cdot E= \frac{\rho}{\epsilon_0} \\\
\nabla \cdot B=0 \\\
\nabla \times E= -\partial_tB \\\
\nabla \times B  = \mu_0 \left(J + \varepsilon_0 \partial_t E \right)
}
$$

The default delimiters of `$$...$$` and `\\[...\\]` are supported for displayed mathematics, while `\\(...\\)` should be used for in-line mathematics (ex., \\(a^2 + b^2 = c^2\\))

**Note** that since Academic Pages uses Markdown which cases some interference with MathJax and LaTeX for escaping characters and new lines, although [some workarounds exist](https://math.codidact.com/posts/278763/278772#answer-278772). In some cases, such as when you are including MathJax in a `citation` field for publications, it may be necessary to use `\(...\)` for inline delineation.

## Mermaid diagrams
Academic Pages includes support for [Mermaid diagrams](https://mermaid.js.org/) (version 11.* via [jsDelivr](https://www.jsdelivr.com/)) and in addition to their [tutorials](https://mermaid.js.org/ecosystem/tutorials.html) and [GitHub documentation](https://github.com/mermaid-js/mermaid) the basic syntax is as follows:

```markdown
    ```mermaid
    graph LR
    A-->B
    ```
```

Which produces the following plot with the [default theme](https://mermaid.js.org/config/theming.html) applied:

```mermaid
graph LR
A-->B
```

While a more advanced plot with the `forest` theme applied looks like the following:

```mermaid
---
config:
  theme: 'forest'
---
graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;
```

## Plotly
Academic Pages includes support for Plotly diagrams via a hook in the Markdown code elements, although those that are comfortable with HTML and JavaScript can also access it [via those routes](https://plotly.com/javascript/getting-started/). Plotly is included via an `npm` [package](https://www.npmjs.com/package/plotly.js?activeTab=readme) and is distributed as part of the minimized JavaScript that is part of the template.

In order to render a Plotly plot via Markdown the relevant plot data need to be added as follows:

```markdown
    ```plotly
    {
      "data": [
        {
          "x": [1, 2, 3, 4],
          "y": [10, 15, 13, 17],
          "type": "scatter"
        },
        {
          "x": [1, 2, 3, 4],
          "y": [16, 5, 11, 9],
          "type": "scatter"
        }
      ]
    }
    ```
```

**Important!** Since the data is parsed as JSON *all* of the keys will need to be quoted for the plot to render. The use of a tool like [JSONLint](https://jsonlint.com/) to check syntax is highly recommended.
{: .notice}

Which produces the following:
```plotly
{
  "data": [
    {
      "x": [1, 2, 3, 4],
      "y": [10, 15, 13, 17],
      "type": "scatter"
    },
    {
      "x": [1, 2, 3, 4],
      "y": [16, 5, 11, 9],
      "type": "scatter"
    }
  ]
}
```

Essentially what is taking place is that the [Plotly attributes](https://plotly.com/javascript/reference/index/) are being taken from the code block as JSON data, parsed, and passed to Plotly along with a theme that matches the current site theme (i.e., a light theme, or a dark theme). This allows all plots that can be described via the `data` attribute to rendered with some limitations for the theme of the plot.

```plotly
{
  "data": [
    {
      "x": [1, 2, 3, 4, 5],
      "y": [1, 6, 3, 6, 1],
      "mode": "markers",
      "type": "scatter",
      "name": "Team A",
      "text": ["A-1", "A-2", "A-3", "A-4", "A-5"],
      "marker": { "size": 12 }
    },
    {
      "x": [1.5, 2.5, 3.5, 4.5, 5.5],
      "y": [4, 1, 7, 1, 4],
      "mode": "markers",
      "type": "scatter",
      "name": "Team B",
      "text": ["B-a", "B-b", "B-c", "B-d", "B-e"],
      "marker": { "size": 12 }
    }    
  ],
  "layout": {
    "xaxis": {
      "range": [ 0.75, 5.25 ]
    },
    "yaxis": {
      "range": [0, 8]
    },
    "title": {"text": "Data Labels Hover"}
  }
}
```

```plotly
{
  "data": [{
      "x": [1, 2, 3],
      "y": [4, 5, 6],
      "type": "scatter"
    },
    {
      "x": [20, 30, 40],
      "y": [50, 60, 70],
      "xaxis": "x2",
      "yaxis": "y2",
      "type": "scatter"
  }],
  "layout": {
    "grid": {
      "rows": 1,
      "columns": 2,
      "pattern": "independent"
    },
    "title": {
      "text": "Simple Subplot"
    }    
  }
}
```

```plotly
{
  "data": [{
		"z": [[10, 10.625, 12.5, 15.625, 20],
          [5.625, 6.25, 8.125, 11.25, 15.625],
          [2.5, 3.125, 5.0, 8.125, 12.5],
          [0.625, 1.25, 3.125, 6.25, 10.625],
          [0, 0.625, 2.5, 5.625, 10]],
		"type": "contour"
	}],
  "layout": {
    "title": {
      "text": "Basic Contour Plot"
    }
  }
}
```

## Markdown guide

Academic Pages uses [kramdown](https://kramdown.gettalong.org/index.html) for Markdown rendering, which has some differences from other Markdown implementations such as GitHub's. In addition to this guide, please see the [kramdown Syntax page](https://kramdown.gettalong.org/syntax.html) for full documentation.  

### Header three

#### Header four

##### Header five

###### Header six

## Blockquotes

Single line blockquote:

> Quotes are cool.

## Tables

### Table 1

| Entry            | Item   |                                                              |
| --------         | ------ | ------------------------------------------------------------ |
| [John Doe](#)    | 2016   | Description of the item in the list                          |
| [Jane Doe](#)    | 2019   | Description of the item in the list                          |
| [Doe Doe](#)     | 2022   | Description of the item in the list                          |

### Table 2

| Header1 | Header2 | Header3 |
|:--------|:-------:|--------:|
| cell1   | cell2   | cell3   |
| cell4   | ce
ll5   | cell6   |
|-----------------------------|
| cell1   | cell2   | cell3   |
| cell4   | cell5   | cell6   |
|=============================|
| Foot1   | Foot2   | Foot3   |

## Definition Lists

Definition List Title
:   Definition list division.

Startup
:   A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.

#dowork
:   Coined by Rob Dyrdek and his personal body guard Christopher "Big Black" Boykins, "Do Work" works as a self motivator, to motivating your friends.

Do It Live
:   I'll let Bill O'Reilly [explain](https://www.youtube.com/watch?v=O_HyZ5aW76c "We'll Do It Live") this one.

## Unordered Lists (Nested)

  * List item one 
      * List item one 
          * List item one
          * List item two
          * List item three
          * List item four
      * List item two
      * List item three
      * List item four
  * List item two
  * List item three
  * List item four

## Ordered List (Nested)

  1. List item one 
      1. List item one 
          1. List item one
          2. List item two
          3. List item three
          4. List item four
      2. List item two
      3. List item three
      4. List item four
  2. List item two
  3. List item three
  4. List item four

## Buttons

Make any link standout more when applying the `.btn` class.

## Notices

Basic notices or call-outs are supported using the following syntax:

```markdown
**Watch out!** You can also add notices by appending `{: .notice}` to the line following paragraph.
{: .notice}
```

which wil render as:

**Watch out!** You can also add notices by appending `{: .notice}` to the line following paragraph.
{: .notice}

### Footnotes

Footnotes can be useful for clarifying points in the text, or citing information.[^1] Markdown support numeric footnotes, as well as text as long as the values are unique.[^note]

```markdown
This is the regular text.[^1] This is more regular text.[^note]

[^1]: This is the footnote itself.
[^note]: This is another footnote.
```

[^1]: Such as this footnote.
[^note]: When using text for footnotes markers, no spaces are permitted in the name.

## HTML Tags

### Address Tag

<address>
  1 Infinite Loop<br /> Cupertino, CA 95014<br /> United States
</address>

### Anchor Tag (aka. Link)

This is an example of a [link](https://github.com "GitHub").

### Abbreviation Tag

The abbreviation CSS stands for "Cascading Style Sheets".

*[CSS]: Cascading Style Sheets

### Cite Tag

"Code is poetry." ---<cite>Automattic</cite>

### Code Tag

You will learn later on in these tests that `word-wrap: break-word;` will be your best friend.

You can also write larger blocks of code with syntax highlighting supported for some languages, such as Python:

```python
print('Hello World!')
```

or R:

```R
print("Hello World!", quote = FALSE)
```

### Details Tag (collapsible sections)

The HTML `<details>` tag works well with Markdown and allows you to include collapsible sections, see [W3Schools](https://www.w3schools.com/tags/tag_details.asp) for more information on how to use the tag.

<details>
  <summary>Collapsed by default</summary>
  This section was collapsed by default!
</details>

The source code:

```HTML
<details>
  <summary>Collapsed by default</summary>
  This section was collapsed by default!
</details>
```

Or, you can leave a section open by default by including the `open` attribute in the tag:

<details open>
  <summary>Open by default</summary>
  This section is open by default thanks to open in the &lt;details open&gt; tag!
</details>


### Emphasize Tag

The emphasize tag should _italicize_ text.

### Insert Tag

This tag should denote <ins>inserted</ins> text.

### Keyboard Tag

This scarcely known tag emulates <kbd>keyboard text</kbd>, which is usually styled like the `<code>` tag.

### Preformatted Tag

This tag styles large blocks of code.

<pre>
.post-title {
  margin: 0 0 5px;
  font-weight: bold;
  font-size: 38px;
  line-height: 1.2;
  and here's a line of some really, really, really, really long text, just to see how the PRE tag handles it and to find out how it overflows;
}
</pre>

### Quote Tag

<q>Developers, developers, developers&#8230;</q> &#8211;Steve Ballmer

### Strike Tag

This tag will let you <strike>strikeout text</strike>.

### Strong Tag

This tag shows **bold text**.

### Subscript Tag

Getting our science styling on with H<sub>2</sub>O, which should push the "2" down.

### Superscript Tag

Still sticking with science and Isaac Newton's E = MC<sup>2</sup>, which should lift the 2 up.

### Variable Tag

This allows you to denote <var>variables</var>.

***
**Footnotes**

The footnotes in the page will be returned following this line, return to the section on <a href="#footnotes">Markdown Footnotes</a>.



================================================
FILE: _pages/non-menu-page.md
================================================
---
permalink: /non-menu-page/
title: "Page not in menu"
author_profile: true
redirect_from: 
  - "/nmp/"
  - "/nmp.html"
---

This is a page not in the menu. You can use markdown in this page.

Heading 1
======

Heading 2
======


================================================
FILE: _pages/page-archive.html
================================================
---
layout: archive
title: "Page Archive"
permalink: /page-archive/
author_profile: false
---

{% include base_path %}
{% for post in site.pages %}
  {% include archive-single.html %}
{% endfor %}

================================================
FILE: _pages/portfolio.html
================================================
---
layout: archive
title: "Portfolio"
permalink: /portfolio/
author_profile: true
---

{% include base_path %}


{% for post in site.portfolio %}
  {% include archive-single.html %}
{% endfor %}



================================================
FILE: _pages/publications.html
================================================
---
layout: archive
title: "Publications"
permalink: /publications/
author_profile: true
---

{% if site.author.googlescholar %}
  <div class="wordwrap">You can also find my articles on <a href="{{site.author.googlescholar}}">my Google Scholar profile</a>.</div>
{% endif %}

{% include base_path %}

<!-- New style rendering if publication categories are defined -->
{% if site.publication_category %}
  {% for category in site.publication_category  %}
    {% assign title_shown = false %}
    {% for post in site.publications reversed %}
      {% if post.category != category[0] %}
        {% continue %}
      {% endif %}
      {% unless title_shown %}
        <h2>{{ category[1].title }}</h2><hr />
        {% assign title_shown = true %}
      {% endunless %}
      {% include archive-single.html %}
    {% endfor %}
  {% endfor %}
{% else %}
  {% for post in site.publications reversed %}
    {% include archive-single.html %}
  {% endfor %}
{% endif %}





================================================
FILE: _pages/sitemap.md
================================================
---
layout: archive
title: "Sitemap"
permalink: /sitemap/
author_profile: true
---

{% include base_path %}

A list of all the posts and pages found on the site. For you robots out there, there is an [XML version]({{ base_path }}/sitemap.xml) available for digesting as well.

<h2>Pages</h2>
{% for post in site.pages %}
  {% include archive-single.html %}
{% endfor %}

<h2>Posts</h2>
{% for post in site.posts %}
  {% include archive-single.html %}
{% endfor %}

{% capture written_label %}'None'{% endcapture %}

{% for collection in site.collections %}
{% unless collection.output == false or collection.label == "posts" %}
  {% capture label %}{{ collection.label }}{% endcapture %}
  {% if label != written_label %}
  <h2>{{ label }}</h2>
  {% capture written_label %}{{ label }}{% endcapture %}
  {% endif %}
{% endunless %}
{% for post in collection.docs %}
  {% unless collection.output == false or collection.label == "posts" %}
  {% include archive-single.html %}
  {% endunless %}
{% endfor %}
{% endfor %}


================================================
FILE: _pages/tag-archive.html
================================================
---
layout: archive
permalink: /tags/
title: "Posts by Tags"
author_profile: true
---

{% include base_path %}
{% include group-by-array collection=site.posts field="tags" %}

{% for tag in group_names %}
  {% assign posts = group_items[forloop.index0] %}
  <h2 id="{{ tag | slugify }}" class="archive__subtitle">{{ tag }}</h2>
  {% for post in posts %}
    {% include archive-single.html %}
  {% endfor %}
{% endfor %}

================================================
FILE: _pages/talkmap.html
================================================
---
layout: archive
title: "Talk map"
permalink: /talkmap.html
author_profile: true
---

<p>This map is generated from a Jupyter Notebook file in <a href="https://github.com/academicpages/academicpages.github.io/blob/master/talkmap.ipynb">talkmap.ipynb</a>, which mines the location fields in the .md files in _talks/.</p>
<iframe src="/talkmap/map.html" height="700" width="850" style="border:none;"></iframe>


================================================
FILE: _pages/talks.html
================================================
---
layout: archive
title: "Talks and presentations"
permalink: /talks/
author_profile: true
---

{% if site.talkmap_link == true %}

<p style="text-decoration:underline;"><a href="/talkmap.html">See a map of all the places I've given a talk!</a></p>

{% endif %}

{% for post in site.talks reversed %}
  {% include archive-single-talk.html %}
{% endfor %}


================================================
FILE: _pages/teaching.html
================================================
---
layout: archive
title: "Teaching"
permalink: /teaching/
author_profile: true
---

{% include base_path %}

{% for post in site.teaching reversed %}
  {% include archive-single.html %}
{% endfor %}


================================================
FILE: _pages/terms.md
================================================
---
permalink: /terms/
title: "Terms and Privacy Policy"
modified: 2016-06-06
---

{% include base_path %}
{% include toc %}

## Privacy Policy

The privacy of my visitors is extremely important. This Privacy Policy outlines the types of personal information that is received and collected and how it is used.

First and foremost, I will never share your email address or any other personal information to anyone without your direct consent.

### Log Files

Like many other websites, this site uses log files to help learn about when, from where, and how often traffic flows to this site. The information in these log files include:

* Internet Protocol addresses (IP)
* Types of browser
* Internet Service Provider (ISP)
* Date and time stamp
* Referring and exit pages
* Number of clicks

All of this information is not linked to anything that is personally identifiable.

### Cookies and Web Beacons

When you visit this site "convenience" cookies are stored on your computer when you submit a comment to help you log in faster to [Disqus](https://disqus.com) the next time you leave a comment.

Third-party advertisers may also place and read cookies on your browser and/or use web beacons to collect information. This site has no access or control over these cookies. You should review the respective privacy policies on any and all third-party ad servers for more information regarding their practices and how to opt-out.

If you wish to disable cookies, you may do so through your web browser options. Instructions for doing so can be found on the specific web browsers' websites.

#### Google Analytics

Google Analytics is a web analytics tool I use to help understand how visitors engage with this website. It reports website trends using cookies and web beacons without identifying individual visitors. You can read [Google Analytics Privacy Policy](https://www.google.com/analytics/learn/privacy.html).


================================================
FILE: _pages/year-archive.html
================================================
---
layout: archive
permalink: /year-archive/
title: "Blog posts"
author_profile: true
redirect_from:
  - /wordpress/blog-posts/
---

{% include base_path %}
{% capture written_year %}'None'{% endcapture %}
{% for post in site.posts %}
  {% capture year %}{{ post.date | date: '%Y' }}{% endcapture %}
  {% if year != written_year %}
    <h2 id="{{ year | slugify }}" class="archive__subtitle">{{ year }}</h2>
    {% capture written_year %}{{ year }}{% endcapture %}
  {% endif %}
  {% include archive-single.html %}
{% endfor %}


================================================
FILE: _portfolio/portfolio-1.md
================================================
---
title: "Portfolio item number 1"
excerpt: "Short description of portfolio item number 1<br/><img src='/images/500x300.png'>"
collection: portfolio
---

This is an item in your portfolio. It can be have images or nice text. If you name the file .md, it will be parsed as markdown. If you name the file .html, it will be parsed as HTML. 


================================================
FILE: _portfolio/portfolio-2.html
================================================
---
title: "Portfolio item number 2"
excerpt: "Short description of portfolio item number 2 <br/><img src='/images/500x300.png'>"
collection: portfolio
---

This is an item in your portfolio. It can be have images or nice text. If you name the file .md, it will be parsed as markdown. If you name the file .html, it will be parsed as HTML. 


================================================
FILE: _posts/2012-08-14-blog-post-1.md
================================================
---
title: 'Blog Post number 1'
date: 2012-08-14
permalink: /posts/2012/08/blog-post-1/
tags:
  - cool posts
  - category1
  - category2
---

This is a sample blog post. Lorem ipsum I can't remember the rest of lorem ipsum and don't have an internet connection right now. Testing testing testing this blog post. Blog posts are cool.

Headings are cool
======

You can have many headings
======

Aren't headings cool?
------

================================================
FILE: _posts/2013-08-14-blog-post-2.md
================================================
---
title: 'Blog Post number 2'
date: 2013-08-14
permalink: /posts/2013/08/blog-post-2/
tags:
  - cool posts
  - category1
  - category2
---

This is a sample blog post. Lorem ipsum I can't remember the rest of lorem ipsum and don't have an internet connection right now. Testing testing testing this blog post. Blog posts are cool.

Headings are cool
======

You can have many headings
======

Aren't headings cool?
------

================================================
FILE: _posts/2014-08-14-blog-post-3.md
================================================
---
title: 'Blog Post number 3'
date: 2014-08-14
permalink: /posts/2014/08/blog-post-3/
tags:
  - cool posts
  - category1
  - category2
---

This is a sample blog post. Lorem ipsum I can't remember the rest of lorem ipsum and don't have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. 

Headings are cool
======

You can have many headings
======

Aren't headings cool?
------

================================================
FILE: _posts/2015-08-14-blog-post-4.md
================================================
---
title: 'Blog Post number 4'
date: 2015-08-14
permalink: /posts/2012/08/blog-post-4/
tags:
  - cool posts
  - category1
  - category2
---

This is a sample blog post. Lorem ipsum I can't remember the rest of lorem ipsum and don't have an internet connection right now. Testing testing testing this blog post. Blog posts are cool.

Headings are cool
======

You can have many headings
======

Aren't headings cool?
------

================================================
FILE: _posts/2199-01-01-future-post.md
================================================
---
title: 'Future Blog Post'
date: 2199-01-01
permalink: /posts/2012/08/blog-post-4/
tags:
  - cool posts
  - category1
  - category2
---

This post will show up by default. To disable scheduling of future posts, edit `config.yml` and set `future: false`. 


================================================
FILE: _publications/2009-10-01-paper-title-number-1.md
================================================
---
title: "Paper Title Number 1"
collection: publications
category: manuscripts
permalink: /publication/2009-10-01-paper-title-number-1
excerpt: 'This paper is about the number 1. The number 2 is left for future work.'
date: 2009-10-01
venue: 'Journal 1'
slidesurl: 'https://academicpages.github.io/files/slides1.pdf'
paperurl: 'https://academicpages.github.io/files/paper1.pdf'
bibtexurl: 'https://academicpages.github.io/files/bibtex1.bib'
citation: 'Your Name, You. (2009). &quot;Paper Title Number 1.&quot; <i>Journal 1</i>. 1(1).'
---
The contents above will be part of a list of publications, if the user clicks the link for the publication than the contents of section will be rendered as a full page, allowing you to provide more information about the paper for the reader. When publications are displayed as a single page, the contents of the above "citation" field will automatically be included below this section in a smaller font.


================================================
FILE: _publications/2010-10-01-paper-title-number-2.md
================================================
---
title: "Paper Title Number 2"
collection: publications
category: manuscripts
permalink: /publication/2010-10-01-paper-title-number-2
excerpt: 'This paper is about the number 2. The number 3 is left for future work.'
date: 2010-10-01
venue: 'Journal 1'
slidesurl: 'https://academicpages.github.io/files/slides2.pdf'
paperurl: 'https://academicpages.github.io/files/paper2.pdf'
citation: 'Your Name, You. (2010). &quot;Paper Title Number 2.&quot; <i>Journal 1</i>. 1(2).'
---

The contents above will be part of a list of publications, if the user clicks the link for the publication than the contents of section will be rendered as a full page, allowing you to provide more information about the paper for the reader. When publications are displayed as a single page, the contents of the above "citation" field will automatically be included below this section in a smaller font.


================================================
FILE: _publications/2015-10-01-paper-title-number-3.md
================================================
---
title: "Paper Title Number 3"
collection: publications
category: manuscripts
permalink: /publication/2015-10-01-paper-title-number-3
excerpt: 'This paper is about the number 3. The number 4 is left for future work.'
date: 2015-10-01
venue: 'Journal 1'
slidesurl: 'https://academicpages.github.io/files/slides3.pdf'
paperurl: 'https://academicpages.github.io/files/paper3.pdf'
citation: 'Your Name, You. (2015). &quot;Paper Title Number 3.&quot; <i>Journal 1</i>. 1(3).'
---

The contents above will be part of a list of publications, if the user clicks the link for the publication than the contents of section will be rendered as a full page, allowing you to provide more information about the paper for the reader. When publications are displayed as a single page, the contents of the above "citation" field will automatically be included below this section in a smaller font.


================================================
FILE: _publications/2024-02-17-paper-title-number-4.md
================================================
---
title: "Paper Title Number 4"
collection: publications
category: conferences
permalink: /publication/2024-02-17-paper-title-number-4
excerpt: 'This paper is about fixing template issue #693.'
date: 2024-02-17
venue: 'GitHub Journal of Bugs'
paperurl: 'https://academicpages.github.io/files/paper3.pdf'
citation: 'Your Name, You. (2024). &quot;Paper Title Number 3.&quot; <i>GitHub Journal of Bugs</i>. 1(3).'
---

The contents above will be part of a list of publications, if the user clicks the link for the publication than the contents of section will be rendered as a full page, allowing you to provide more information about the paper for the reader. When publications are displayed as a single page, the contents of the above "citation" field will automatically be included below this section in a smaller font.


================================================
FILE: _publications/2025-06-08-paper-title-number-5.md
================================================
---
title: "Paper Title Number 5, with math $$E=mc^2$$"
collection: publications
category: conferences
permalink: /publication/2024-02-17-paper-title-number-4
excerpt: 'This paper is about a famous math equation, $$E=mc^2$$'
date: 2024-02-17
venue: 'GitHub Journal of Bugs'
paperurl: 'https://academicpages.github.io/files/paper3.pdf'
citation: 'Your Name, You. (2024). &quot;Paper Title Number 3.&quot; <i>GitHub Journal of Bugs</i>. 1(3).'
---

Using [MathJax](https://www.mathjax.org/) in the description is supported - $$E=mc^2$$ - however, the use must be mindful that the default delimiters are `$$...$$` and `\\[...\\]` which differs from the `$...$` that is typically expected.


================================================
FILE: _sass/_syntax.scss
================================================
/* ==========================================================================
   Syntax highlighting
   ========================================================================== */

div.highlighter-rouge, figure.highlight {
  position: relative;
  margin-bottom: 1em;
  padding: 1em;
  border: 1px solid var(--global-border-color);
  border-radius: $border-radius;
  background-color: var(--global-code-background-color);
  box-shadow: $box-shadow;
  font-size: $type-size-4;

  &:before {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0.5em;
    background-color: mix(#fff, #7a8288, 90%);
    content: "\f121";
    font-family: "Font Awesome 6 Free" !important;
    font-size: $type-size-6;
    line-height: 1;
    text-transform: none;
    speak: none;
  }

  .highlight {
    margin: 0;
    font-family: $monospace;
    font-size: $type-size-6;
    line-height: 1.8;
  }
}

.highlight table td { padding: 5px; }
.highlight table pre { margin: 0; }


/*
   Solarized Light
   http://ethanschoonover.com/solarized

   SOLARIZED HEX      ROLE
   --------- -------- ------------------------------------------
   base01    #586e75  body text / default code / primary content
   base1     #93a1a1  comments / secondary content
   base3     #fdf6e3  background
   orange    #cb4b16  constants
   red       #dc322f  regex, special keywords
   blue      #22b3eb  reserved keywords
   cyan      #2aa198  strings, numbers
   green     #859900  operators, other keywords
   ========================================================================== */

.highlight .c { color: #93a1a1 } /* Comment */
.highlight .err { color: #586e75 } /* Error */
.highlight .g { color: #586e75 } /* Generic */
.highlight .k { color: #859900 } /* Keyword */
.highlight .l { color: #586e75 } /* Literal */
.highlight .n { color: #586e75 } /* Name */
.highlight .o { color: #859900 } /* Operator */
.highlight .x { color: #cb4b16 } /* Other */
.highlight .p { color: #586e75 } /* Punctuation */
.highlight .cm { color: #93a1a1 } /* Comment.Multiline */
.highlight .cp { color: #859900 } /* Comment.Preproc */
.highlight .c1 { color: #93a1a1 } /* Comment.Single */
.highlight .cs { color: #859900 } /* Comment.Special */
.highlight .gd { color: #2aa198 } /* Generic.Deleted */
.highlight .ge { color: #586e75; font-style: italic } /* Generic.Emph */
.highlight .gr { color: #dc322f } /* Generic.Error */
.highlight .gh { color: #cb4b16 } /* Generic.Heading */
.highlight .gi { color: #859900 } /* Generic.Inserted */
.highlight .go { color: #586e75 } /* Generic.Output */
.highlight .gp { color: #586e75 } /* Generic.Prompt */
.highlight .gs { color: #586e75; font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #cb4b16 } /* Generic.Subheading */
.highlight .gt { color: #586e75 } /* Generic.Traceback */
.highlight .kc { color: #cb4b16 } /* Keyword.Constant */
.highlight .kd { color: #22b3eb } /* Keyword.Declaration */
.highlight .kn { color: #859900 } /* Keyword.Namespace */
.highlight .kp { color: #859900 } /* Keyword.Pseudo */
.highlight .kr { color: #22b3eb } /* Keyword.Reserved */
.highlight .kt { color: #dc322f } /* Keyword.Type */
.highlight .ld { color: #586e75 } /* Literal.Date */
.highlight .m { color: #2aa198 } /* Literal.Number */
.highlight .s { color: #2aa198 } /* Literal.String */
.highlight .na { color: #586e75 } /* Name.Attribute */
.highlight .nb { color: #B58900 } /* Name.Builtin */
.highlight .nc { color: #22b3eb } /* Name.Class */
.highlight .no { color: #cb4b16 } /* Name.Constant */
.highlight .nd { color: #2
Download .txt
gitextract_4ov5u2bm/

├── .devcontainer/
│   └── devcontainer.json
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   └── workflows/
│       └── scrape_talks.yml
├── .gitignore
├── CONTRIBUTING.md
├── Dockerfile
├── Gemfile
├── LICENSE
├── README.md
├── _config.yml
├── _config_docker.yml
├── _data/
│   ├── authors.yml
│   ├── comments/
│   │   ├── layout-comments/
│   │   │   ├── comment-1470944006665.yml
│   │   │   └── comment-1470944162041.yml
│   │   ├── markup-syntax-highlighting/
│   │   │   └── comment-1470969665387.yml
│   │   └── welcome-to-jekyll/
│   │       ├── comment-1470942205700.yml
│   │       ├── comment-1470942247755.yml
│   │       ├── comment-1470942265819.yml
│   │       └── comment-1470942493518.yml
│   ├── cv.json
│   ├── navigation.yml
│   └── ui-text.yml
├── _drafts/
│   └── post-draft.md
├── _includes/
│   ├── analytics-providers/
│   │   ├── custom.html
│   │   ├── google-analytics-4.html
│   │   ├── google-universal.html
│   │   └── google.html
│   ├── analytics.html
│   ├── archive-single-cv.html
│   ├── archive-single-talk-cv.html
│   ├── archive-single-talk.html
│   ├── archive-single.html
│   ├── author-profile.html
│   ├── base_path
│   ├── breadcrumbs.html
│   ├── browser-upgrade.html
│   ├── category-list.html
│   ├── comment.html
│   ├── comments-providers/
│   │   ├── custom.html
│   │   ├── discourse.html
│   │   ├── disqus.html
│   │   ├── facebook.html
│   │   ├── google-plus.html
│   │   ├── scripts.html
│   │   └── staticman.html
│   ├── comments.html
│   ├── cv-template.html
│   ├── feature_row
│   ├── footer/
│   │   └── custom.html
│   ├── footer.html
│   ├── gallery
│   ├── group-by-array
│   ├── head/
│   │   └── custom.html
│   ├── head.html
│   ├── masthead.html
│   ├── nav_list
│   ├── page__hero.html
│   ├── page__taxonomy.html
│   ├── paginator.html
│   ├── post_pagination.html
│   ├── read-time.html
│   ├── scripts.html
│   ├── seo.html
│   ├── sidebar.html
│   ├── social-share.html
│   ├── tag-list.html
│   └── toc
├── _layouts/
│   ├── archive-taxonomy.html
│   ├── archive.html
│   ├── compress.html
│   ├── cv-layout.html
│   ├── default.html
│   ├── single.html
│   ├── splash.html
│   └── talk.html
├── _pages/
│   ├── 404.md
│   ├── about.md
│   ├── archive-layout-with-content.md
│   ├── category-archive.html
│   ├── collection-archive.html
│   ├── cv-json.md
│   ├── cv.md
│   ├── markdown.md
│   ├── non-menu-page.md
│   ├── page-archive.html
│   ├── portfolio.html
│   ├── publications.html
│   ├── sitemap.md
│   ├── tag-archive.html
│   ├── talkmap.html
│   ├── talks.html
│   ├── teaching.html
│   ├── terms.md
│   └── year-archive.html
├── _portfolio/
│   ├── portfolio-1.md
│   └── portfolio-2.html
├── _posts/
│   ├── 2012-08-14-blog-post-1.md
│   ├── 2013-08-14-blog-post-2.md
│   ├── 2014-08-14-blog-post-3.md
│   ├── 2015-08-14-blog-post-4.md
│   └── 2199-01-01-future-post.md
├── _publications/
│   ├── 2009-10-01-paper-title-number-1.md
│   ├── 2010-10-01-paper-title-number-2.md
│   ├── 2015-10-01-paper-title-number-3.md
│   ├── 2024-02-17-paper-title-number-4.md
│   └── 2025-06-08-paper-title-number-5.md
├── _sass/
│   ├── _syntax.scss
│   ├── _themes.scss
│   ├── include/
│   │   ├── _mixins.scss
│   │   └── _utilities.scss
│   ├── layout/
│   │   ├── _archive.scss
│   │   ├── _base.scss
│   │   ├── _buttons.scss
│   │   ├── _footer.scss
│   │   ├── _forms.scss
│   │   ├── _json_cv.scss
│   │   ├── _masthead.scss
│   │   ├── _navigation.scss
│   │   ├── _notices.scss
│   │   ├── _page.scss
│   │   ├── _reset.scss
│   │   ├── _sidebar.scss
│   │   └── _tables.scss
│   ├── theme/
│   │   ├── _air_dark.scss
│   │   ├── _air_light.scss
│   │   ├── _contrast_dark.scss
│   │   ├── _contrast_light.scss
│   │   ├── _default_dark.scss
│   │   ├── _default_light.scss
│   │   ├── _dirt_dark.scss
│   │   ├── _dirt_light.scss
│   │   ├── _mint_dark.scss
│   │   ├── _mint_light.scss
│   │   ├── _sunrise_dark.scss
│   │   └── _sunrise_light.scss
│   └── vendor/
│       ├── breakpoint/
│       │   ├── _breakpoint.scss
│       │   ├── _context.scss
│       │   ├── _helpers.scss
│       │   ├── _legacy-settings.scss
│       │   ├── _no-query.scss
│       │   ├── _parsers.scss
│       │   ├── _respond-to.scss
│       │   ├── _settings.scss
│       │   └── parsers/
│       │       ├── _double.scss
│       │       ├── _query.scss
│       │       ├── _resolution.scss
│       │       ├── _single.scss
│       │       ├── _triple.scss
│       │       ├── double/
│       │       │   ├── _default-pair.scss
│       │       │   ├── _default.scss
│       │       │   └── _double-string.scss
│       │       ├── resolution/
│       │       │   └── _resolution.scss
│       │       ├── single/
│       │       │   └── _default.scss
│       │       └── triple/
│       │           └── _default.scss
│       ├── font-awesome/
│       │   ├── _animated.scss
│       │   ├── _bordered-pulled.scss
│       │   ├── _core.scss
│       │   ├── _fixed-width.scss
│       │   ├── _functions.scss
│       │   ├── _icons.scss
│       │   ├── _list.scss
│       │   ├── _mixins.scss
│       │   ├── _rotated-flipped.scss
│       │   ├── _screen-reader.scss
│       │   ├── _shims.scss
│       │   ├── _sizing.scss
│       │   ├── _stacked.scss
│       │   ├── _variables.scss
│       │   ├── brands.scss
│       │   ├── fontawesome.scss
│       │   ├── regular.scss
│       │   ├── solid.scss
│       │   └── v4-shims.scss
│       └── susy/
│           ├── _su.scss
│           ├── _susy.scss
│           ├── _susyone.scss
│           └── susy/
│               ├── _su.scss
│               ├── language/
│               │   ├── _susy.scss
│               │   ├── _susyone.scss
│               │   ├── susy/
│               │   │   ├── _background.scss
│               │   │   ├── _bleed.scss
│               │   │   ├── _box-sizing.scss
│               │   │   ├── _breakpoint-plugin.scss
│               │   │   ├── _container.scss
│               │   │   ├── _context.scss
│               │   │   ├── _gallery.scss
│               │   │   ├── _grids.scss
│               │   │   ├── _gutters.scss
│               │   │   ├── _isolate.scss
│               │   │   ├── _margins.scss
│               │   │   ├── _padding.scss
│               │   │   ├── _rows.scss
│               │   │   ├── _settings.scss
│               │   │   ├── _span.scss
│               │   │   └── _validation.scss
│               │   └── susyone/
│               │       ├── _background.scss
│               │       ├── _functions.scss
│               │       ├── _grid.scss
│               │       ├── _isolation.scss
│               │       ├── _margin.scss
│               │       ├── _media.scss
│               │       ├── _padding.scss
│               │       └── _settings.scss
│               ├── output/
│               │   ├── _float.scss
│               │   ├── _shared.scss
│               │   ├── _support.scss
│               │   ├── float/
│               │   │   ├── _container.scss
│               │   │   ├── _end.scss
│               │   │   ├── _isolate.scss
│               │   │   └── _span.scss
│               │   ├── shared/
│               │   │   ├── _background.scss
│               │   │   ├── _container.scss
│               │   │   ├── _direction.scss
│               │   │   ├── _inspect.scss
│               │   │   ├── _margins.scss
│               │   │   ├── _output.scss
│               │   │   └── _padding.scss
│               │   └── support/
│               │       ├── _background.scss
│               │       ├── _box-sizing.scss
│               │       ├── _clearfix.scss
│               │       ├── _prefix.scss
│               │       ├── _rem.scss
│               │       └── _support.scss
│               └── su/
│                   ├── _grid.scss
│                   ├── _settings.scss
│                   ├── _utilities.scss
│                   └── _validation.scss
├── _talks/
│   ├── 2012-03-01-talk-1.md
│   ├── 2013-03-01-tutorial-1.md
│   ├── 2014-02-01-talk-2.md
│   └── 2014-03-01-talk-3.md
├── _teaching/
│   ├── 2014-spring-teaching-1.md
│   └── 2015-spring-teaching-2.md
├── assets/
│   ├── css/
│   │   ├── academicons.css
│   │   ├── collapse.css
│   │   └── main.scss
│   └── js/
│       ├── _main.js
│       ├── collapse.js
│       ├── plugins/
│       │   └── jquery.greedy-navigation.js
│       └── theme.js
├── docker-compose.yaml
├── files/
│   └── bibtex1.bib
├── images/
│   └── manifest.json
├── markdown_generator/
│   ├── OrcidToBib.ipynb
│   ├── PubsFromBib.ipynb
│   ├── README.md
│   ├── publications.csv
│   ├── publications.ipynb
│   ├── publications.py
│   ├── publications.tsv
│   ├── pubsFromBib.py
│   ├── talks.ipynb
│   ├── talks.py
│   └── talks.tsv
├── package.json
├── scripts/
│   ├── cv_markdown_to_json.py
│   └── update_cv_json.sh
├── talkmap/
│   ├── leaflet_dist/
│   │   ├── MarkerCluster.Default.css
│   │   ├── MarkerCluster.css
│   │   ├── leaflet.markercluster-src.js
│   │   ├── leaflet.markercluster.js
│   │   └── screen.css
│   ├── map.html
│   └── org-locations.js
├── talkmap.ipynb
├── talkmap.py
└── talkmap_out.ipynb
Download .txt
SYMBOL INDEX (20 symbols across 5 files)

FILE: assets/js/plugins/jquery.greedy-navigation.js
  function updateNav (line 16) | function updateNav() {

FILE: markdown_generator/publications.py
  function create_md (line 37) | def create_md(lines: list, layout: list):
  function html_escape (line 72) | def html_escape(text):
  function read (line 76) | def read(filename: str) -> tuple[list, list]:

FILE: markdown_generator/pubsFromBib.py
  function html_escape (line 52) | def html_escape(text):

FILE: markdown_generator/talks.py
  function html_escape (line 52) | def html_escape(text):

FILE: scripts/cv_markdown_to_json.py
  class DateTimeEncoder (line 17) | class DateTimeEncoder(json.JSONEncoder):
    method default (line 18) | def default(self, obj):
  function parse_markdown_cv (line 23) | def parse_markdown_cv(md_file):
  function parse_config (line 55) | def parse_config(config_file):
  function extract_author_info (line 65) | def extract_author_info(config):
  function parse_education (line 161) | def parse_education(education_text):
  function parse_work_experience (line 190) | def parse_work_experience(work_text):
  function parse_skills (line 232) | def parse_skills(skills_text):
  function parse_publications (line 251) | def parse_publications(pub_dir):
  function parse_talks (line 280) | def parse_talks(talks_dir):
  function parse_teaching (line 309) | def parse_teaching(teaching_dir):
  function parse_portfolio (line 338) | def parse_portfolio(portfolio_dir):
  function create_cv_json (line 367) | def create_cv_json(md_file, config_file, repo_root, output_file):
  function main (line 414) | def main():
Condensed preview — 268 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (992K chars).
[
  {
    "path": ".devcontainer/devcontainer.json",
    "chars": 379,
    "preview": "{\n    \"name\": \"ACADEMIC PAGES\",\n    \"dockerComposeFile\": \"../docker-compose.yaml\",\n    \"service\": \"jekyll-site\",\n    \"re"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 866,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\n\n---\n\n**Describe the bug**\nA clear a"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 595,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your fea"
  },
  {
    "path": ".github/workflows/scrape_talks.yml",
    "chars": 1054,
    "preview": "name: Scrape Talk Locations\n\non:\n  push:\n    paths:\n      - 'talks/**'\n      - '_talks/**'\n      - 'talkmap.ipynb'\n\njobs"
  },
  {
    "path": ".gitignore",
    "chars": 458,
    "preview": "# Ignore the contents of the _site directory and other cache directories\n_site/\n.sass-cache/\n\n# Ignore the directory for"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 694,
    "preview": "Contributions are welcome! \n\nPlease add issues and make pull requests. There are no stupid questions. All ideas are welc"
  },
  {
    "path": "Dockerfile",
    "chars": 840,
    "preview": "# Base image: Ruby with necessary dependencies for Jekyll\nFROM ruby:3.2\n\n# Install dependencies\nRUN apt-get update && ap"
  },
  {
    "path": "Gemfile",
    "chars": 239,
    "preview": "source 'https://rubygems.org'\n\ngroup :jekyll_plugins do\n  gem 'jekyll'\n  gem 'jekyll-feed'\n  gem 'jekyll-sitemap'\n  gem "
  },
  {
    "path": "LICENSE",
    "chars": 1078,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2016 Michael Rose\n\nPermission is hereby granted, free of charge, to any person obta"
  },
  {
    "path": "README.md",
    "chars": 7601,
    "preview": "# Academic Pages\n**Academic Pages is a GitHub Pages template for personal and professional portfolio-oriented websites.*"
  },
  {
    "path": "_config.yml",
    "chars": 10408,
    "preview": "# Welcome to Jekyll!\n#\n# This config file is meant for settings that affect your entire site, values\n# which you are exp"
  },
  {
    "path": "_config_docker.yml",
    "chars": 7,
    "preview": "url: \"\""
  },
  {
    "path": "_data/authors.yml",
    "chars": 430,
    "preview": "# Authors\n\nName Name:\n  name        : \"Name Name\"\n  uri         : \"https://name.com\"\n  email       : \"name@name.com\"\n  b"
  },
  {
    "path": "_data/comments/layout-comments/comment-1470944006665.yml",
    "chars": 250,
    "preview": "message: \"![Bill Murray](http://www.fillmurray.com/400/300)\\r\\n\\r\\n“It's hard to be an artist. It's hard to be anything."
  },
  {
    "path": "_data/comments/layout-comments/comment-1470944162041.yml",
    "chars": 308,
    "preview": "message: \"> “I never had seen Seinfeld, and they said, ‘Oh, it’s the last episode.’ And I said, ‘Oh, I’ll watch Seinfeld"
  },
  {
    "path": "_data/comments/markup-syntax-highlighting/comment-1470969665387.yml",
    "chars": 363,
    "preview": "message: \"Here's a test comment with a Markdown code block:\\r\\n\\r\\n```scss\\r\\nh1, h2, h3, h4, h5, h6 {\\r\\n  margin: 2em "
  },
  {
    "path": "_data/comments/welcome-to-jekyll/comment-1470942205700.yml",
    "chars": 483,
    "preview": "message: \"This is a test comment with some **Markdown** sprinkled about for *testing purposes*.\\r\\n\\r\\n### Subheading in"
  },
  {
    "path": "_data/comments/welcome-to-jekyll/comment-1470942247755.yml",
    "chars": 192,
    "preview": "message: '\"How much wood would a woodchuck chuck if a woodchuck could chuck wood?\"'\nname: Jackalope\nemail: cba827e665ae1"
  },
  {
    "path": "_data/comments/welcome-to-jekyll/comment-1470942265819.yml",
    "chars": 202,
    "preview": "message: '\"How much wood would a woodchuck chuck if a woodchuck could chuck wood?\"'\nname: Jackalope Duplicate\nemail: cba"
  },
  {
    "path": "_data/comments/welcome-to-jekyll/comment-1470942493518.yml",
    "chars": 328,
    "preview": "message: \"Images can be added to a comment using Markdown like this\\r\\n\\r\\n```\\r\\n![Bill Murray](http://www.fillmurray.c"
  },
  {
    "path": "_data/cv.json",
    "chars": 4224,
    "preview": "{\n  \"basics\": {\n    \"name\": \"Your Sidebar Name\",\n    \"email\": \"none@example.org\",\n    \"phone\": \"\",\n    \"website\": \"https"
  },
  {
    "path": "_data/navigation.yml",
    "chars": 807,
    "preview": "# The following is the order of the links in the header of the website.\n#\n# Changing the order here will adjust the orde"
  },
  {
    "path": "_data/ui-text.yml",
    "chars": 13810,
    "preview": "# User interface text and labels\n\n# English (default)\n# -----------------\nen: &DEFAULT_EN\n  page                       :"
  },
  {
    "path": "_drafts/post-draft.md",
    "chars": 2965,
    "preview": "---\nlayout: single\ntitle:  \"Draft Post\"\nheader:\n  teaser: \"unsplash-gallery-image-2-th.jpg\"\ncategories: \n  - Jekyll\ntags"
  },
  {
    "path": "_includes/analytics-providers/custom.html",
    "chars": 78,
    "preview": "<!-- start custom analytics snippet -->\n\n<!-- end custom analytics snippet -->"
  },
  {
    "path": "_includes/analytics-providers/google-analytics-4.html",
    "chars": 308,
    "preview": "<script async src=\"https://www.googletagmanager.com/gtag/js?id={{site.analytics.google.tracking_id}}\"></script>\n<script>"
  },
  {
    "path": "_includes/analytics-providers/google-universal.html",
    "chars": 433,
    "preview": "<script>\n  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n  (i[r].q=i[r].q||[]).push(argum"
  },
  {
    "path": "_includes/analytics-providers/google.html",
    "chars": 498,
    "preview": "<script type=\"text/javascript\">\n  var _gaq = _gaq || [];\n  _gaq.push(['_setAccount', '{{ site.analytics.google.tracking_"
  },
  {
    "path": "_includes/analytics.html",
    "chars": 443,
    "preview": "{% if site.analytics.provider and page.analytics != false %}\n\n{% case site.analytics.provider %}\n{% when \"google\" %}\n  {"
  },
  {
    "path": "_includes/archive-single-cv.html",
    "chars": 1532,
    "preview": "{% include base_path %}\n\n{% if post.header.teaser %}\n  {% capture teaser %}{{ post.header.teaser }}{% endcapture %}\n{% e"
  },
  {
    "path": "_includes/archive-single-talk-cv.html",
    "chars": 1557,
    "preview": "{% include base_path %}\n\n{% if post.header.teaser %}\n  {% capture teaser %}{{ post.header.teaser }}{% endcapture %}\n{% e"
  },
  {
    "path": "_includes/archive-single-talk.html",
    "chars": 1814,
    "preview": "{% include base_path %}\n\n{% if post.header.teaser %}\n  {% capture teaser %}{{ post.header.teaser }}{% endcapture %}\n{% e"
  },
  {
    "path": "_includes/archive-single.html",
    "chars": 4746,
    "preview": "{% include base_path %}\n\n{% if post.header.teaser %}\n  {% capture teaser %}{{ post.header.teaser }}{% endcapture %}\n{% e"
  },
  {
    "path": "_includes/author-profile.html",
    "chars": 10572,
    "preview": "{% include base_path %}\n\n{% if page.author and site.data.authors[page.author] %}\n  {% assign author = site.data.authors["
  },
  {
    "path": "_includes/base_path",
    "chars": 142,
    "preview": "{% if site.url %}\n  {% assign base_path = site.url | append: site.baseurl %}\n{% else %}\n  {% assign base_path = site.git"
  },
  {
    "path": "_includes/breadcrumbs.html",
    "chars": 1721,
    "preview": "{% include base_path %}\n\n{% case site.categories.type %}\n  {% when \"liquid\" %}\n    {% assign path_type = \"#\" %}\n  {% whe"
  },
  {
    "path": "_includes/browser-upgrade.html",
    "chars": 242,
    "preview": "<!--[if lt IE 9]>\n<div class=\"notice--danger align-center\" style=\"margin: 0;\">You are using an <strong>outdated</strong>"
  },
  {
    "path": "_includes/category-list.html",
    "chars": 1387,
    "preview": "{% include base_path %}\n\n{% include base_path %}\n\n{% case site.category_archive.type %}\n  {% when \"liquid\" %}\n    {% ass"
  },
  {
    "path": "_includes/comment.html",
    "chars": 876,
    "preview": "<article id=\"comment{{ include.index }}\" class=\"js-comment comment\">\n  <div class=\"comment__avatar-wrapper\">\n    <img cl"
  },
  {
    "path": "_includes/comments-providers/custom.html",
    "chars": 76,
    "preview": "<!-- start custom comments snippet -->\n\n<!-- end custom comments snippet -->"
  },
  {
    "path": "_includes/comments-providers/discourse.html",
    "chars": 873,
    "preview": "{% if site.comments.discourse.server %}\n{% include base_path %}\n{% capture canonical %}{{ base_path }}{% if site.permali"
  },
  {
    "path": "_includes/comments-providers/disqus.html",
    "chars": 1052,
    "preview": "{% if site.comments.disqus.shortname %}\n  <script type=\"text/javascript\">\n  \t/* * * CONFIGURATION VARIABLES: EDIT BEFORE"
  },
  {
    "path": "_includes/comments-providers/facebook.html",
    "chars": 426,
    "preview": "<div id=\"fb-root\"></div>\n<script>(function(d, s, id) {\n  var js, fjs = d.getElementsByTagName(s)[0];\n  if (d.getElementB"
  },
  {
    "path": "_includes/comments-providers/google-plus.html",
    "chars": 224,
    "preview": "<script async type=\"text/javascript\" src=\"//apis.google.com/js/plusone.js?callback=gpcb\"></script>\n<noscript>Please enab"
  },
  {
    "path": "_includes/comments-providers/scripts.html",
    "chars": 545,
    "preview": "{% if site.comments.provider and page.comments %}\n\n{% case site.comments.provider %}\n{% when \"disqus\" %}\n  {% include /c"
  },
  {
    "path": "_includes/comments-providers/staticman.html",
    "chars": 1922,
    "preview": "{% if site.repository and site.staticman.branch %}\n  <script>\n    (function ($) {\n    var $comments = $('.js-comments');"
  },
  {
    "path": "_includes/comments.html",
    "chars": 5083,
    "preview": "{% include base_path %}\n\n<div class=\"page__comments\">\n  {% capture comments_label %}{{ site.data.ui-text[site.locale].co"
  },
  {
    "path": "_includes/cv-template.html",
    "chars": 9168,
    "preview": "{% assign cv = site.data.cv %}\n\n<style>\n  .archive {\n    width: 80%;\n    margin: 0 auto;\n    float: none;\n    padding-ri"
  },
  {
    "path": "_includes/feature_row",
    "chars": 1540,
    "preview": "{% include base_path %}\n\n{% if include.id %}\n  {% assign feature_row = page.[include.id] %}\n{% else %}\n  {% assign featu"
  },
  {
    "path": "_includes/footer/custom.html",
    "chars": 627,
    "preview": "<!-- start custom footer snippets -->\n\n<a href=\"/sitemap/\">Sitemap</a>\n\n<!-- Support for MatJax -->\n<script defer src=\"h"
  },
  {
    "path": "_includes/footer.html",
    "chars": 1547,
    "preview": "{% include base_path %}\n\n{% if site.author.github or site.author.bitbucket or site.atom_feed.hide != true %}\n<div class="
  },
  {
    "path": "_includes/gallery",
    "chars": 1462,
    "preview": "{% include base_path %}\n\n{% if include.id %}\n  {% assign gallery = page.[include.id] %}\n{% else %}\n  {% assign gallery ="
  },
  {
    "path": "_includes/group-by-array",
    "chars": 1165,
    "preview": "<!--\n# Jekyll Group-By-Array 0.1.0\n# https://github.com/mushishi78/jekyll-group-by-array\n# © 2015 Max White <mushishi78@"
  },
  {
    "path": "_includes/head/custom.html",
    "chars": 852,
    "preview": "{% include base_path %}\n\n<!-- start custom head snippets -->\n\n<!-- Support for Academicons -->\n<link rel=\"stylesheet\" hr"
  },
  {
    "path": "_includes/head.html",
    "chars": 556,
    "preview": "{% include base_path %}\n\n<meta charset=\"utf-8\">\n\n{% include seo.html %}\n\n<link href=\"{% if site.atom_feed.path %}{{ site"
  },
  {
    "path": "_includes/masthead.html",
    "chars": 1281,
    "preview": "{% include base_path %}\n<div class=\"masthead\">\n  <div class=\"masthead__inner-wrap\">\n    <div class=\"masthead__menu\">\n   "
  },
  {
    "path": "_includes/nav_list",
    "chars": 1546,
    "preview": "{% include base_path %}\n{% assign navigation = site.data.navigation[include.nav] %}\n\n<nav class=\"nav__list\">\n  {% if pag"
  },
  {
    "path": "_includes/page__hero.html",
    "chars": 2808,
    "preview": "{% include base_path %}\n\n{% if page.header.image contains \"://\" %}\n  {% capture img_path %}{{ page.header.image }}{% end"
  },
  {
    "path": "_includes/page__taxonomy.html",
    "chars": 259,
    "preview": "{% include base_path %}\n\n{% if site.tag_archive.type and page.tags[0] %}\n  {% include tag-list.html %}\n{% endif %}\n\n{% i"
  },
  {
    "path": "_includes/paginator.html",
    "chars": 2959,
    "preview": "{% include base_path %}\n\n{% if paginator.total_pages > 1 %}\n<nav class=\"pagination\">\n  <ul>\n    {% comment %} Link for p"
  },
  {
    "path": "_includes/post_pagination.html",
    "chars": 918,
    "preview": "{% include base_path %}\n\n{% if page.previous or page.next %}\n  <nav class=\"pagination\">\n    {% if page.previous %}\n     "
  },
  {
    "path": "_includes/read-time.html",
    "chars": 785,
    "preview": "{% if post.read_time %}\n  {% assign words = post.content | strip_html | number_of_words %}\n{% elsif page.read_time %}\n  "
  },
  {
    "path": "_includes/scripts.html",
    "chars": 106,
    "preview": "<script type=\"module\" src=\"{{ base_path }}/assets/js/main.min.js\"></script>\n\n{% include analytics.html %}\n"
  },
  {
    "path": "_includes/seo.html",
    "chars": 5977,
    "preview": "{% include base_path %}\n\n<!-- begin SEO -->\n{% if site.url %}\n  {% assign seo_url = site.url | append: site.baseurl %}\n{"
  },
  {
    "path": "_includes/sidebar.html",
    "chars": 841,
    "preview": "{% include base_path %}\n\n{% if page.author_profile or layout.author_profile or page.sidebar %}\n  <div class=\"sidebar sti"
  },
  {
    "path": "_includes/social-share.html",
    "chars": 1663,
    "preview": "{% include base_path %}\n\n<section class=\"page__share\">\n  {% if site.data.ui-text[site.locale].share_on_label %}\n    <h4 "
  },
  {
    "path": "_includes/tag-list.html",
    "chars": 1270,
    "preview": "{% include base_path %}\n\n{% case site.tag_archive.type %}\n  {% when \"liquid\" %}\n    {% assign path_type = \"#\" %}\n  {% wh"
  },
  {
    "path": "_includes/toc",
    "chars": 312,
    "preview": "<aside class=\"sidebar__right\">\n<nav class=\"toc\" markdown=\"1\">\n<header><h4 class=\"nav__title\"><i class=\"fa fa-{{ include."
  },
  {
    "path": "_layouts/archive-taxonomy.html",
    "chars": 312,
    "preview": "---\nlayout: default\nauthor_profile: false\n---\n\n<div id=\"main\" role=\"main\">\n  {% include sidebar.html %}\n\n  <div class=\"a"
  },
  {
    "path": "_layouts/archive.html",
    "chars": 552,
    "preview": "---\nlayout: default\n---\n\n{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}\n  {% inclu"
  },
  {
    "path": "_layouts/compress.html",
    "chars": 4500,
    "preview": "---\n# Jekyll layout that compresses HTML\n# v3.0.2\n# https://jch.penibelst.de/\n# © 2014–2015 Anatol Broder\n# MIT License\n"
  },
  {
    "path": "_layouts/cv-layout.html",
    "chars": 1021,
    "preview": "---\nlayout: compress\n---\n\n{% include base_path %}\n\n<!doctype html>\n<html lang=\"{{ site.locale | slice: 0,2 | default: \"e"
  },
  {
    "path": "_layouts/default.html",
    "chars": 572,
    "preview": "---\nlayout: compress\n---\n\n{% include base_path %}\n\n<!doctype html>\n<html lang=\"{{ site.locale | slice: 0,2 }}\" class=\"no"
  },
  {
    "path": "_layouts/single.html",
    "chars": 6369,
    "preview": "---\nlayout: default\n---\n\n{% include base_path %}\n\n{% if page.header.overlay_color or page.header.overlay_image or page.h"
  },
  {
    "path": "_layouts/splash.html",
    "chars": 923,
    "preview": "---\nlayout: default\n---\n\n{% include base_path %}\n\n{% if page.header.overlay_color or page.header.overlay_image or page.h"
  },
  {
    "path": "_layouts/talk.html",
    "chars": 3456,
    "preview": "---\nlayout: default\n---\n\n{% include base_path %}\n\n{% if page.header.overlay_color or page.header.overlay_image or page.h"
  },
  {
    "path": "_pages/404.md",
    "chars": 129,
    "preview": "---\ntitle: \"Page Not Found\"\nsitemap: false\npermalink: /404.html\n---\n\nSorry, but the page you were trying to view does no"
  },
  {
    "path": "_pages/about.md",
    "chars": 7946,
    "preview": "---\npermalink: /\ntitle: \"Academic Pages is a ready-to-fork GitHub Pages template for academic personal websites\"\nauthor_"
  },
  {
    "path": "_pages/archive-layout-with-content.md",
    "chars": 4049,
    "preview": "---\ntitle: \"Archive Layout with Content\"\nlayout: archive\npermalink: /archive-layout-with-content/\n---\n\nA variety of comm"
  },
  {
    "path": "_pages/category-archive.html",
    "chars": 450,
    "preview": "---\nlayout: archive\npermalink: /categories/\ntitle: \"Posts by Category\"\nauthor_profile: true\n---\n\n{% include base_path %}"
  },
  {
    "path": "_pages/collection-archive.html",
    "chars": 767,
    "preview": "---\nlayout: archive\ntitle: \"Posts by Collection\"\npermalink: /collection-archive/\nauthor_profile: true\n---\n\n{% include ba"
  },
  {
    "path": "_pages/cv-json.md",
    "chars": 371,
    "preview": "---\nlayout: archive\ntitle: \"CV\"\npermalink: /cv-json/\nauthor_profile: false\nredirect_from:\n  - /resume-json\n---\n\n{% inclu"
  },
  {
    "path": "_pages/cv.md",
    "chars": 1291,
    "preview": "---\nlayout: archive\ntitle: \"CV\"\npermalink: /cv/\nauthor_profile: true\nredirect_from:\n  - /resume\n---\n\n{% include base_pat"
  },
  {
    "path": "_pages/markdown.md",
    "chars": 13067,
    "preview": "---\npermalink: /markdown/\ntitle: \"Markdown\"\nauthor_profile: true\nredirect_from: \n  - /md/\n  - /markdown.html\n---\n\n{% inc"
  },
  {
    "path": "_pages/non-menu-page.md",
    "chars": 230,
    "preview": "---\npermalink: /non-menu-page/\ntitle: \"Page not in menu\"\nauthor_profile: true\nredirect_from: \n  - \"/nmp/\"\n  - \"/nmp.html"
  },
  {
    "path": "_pages/page-archive.html",
    "chars": 196,
    "preview": "---\nlayout: archive\ntitle: \"Page Archive\"\npermalink: /page-archive/\nauthor_profile: false\n---\n\n{% include base_path %}\n{"
  },
  {
    "path": "_pages/portfolio.html",
    "chars": 197,
    "preview": "---\nlayout: archive\ntitle: \"Portfolio\"\npermalink: /portfolio/\nauthor_profile: true\n---\n\n{% include base_path %}\n\n\n{% for"
  },
  {
    "path": "_pages/publications.html",
    "chars": 963,
    "preview": "---\nlayout: archive\ntitle: \"Publications\"\npermalink: /publications/\nauthor_profile: true\n---\n\n{% if site.author.googlesc"
  },
  {
    "path": "_pages/sitemap.md",
    "chars": 1019,
    "preview": "---\nlayout: archive\ntitle: \"Sitemap\"\npermalink: /sitemap/\nauthor_profile: true\n---\n\n{% include base_path %}\n\nA list of a"
  },
  {
    "path": "_pages/tag-archive.html",
    "chars": 419,
    "preview": "---\nlayout: archive\npermalink: /tags/\ntitle: \"Posts by Tags\"\nauthor_profile: true\n---\n\n{% include base_path %}\n{% includ"
  },
  {
    "path": "_pages/talkmap.html",
    "chars": 411,
    "preview": "---\nlayout: archive\ntitle: \"Talk map\"\npermalink: /talkmap.html\nauthor_profile: true\n---\n\n<p>This map is generated from a"
  },
  {
    "path": "_pages/talks.html",
    "chars": 357,
    "preview": "---\nlayout: archive\ntitle: \"Talks and presentations\"\npermalink: /talks/\nauthor_profile: true\n---\n\n{% if site.talkmap_lin"
  },
  {
    "path": "_pages/teaching.html",
    "chars": 201,
    "preview": "---\nlayout: archive\ntitle: \"Teaching\"\npermalink: /teaching/\nauthor_profile: true\n---\n\n{% include base_path %}\n\n{% for po"
  },
  {
    "path": "_pages/terms.md",
    "chars": 1915,
    "preview": "---\npermalink: /terms/\ntitle: \"Terms and Privacy Policy\"\nmodified: 2016-06-06\n---\n\n{% include base_path %}\n{% include to"
  },
  {
    "path": "_pages/year-archive.html",
    "chars": 529,
    "preview": "---\nlayout: archive\npermalink: /year-archive/\ntitle: \"Blog posts\"\nauthor_profile: true\nredirect_from:\n  - /wordpress/blo"
  },
  {
    "path": "_portfolio/portfolio-1.md",
    "chars": 340,
    "preview": "---\ntitle: \"Portfolio item number 1\"\nexcerpt: \"Short description of portfolio item number 1<br/><img src='/images/500x30"
  },
  {
    "path": "_portfolio/portfolio-2.html",
    "chars": 341,
    "preview": "---\ntitle: \"Portfolio item number 2\"\nexcerpt: \"Short description of portfolio item number 2 <br/><img src='/images/500x3"
  },
  {
    "path": "_posts/2012-08-14-blog-post-1.md",
    "chars": 423,
    "preview": "---\ntitle: 'Blog Post number 1'\ndate: 2012-08-14\npermalink: /posts/2012/08/blog-post-1/\ntags:\n  - cool posts\n  - categor"
  },
  {
    "path": "_posts/2013-08-14-blog-post-2.md",
    "chars": 423,
    "preview": "---\ntitle: 'Blog Post number 2'\ndate: 2013-08-14\npermalink: /posts/2013/08/blog-post-2/\ntags:\n  - cool posts\n  - categor"
  },
  {
    "path": "_posts/2014-08-14-blog-post-3.md",
    "chars": 424,
    "preview": "---\ntitle: 'Blog Post number 3'\ndate: 2014-08-14\npermalink: /posts/2014/08/blog-post-3/\ntags:\n  - cool posts\n  - categor"
  },
  {
    "path": "_posts/2015-08-14-blog-post-4.md",
    "chars": 423,
    "preview": "---\ntitle: 'Blog Post number 4'\ndate: 2015-08-14\npermalink: /posts/2012/08/blog-post-4/\ntags:\n  - cool posts\n  - categor"
  },
  {
    "path": "_posts/2199-01-01-future-post.md",
    "chars": 258,
    "preview": "---\ntitle: 'Future Blog Post'\ndate: 2199-01-01\npermalink: /posts/2012/08/blog-post-4/\ntags:\n  - cool posts\n  - category1"
  },
  {
    "path": "_publications/2009-10-01-paper-title-number-1.md",
    "chars": 945,
    "preview": "---\ntitle: \"Paper Title Number 1\"\ncollection: publications\ncategory: manuscripts\npermalink: /publication/2009-10-01-pape"
  },
  {
    "path": "_publications/2010-10-01-paper-title-number-2.md",
    "chars": 883,
    "preview": "---\ntitle: \"Paper Title Number 2\"\ncollection: publications\ncategory: manuscripts\npermalink: /publication/2010-10-01-pape"
  },
  {
    "path": "_publications/2015-10-01-paper-title-number-3.md",
    "chars": 883,
    "preview": "---\ntitle: \"Paper Title Number 3\"\ncollection: publications\ncategory: manuscripts\npermalink: /publication/2015-10-01-pape"
  },
  {
    "path": "_publications/2024-02-17-paper-title-number-4.md",
    "chars": 822,
    "preview": "---\ntitle: \"Paper Title Number 4\"\ncollection: publications\ncategory: conferences\npermalink: /publication/2024-02-17-pape"
  },
  {
    "path": "_publications/2025-06-08-paper-title-number-5.md",
    "chars": 686,
    "preview": "---\ntitle: \"Paper Title Number 5, with math $$E=mc^2$$\"\ncollection: publications\ncategory: conferences\npermalink: /publi"
  },
  {
    "path": "_sass/_syntax.scss",
    "chars": 5394,
    "preview": "/* ==========================================================================\n   Syntax highlighting\n   ================"
  },
  {
    "path": "_sass/_themes.scss",
    "chars": 3823,
    "preview": "/* ==========================================================================\n   SHARED THEME SETTINGS\n   =============="
  },
  {
    "path": "_sass/include/_mixins.scss",
    "chars": 1054,
    "preview": "/* ==========================================================================\n   MIXINS\n   ============================="
  },
  {
    "path": "_sass/include/_utilities.scss",
    "chars": 8531,
    "preview": "/* ==========================================================================\n   UTILITY CLASSES\n   ===================="
  },
  {
    "path": "_sass/layout/_archive.scss",
    "chars": 4226,
    "preview": "/* ==========================================================================\n   ARCHIVE\n   ============================"
  },
  {
    "path": "_sass/layout/_base.scss",
    "chars": 5985,
    "preview": "/* ==========================================================================\n   BASE ELEMENTS\n   ======================"
  },
  {
    "path": "_sass/layout/_buttons.scss",
    "chars": 2835,
    "preview": "/* ==========================================================================\n   BUTTONS\n   ============================"
  },
  {
    "path": "_sass/layout/_footer.scss",
    "chars": 1696,
    "preview": "/* ==========================================================================\n   FOOTER\n   ============================="
  },
  {
    "path": "_sass/layout/_forms.scss",
    "chars": 6111,
    "preview": "/* ==========================================================================\n   Forms\n   =============================="
  },
  {
    "path": "_sass/layout/_json_cv.scss",
    "chars": 3948,
    "preview": "/* ==========================================================================\n   JSON CV\n   ============================"
  },
  {
    "path": "_sass/layout/_masthead.scss",
    "chars": 1611,
    "preview": "/* ==========================================================================\n   MASTHEAD\n   ==========================="
  },
  {
    "path": "_sass/layout/_navigation.scss",
    "chars": 8676,
    "preview": "/* ==========================================================================\n   NAVIGATION\n   ========================="
  },
  {
    "path": "_sass/layout/_notices.scss",
    "chars": 1861,
    "preview": "/* ==========================================================================\n   NOTICE TEXT BLOCKS\n   ================="
  },
  {
    "path": "_sass/layout/_page.scss",
    "chars": 6583,
    "preview": "/* ==========================================================================\n   SINGLE PAGE/POST\n   ==================="
  },
  {
    "path": "_sass/layout/_reset.scss",
    "chars": 3525,
    "preview": "/* ==========================================================================\n   STYLE RESETS\n   ======================="
  },
  {
    "path": "_sass/layout/_sidebar.scss",
    "chars": 5782,
    "preview": "/* ==========================================================================\n   SIDEBAR\n   ============================"
  },
  {
    "path": "_sass/layout/_tables.scss",
    "chars": 808,
    "preview": "/* ==========================================================================\n   TABLES\n   ============================="
  },
  {
    "path": "_sass/theme/_air_dark.scss",
    "chars": 2499,
    "preview": "/* ==========================================================================\n    AIR THEME - DARK VERSION\n    ========="
  },
  {
    "path": "_sass/theme/_air_light.scss",
    "chars": 2446,
    "preview": "/* ==========================================================================\n    AIR THEME - LIGHT VERSION\n    ========"
  },
  {
    "path": "_sass/theme/_contrast_dark.scss",
    "chars": 3948,
    "preview": "/* ==========================================================================\n   CONTRAST THEME - DARK VERSION\n   ======"
  },
  {
    "path": "_sass/theme/_contrast_light.scss",
    "chars": 3505,
    "preview": "/* ==========================================================================\n   CONTRAST THEME - LIGHT VERSION\n   ====="
  },
  {
    "path": "_sass/theme/_default_dark.scss",
    "chars": 2394,
    "preview": "/* ==========================================================================\n    DEFAULT THEME - DARK VERSION\n    ====="
  },
  {
    "path": "_sass/theme/_default_light.scss",
    "chars": 2126,
    "preview": "/* ==========================================================================\n    DEFAULT THEME - LIGHT VERSION\n    ===="
  },
  {
    "path": "_sass/theme/_dirt_dark.scss",
    "chars": 2590,
    "preview": "/* ==========================================================================\n   DIRT THEME - DARK VERSION\n   =========="
  },
  {
    "path": "_sass/theme/_dirt_light.scss",
    "chars": 2540,
    "preview": "$primary-color              : #343434;\n$dark-primary-color         : mix(#000, $primary-color, 40%);\n$darker-primary-col"
  },
  {
    "path": "_sass/theme/_mint_dark.scss",
    "chars": 2343,
    "preview": "/* ==========================================================================\n   MINT THEME - DARK VERSION\n   =========="
  },
  {
    "path": "_sass/theme/_mint_light.scss",
    "chars": 2578,
    "preview": "/* ==========================================================================\n  MINT THEME - LIGHT VERSION\n  ==========="
  },
  {
    "path": "_sass/theme/_sunrise_dark.scss",
    "chars": 2527,
    "preview": "/* ==========================================================================\n    SUNRISE THEME - DARK VERSION\n    ====="
  },
  {
    "path": "_sass/theme/_sunrise_light.scss",
    "chars": 2729,
    "preview": "/* ==========================================================================\n   SUNRISE THEME - LIGHT VERSION\n   ======"
  },
  {
    "path": "_sass/vendor/breakpoint/_breakpoint.scss",
    "chars": 2554,
    "preview": "//////////////////////////////\n// Default Variables\n//////////////////////////////\n$Breakpoint-Settings: (\n  'default me"
  },
  {
    "path": "_sass/vendor/breakpoint/_context.scss",
    "chars": 3143,
    "preview": "//////////////////////////////\n// Private Breakpoint Variables\n//////////////////////////////\n$private-breakpoint-contex"
  },
  {
    "path": "_sass/vendor/breakpoint/_helpers.scss",
    "chars": 4311,
    "preview": "//////////////////////////////\n// Converts the input value to Base EMs\n//////////////////////////////\n@function breakpoi"
  },
  {
    "path": "_sass/vendor/breakpoint/_legacy-settings.scss",
    "chars": 2771,
    "preview": "@mixin legacy-settings-warning {\n  $legacyVars: (\n    'default-media': 'default media',\n    'default-feature': 'default "
  },
  {
    "path": "_sass/vendor/breakpoint/_no-query.scss",
    "chars": 340,
    "preview": "@function breakpoint-no-query($query) {\n  @if type-of($query) == 'list' {\n    $keyword: nth($query, 1);\n\n    @if type-of"
  },
  {
    "path": "_sass/vendor/breakpoint/_parsers.scss",
    "chars": 6795,
    "preview": "//////////////////////////////\n// Import Parser Pieces\n//////////////////////////////\n@import \"parsers/query\";\n@import \""
  },
  {
    "path": "_sass/vendor/breakpoint/_respond-to.scss",
    "chars": 2884,
    "preview": "////////////////////////\n// Default the Breakpoints variable\n////////////////////////\n$breakpoints: () !default;\n$BREAKP"
  },
  {
    "path": "_sass/vendor/breakpoint/_settings.scss",
    "chars": 1868,
    "preview": "//////////////////////////////\n// Has Setting\n//////////////////////////////\n@function breakpoint-has($setting) {\n  @if "
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/_double.scss",
    "chars": 1081,
    "preview": "//////////////////////////////\n// Import Pieces\n//////////////////////////////\n@import \"double/default-pair\";\n@import \"d"
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/_query.scss",
    "chars": 3931,
    "preview": "@function breakpoint-parse-query($query) {\n  // Parse features out of an individual query\n  $feature-holder: ();\n  $quer"
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/_resolution.scss",
    "chars": 789,
    "preview": "@import \"resolution/resolution\";\n\n@function breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $"
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/_single.scss",
    "chars": 707,
    "preview": "//////////////////////////////\n// Import Pieces\n//////////////////////////////\n@import \"single/default\";\n\n@function brea"
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/_triple.scss",
    "chars": 757,
    "preview": "//////////////////////////////\n// Import Pieces\n//////////////////////////////\n@import \"triple/default\";\n\n@function brea"
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/double/_default-pair.scss",
    "chars": 611,
    "preview": "@function breakpoint-parse-default-pair($first, $second) {\n  $default: breakpoint-get('default pair');\n  $min: '';\n  $ma"
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/double/_default.scss",
    "chars": 450,
    "preview": "@function breakpoint-parse-double-default($first, $second) {\n  $feature: '';\n  $value: '';\n\n  @if type-of($first) == 'st"
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/double/_double-string.scss",
    "chars": 568,
    "preview": "@function breakpoint-parse-double-string($first, $second) {\n  $feature: '';\n  $value: '';\n\n  // Test to see which is the"
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/resolution/_resolution.scss",
    "chars": 1651,
    "preview": "@function breakpoint-make-resolutions($resolution) {\n  $length: length($resolution);\n\n  $output: ();\n\n  @if $length == 2"
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/single/_default.scss",
    "chars": 386,
    "preview": "@function breakpoint-parse-default($feature) {\n  $default: breakpoint-get('default feature');\n\n  // Set Context\n  $conte"
  },
  {
    "path": "_sass/vendor/breakpoint/parsers/triple/_default.scss",
    "chars": 555,
    "preview": "@function breakpoint-parse-triple-default($feature, $first, $second) {\n\n  // Sort into min and max\n  $min: min($first, $"
  },
  {
    "path": "_sass/vendor/font-awesome/_animated.scss",
    "chars": 6515,
    "preview": "// animating icons\n// --------------------------\n\n.#{$fa-css-prefix}-beat {\n  animation-name: #{$fa-css-prefix}-beat;\n  "
  },
  {
    "path": "_sass/vendor/font-awesome/_bordered-pulled.scss",
    "chars": 718,
    "preview": "// bordered + pulled icons\n// -------------------------\n\n.#{$fa-css-prefix}-border {\n  border-color: var(--#{$fa-css-pre"
  },
  {
    "path": "_sass/vendor/font-awesome/_core.scss",
    "chars": 872,
    "preview": "// base icon class definition\n// -------------------------\n\n.#{$fa-css-prefix} {\n  font-family: var(--#{$fa-css-prefix}-"
  },
  {
    "path": "_sass/vendor/font-awesome/_fixed-width.scss",
    "chars": 122,
    "preview": "// fixed-width icons\n// -------------------------\n\n.#{$fa-css-prefix}-fw {\n  text-align: center;\n  width: $fa-fw-width;\n"
  },
  {
    "path": "_sass/vendor/font-awesome/_functions.scss",
    "chars": 2115,
    "preview": "// functions\n// --------------------------\n\n// fa-content: convenience function used to set content property\n@function f"
  },
  {
    "path": "_sass/vendor/font-awesome/_icons.scss",
    "chars": 319,
    "preview": "// specific icon class definition\n// -------------------------\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) "
  },
  {
    "path": "_sass/vendor/font-awesome/_list.scss",
    "chars": 447,
    "preview": "// icons in a list\n// -------------------------\n\n.#{$fa-css-prefix}-ul {\n  list-style-type: none;\n  margin-left: var(--#"
  },
  {
    "path": "_sass/vendor/font-awesome/_mixins.scss",
    "chars": 1992,
    "preview": "// mixins\n// --------------------------\n\n// base rendering for an icon\n@mixin fa-icon {\n  -webkit-font-smoothing: antial"
  },
  {
    "path": "_sass/vendor/font-awesome/_rotated-flipped.scss",
    "chars": 607,
    "preview": "// rotating + flipping icons\n// -------------------------\n\n.#{$fa-css-prefix}-rotate-90 {\n  transform: rotate(90deg);\n}\n"
  },
  {
    "path": "_sass/vendor/font-awesome/_screen-reader.scss",
    "chars": 336,
    "preview": "// screen-reader utilities\n// -------------------------\n\n// only display content to screen readers\n.sr-only,\n.#{$fa-css-"
  },
  {
    "path": "_sass/vendor/font-awesome/_shims.scss",
    "chars": 68619,
    "preview": ".#{$fa-css-prefix}.#{$fa-css-prefix}-glass:before { content: unquote(\"\\\"#{ $fa-var-martini-glass-empty }\\\"\"); }\n.#{$fa-c"
  },
  {
    "path": "_sass/vendor/font-awesome/_sizing.scss",
    "chars": 308,
    "preview": "// sizing icons\n// -------------------------\n\n// literal magnification scale\n@for $i from 1 through 10 {\n  .#{$fa-css-pr"
  },
  {
    "path": "_sass/vendor/font-awesome/_stacked.scss",
    "chars": 633,
    "preview": "// stacking icons\n// -------------------------\n\n.#{$fa-css-prefix}-stack {\n  display: inline-block;\n  height: 2em;\n  lin"
  },
  {
    "path": "_sass/vendor/font-awesome/_variables.scss",
    "chars": 163338,
    "preview": "// variables\n// --------------------------\n\n$fa-css-prefix          : fa !default;\n$fa-style               : 900 !defaul"
  },
  {
    "path": "_sass/vendor/font-awesome/brands.scss",
    "chars": 867,
    "preview": "/*!\n * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/fr"
  },
  {
    "path": "_sass/vendor/font-awesome/fontawesome.scss",
    "chars": 564,
    "preview": "/*!\n * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/fr"
  },
  {
    "path": "_sass/vendor/font-awesome/regular.scss",
    "chars": 750,
    "preview": "/*!\n * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/fr"
  },
  {
    "path": "_sass/vendor/font-awesome/solid.scss",
    "chars": 742,
    "preview": "/*!\n * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/fr"
  },
  {
    "path": "_sass/vendor/font-awesome/v4-shims.scss",
    "chars": 346,
    "preview": "/*!\n * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/fr"
  },
  {
    "path": "_sass/vendor/susy/_su.scss",
    "chars": 32,
    "preview": "// Su\n// ==\n\n@import 'susy/su';\n"
  },
  {
    "path": "_sass/vendor/susy/_susy.scss",
    "chars": 47,
    "preview": "// Susy\n// ====\n\n@import 'susy/language/susy';\n"
  },
  {
    "path": "_sass/vendor/susy/_susyone.scss",
    "chars": 50,
    "preview": "// Susy\n// ====\n\n@import 'susy/language/susyone';\n"
  },
  {
    "path": "_sass/vendor/susy/susy/_su.scss",
    "chars": 104,
    "preview": "// Su\n// ==\n\n@import \"su/utilities\";\n@import \"su/settings\";\n@import \"su/validation\";\n@import \"su/grid\";\n"
  },
  {
    "path": "_sass/vendor/susy/susy/language/_susy.scss",
    "chars": 503,
    "preview": "// Susy Next Syntax\n// ================\n\n$susy-version: 2.1;\n\n@import \"../su\";\n@import \"../output/float\";\n\n@import \"susy"
  },
  {
    "path": "_sass/vendor/susy/susy/language/_susyone.scss",
    "chars": 331,
    "preview": "// ---------------------------------------------------------------------------\n// Partials\n\n$susy-version: 1.5;\n\n@import"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_background.scss",
    "chars": 9110,
    "preview": "// Background Grid Syntax\n// ======================\n\n$susy-overlay-grid-head-exists: false;\n\n\n// Show Grid/s\n// --------"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_bleed.scss",
    "chars": 4574,
    "preview": "// Bleed Syntax\n// ============\n\n// Bleed\n// -----\n// Add negative margins, and equal positive padding to create bleed.\n"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_box-sizing.scss",
    "chars": 1036,
    "preview": "// Susy Box Sizing\n// =================\n\n// Global Box Sizing\n// -----------------\n// Set a box model globally on all el"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss",
    "chars": 3724,
    "preview": "// Breakpoint Integration\n// ======================\n\n$susy-media: () !default;\n$susy-media-fallback: false !default;\n\n$_"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_container.scss",
    "chars": 2179,
    "preview": "// Container Syntax\n// ================\n\n// Container [mixin]\n// -----------------\n// Set a container element\n// - [$lay"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_context.scss",
    "chars": 839,
    "preview": "// Context Syntax\n// ==============\n\n// Nested [function]\n// -----------------\n// Return a subset grid for nested contex"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_gallery.scss",
    "chars": 2486,
    "preview": "// Gallery Syntax\n// ==============\n\n// Gallery\n// -------\n// Create an isolated gallery\n// - $span        : <span>\n// -"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_grids.scss",
    "chars": 1118,
    "preview": "// Grid Syntax\n// ===========\n\n\n// Layout\n// ------\n// Set a new layout using a shorthand\n// - $layout: <settings>\n// - "
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_gutters.scss",
    "chars": 3295,
    "preview": "// Gutter Syntax\n// =============\n\n\n// Gutters\n// -------\n// Set gutters on an element.\n// - [$span]   : <settings>\n@mix"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_isolate.scss",
    "chars": 1524,
    "preview": "// Isolation Syntax\n// ================\n\n\n// Isolate [Mixin]\n// ---------------\n// Set isolation as an override.\n// - $l"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_margins.scss",
    "chars": 2212,
    "preview": "// Margin Syntax\n// =============\n\n// Pre\n// ---\n// Add spanning-margins before an element.\n// - $span  : <span>\n@mixin "
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_padding.scss",
    "chars": 1648,
    "preview": "// Padding Syntax\n// ==============\n\n// Prefix\n// ------\n// Add spanning-padding before an element.\n// - $span  : <span>"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_rows.scss",
    "chars": 2644,
    "preview": "// Row Start & End\n// ===============\n\n// Break\n// -----\n// Apply to any element that should force a line break.\n@mixin "
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_settings.scss",
    "chars": 4756,
    "preview": "// Susy Settings\n// =============\n\n// Susy Language Defaults\n// ----------------------\n// - PRIVATE\n@include susy-defaul"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_span.scss",
    "chars": 4041,
    "preview": "// Span Syntax\n// ===========\n\n// Span [mixin]\n// ------------\n// Set a spanning element using shorthand syntax.\n// - $s"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susy/_validation.scss",
    "chars": 280,
    "preview": "// Validation\n// ==========\n\n\n// Validate Column Math\n// --------------------\n@function valid-column-math(\n  $math,\n  $c"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susyone/_background.scss",
    "chars": 738,
    "preview": "// ---------------------------------------------------------------------------\n// Imports\n\n@import \"compass/layout/grid-"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susyone/_functions.scss",
    "chars": 11256,
    "preview": "// ---------------------------------------------------------------------------\n// Imports\n\n// We need access to some bas"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susyone/_grid.scss",
    "chars": 8977,
    "preview": "// ---------------------------------------------------------------------------\n// Imports\n\n@import \"compass/utilities/ge"
  },
  {
    "path": "_sass/vendor/susy/susy/language/susyone/_isolation.scss",
    "chars": 1687,
    "preview": "// ---------------------------------------------------------------------------\n// Isolation\n\n// Isolate the position of "
  }
]

// ... and 68 more files (download for full content)

About this extraction

This page contains the full source code of the academicpages/academicpages.github.io GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 268 files (895.1 KB), approximately 276.5k tokens, and a symbol index with 20 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!