Academic Pages uses Jekyll Kramdown with the GitHub Flavored Markdown (GFM) parser to render allDocumentation 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.
.md files. While this is similar to the Markdown you write on GitHub, there are minor differences in edge cases — and Kramdown adds several powerful extras like definition lists, footnotes, and inline attribute syntax not available in standard GFM.
Key file locations
Before editing content, it helps to know where everything lives in the repository:| Path | Purpose |
|---|---|
_config.yml | Basic site configuration |
_data/navigation.yml | Top navigation bar links |
_pages/ | Standalone single pages |
_publications/ | Academic publication entries |
_portfolio/ | Portfolio project entries |
_posts/ | Blog posts |
_teaching/ | Teaching experience entries |
_talks/ | Talk and presentation entries |
_includes/footer.html | Site footer HTML |
/files/ | Static files such as PDFs |
images/profile.png | Sidebar profile image (path set in _config.yml) |
Tips and hints
Collections of pages (publications, portfolio, posts, teaching, talks) are.md or .html files placed in their respective directories. The file extension controls how Jekyll processes them: name a file .md to render it as Markdown, name it .html to render it as raw HTML.
Emoji support via Jemoji
Academic Pages includes the Jemoji plugin, which means you can use GitHub-style emoji shortcodes directly in your Markdown:Client-side scripts
GitHub Pages does not allow server-side code, but client-side scripts run fine. This means services like Google Analytics are fully supported. The template wiki has up-to-date instructions for enabling it.CV formats
Your CV can be written in Markdown (preview at/cv/) or generated from a JSON data file (preview at /cv-json/). The layouts differ slightly between the two. Update _data/navigation.yml to point the CV menu link at whichever version you use — the JSON version is hidden by default.
Tables
Kramdown supports two table styles. The first is a simple pipe table without a footer row:|---|), and an optional footer row separated by |===|:
:- for left, :-: for center, -: for right.
Blockquotes
A single-line blockquote uses the> prefix:
Definition lists
Kramdown supports definition lists natively — a feature not available in standard GitHub Markdown:Footnotes
Footnotes can use either numeric or text identifiers, as long as the values are unique across the page:No spaces are allowed in text-based footnote names.
[^my note] is invalid; use [^my-note] instead.Notices (callouts)
Basic notices or call-outs are created by appending{: .notice} on the line immediately following a paragraph:
Buttons
Apply the.btn class to any link to make it render as a button:
HTML tags
Because Kramdown processes HTML inline, you can use standard HTML tags anywhere in your Markdown files.Address tag
Address tag
Use the
<address> element for contact or postal information:Abbreviation tag
Abbreviation tag
Kramdown has a special syntax for abbreviations that adds a tooltip on hover:
Cite tag
Cite tag
Use
<cite> to attribute a quotation to its source:Details / Summary (collapsible sections)
Details / Summary (collapsible sections)
The Add the
<details> tag works well alongside Markdown and produces a collapsible section:open attribute to have the section expanded by default:Keyboard tag
Keyboard tag
Use
<kbd> to render text that looks like a keyboard key:Preformatted tag
Preformatted tag
The
<pre> tag preserves whitespace and renders content in a monospace font without syntax highlighting:Insert and Strike tags
Insert and Strike tags
Subscript and Superscript tags
Subscript and Superscript tags
Code blocks with syntax highlighting
Academic Pages uses Rouge for syntax highlighting. Specify the language after the opening fence:```python, ```r, ```bash, ```javascript).
Heading levels
Kramdown supports headings from H1 through H6 using# prefixes: