The publications generator reads a tab-separated (Documentation 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.
.tsv) or comma-separated (.csv) file containing metadata for each of your papers and writes one .md file per publication into the _publications/ directory. Each generated file contains the correct Jekyll front matter and a short body that Academic Pages uses to populate your Publications listing, individual publication pages, and CV.
Input file format
The generator accepts both.tsv and .csv files. The file must have a header row as its first line. Two header layouts are recognised:
Legacy (8 columns):
category):
Column reference
| Column | Required | Notes |
|---|---|---|
pub_date | Yes | Publication date in YYYY-MM-DD format |
title | Yes | Full title of the paper |
venue | Yes | Journal or conference name |
excerpt | No | Short abstract or description; can be left blank |
citation | Yes | Full citation string for the paper |
url_slug | Yes | Slug used in the filename and permalink, e.g. my-paper-2024 |
paper_url | No | Direct URL to the PDF or publisher page; can be left blank |
slides_url | No | URL to slides; can be left blank |
category | No | Publication category (e.g. manuscripts); defaults to manuscripts if omitted |
pub_date must be formatted as YYYY-MM-DD. The generator uses this value to construct both the output filename (YYYY-MM-DD-[url_slug].md) and the date field in the front matter.Example TSV row
The template ships withpublications.tsv containing three sample rows. Here is the first one (columns separated by tabs):
publications.csv, which adds the category column) looks like:
Running the generator
The generator writes files to
../_publications/ (one level up from markdown_generator/). Check that the expected files are present:Generated output
For the example TSV row shown above, the generator produces_publications/2009-10-01-paper-title-number-1.md with the following content:
collection: publicationsis always set and tells Jekyll which collection this page belongs to.categorydefaults tomanuscriptswhen using the 8-column legacy header.permalinkis constructed as/publication/YYYY-MM-DD-[url_slug].- Single and double quotes and ampersands in
excerpt,venue, andcitationare HTML-escaped (e.g."becomes") to keep the YAML valid. paperurlandexcerptfront matter fields are only written when the corresponding column value is longer than 5 characters.
Jupyter notebook alternative
publications.ipynb is a Jupyter notebook that runs the same generation logic with additional explanatory documentation inline. It is a good choice if you are working locally and want to inspect the intermediate data or follow the process interactively.
publications.tsv by default and writes to ../_publications/.
BibTeX and ORCID workflows
If your publication data lives in BibTeX files or an ORCID profile rather than a spreadsheet, two additional notebooks are available inmarkdown_generator/:
PubsFromBib.ipynb/pubsFromBib.py— Reads one or more.bibfiles and generates_publications/*.mdfrom them. You configure apublistdictionary in the notebook with your BibTeX filenames, venue keys, and any per-file prefix text. Requires thepybtexpackage.OrcidToBib.ipynb— Fetches all works associated with an ORCID iD using the/worksAPI, retrieves full citation data via theput-codeidentifiers, and outputs BibTeX that can then be fed intoPubsFromBib.ipynb.