This repository hosts a static website for archiving and sharing academic research papers.
- Landing Pages: Individual HTML pages for each paper with detailed abstracts.
- Automatic Generation: GitHub Actions generate HTML landing pages from metadata in
papers.json. - Responsive Design: Clean layout for easy browsing.
researcharchive.github.io/
├── index.html # Main page listing papers (Jekyll-generated)
├── sitemap.xml # Auto-generated by Jekyll sitemap plugin
├── _config.yml # Jekyll config
├── Gemfile # Ruby dependencies
├── README.md # This file
├── _data/
│ └── papers.json # Paper metadata
├── papers/ # HTML abstract pages (auto-generated)
│ └── paper-name.html
└── pdfs/ # PDF files and metadata JSONs
├── paper-name.pdf
└── paper-name.json
-
Add PDF File:
- Save your PDF as
filename.pdfin thepdfs/folder.
- Save your PDF as
-
Add BibTeX Reference (Optional):
- If you want to provide a BibTeX reference on the paper's page, create a file named
filename.bibin thebibs/folder with the BibTeX entry.
- If you want to provide a BibTeX reference on the paper's page, create a file named
-
Configure Metadata:
-
Edit
_data/papers.jsonand add a new entry. Ensure the"pdf"field matches the filename exactly.{ "title": "Your Paper Title", "authors": ["Doe, John", "Smith, Jane"], // Format: "Last, First" "date": "2025-12-26", "abstract": "Detailed abstract...", "pdf": "filename.pdf", "venue": "Conference or Journal Name", "volume": "10", // Optional "issue": "1", // Optional "firstpage": "100", // Optional "lastpage": "110" // Optional }
-
-
Commit and Push:
- Commit the PDF, bib file (if any), and the updated
papers.json. - Push to the
mainbranch.
- Commit the PDF, bib file (if any), and the updated
-
Automatic HTML Generation:
- GitHub Actions will detect the changes and generate
papers/filename.htmlwith meta tags. - The main page will automatically list the new paper.
- GitHub Actions will detect the changes and generate
- Jekyll Site: Processes
index.htmland_data/papers.jsonto generate the main page. - Static Files:
papers/andpdfs/are served as static content. - Sitemap: Auto-generated by Jekyll's sitemap plugin.
- Automation: Python script in
.github/scripts/generates HTML pages frompapers.json. - Editing papers.json: Use a JSON editor or text editor. Ensure it's valid JSON array of objects. Sort by date descending for best display.
Ensure metadata is complete and PDFs are properly formatted. Test locally if needed.
To test the site locally before pushing to GitHub Pages:
-
Install Dependencies:
- Ensure Ruby is installed (version 2.5 or higher).
- Install Bundler:
gem install bundler
-
Clone and Setup:
- Clone the repository:
git clone https://github.com/yourusername/researcharchive.github.io.git - Navigate to the directory:
cd researcharchive.github.io - Install gems:
bundle install
- Clone the repository:
-
Serve Locally:
- Run the Jekyll server:
bundle exec jekyll serve - Open your browser to
http://localhost:4000to view the site.
- Run the Jekyll server:
-
Test Changes:
- Make edits to files, then refresh the browser.
- For paper pages, run the update script manually if needed:
python .github/scripts/update_papers.py
- Hosted on GitHub Pages at
https://researcharchive.github.io. - Automatic builds on pushes to
main. - Site updates within minutes after push.