Every page on an Academic Pages site lives in theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/academicpages/academicpages.github.io/llms.txt
Use this file to discover all available pages before exploring further.
_pages/ directory as either a Markdown (.md) or HTML (.html) file. Jekyll discovers these files because _pages is listed in the include array of _config.yml, which tells Jekyll to process that non-standard directory alongside the rest of the site. Once a file exists in _pages/ with the right front matter, it becomes a published page at whatever permalink you specify — completely independent of any navigation menu.
Front Matter
Every page file must open with a YAML front matter block delimited by triple dashes (---). The fields below control how the page is rendered and where it lives.
Required fields
| Field | Description |
|---|---|
permalink | The URL path for the page (e.g. /about/). |
title | The page title shown in the browser tab and page header. |
Commonly used fields
| Field | Type | Description |
|---|---|---|
layout | string | The Jekyll layout to use. Defaults to single for _pages (set in _config.yml). |
author_profile | boolean | Whether to display the author sidebar. Defaults to true for pages. |
redirect_from | array | Old URLs that should redirect to this page (requires jekyll-redirect-from plugin). |
The
_config.yml defaults block sets layout: single and author_profile: true for all pages in _pages/, so you only need to include those fields in front matter when you want to override the default.Front matter examples
- about.md (home page)
- terms.md
permalink: / makes this page the site’s home page. The redirect_from list ensures visitors who bookmark /about/ are forwarded here automatically.How Jekyll Includes _pages
By default, Jekyll only processes files in the repository root and a handful of well-known directories. Because _pages/ starts with an underscore, it would normally be ignored. The include key in _config.yml overrides this:
_pages/ is picked up by Jekyll on the next build and published to the URL given by its permalink.
Adding a Page to the Navigation
The top navigation bar is controlled entirely by_data/navigation.yml. Listing a page there does not affect whether it is built — it only determines whether a link appears in the header. To add your page:
Open _data/navigation.yml
Find the
main: list, which contains all the header links in display order.Add your page entry
Append (or insert) a new entry with a
title label and the url matching your page’s permalink:Non-Menu Pages
A page that exists in_pages/ but is not listed in navigation.yml is still fully built and accessible — it simply has no header link. The template includes non-menu-page.md as an explicit example of this pattern, demonstrating that you can publish content at a predictable URL (useful for supplementary material, hidden landing pages, or pages linked only from within your content) without cluttering the navigation bar.
You can link to a non-menu page from anywhere in your site using its permalink:
Special Pages Already in the Template
The template ships with a set of pre-built_pages/ files. Most are wired into navigation.yml by default; a few serve infrastructure roles.
| File | Permalink | Purpose |
|---|---|---|
about.md | / | Home / about page |
cv.md | /cv/ | Markdown-based CV |
cv-json.md | /cv-json/ | JSON-based CV (commented out in navigation by default) |
non-menu-page.md | /non-menu-page/ | Example page not listed in navigation |
markdown.md | /markdown/ | Markdown and formatting guide |
404.md | /404.html | Custom 404 error page |
sitemap.md | /sitemap/ | Human-readable sitemap listing all pages, posts, and collections |
terms.md | /terms/ | Terms and privacy policy |
year-archive.html | /year-archive/ | Blog posts grouped by year |
category-archive.html | /categories/ | Blog posts grouped by category |
tag-archive.html | /tags/ | Blog posts grouped by tag |
collection-archive.html | /collection-archive/ | All collection items grouped by collection |
talkmap.html | /talkmap.html | Interactive map of talk locations |
The 404 page
404.md is the only page that deliberately omits author_profile and most layout options. GitHub Pages serves it automatically whenever a visitor requests a URL that does not exist:
sitemap: false prevents it from appearing in the auto-generated XML sitemap.
Archive pages
The year, category, tag, and collection archive pages use thearchive layout and contain Liquid loops that automatically pull in content from site.posts or site.collections — no manual updates needed when you add new posts.
The sitemap page
sitemap.md uses the archive layout and contains Liquid that iterates over site.pages, site.posts, and every collection to produce a complete human-readable index of the site. A machine-readable sitemap.xml is generated separately by the jekyll-sitemap plugin.
Creating a New Page
Create the file in _pages/
Add a new
.md file. The filename does not affect the published URL — the permalink field does:Add to navigation (optional)
To show a link in the header, add an entry to
_data/navigation.yml as described in the navigation section above.