Skip to content

researcharchive/researcharchive.github.io

Repository files navigation

Academic Research Archive

This repository hosts a static website for archiving and sharing academic research papers.

Features

  • 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.

Folder Structure

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

Adding a New Paper

  1. Add PDF File:

    • Save your PDF as filename.pdf in the pdfs/ folder.
  2. Add BibTeX Reference (Optional):

    • If you want to provide a BibTeX reference on the paper's page, create a file named filename.bib in the bibs/ folder with the BibTeX entry.
  3. Configure Metadata:

    • Edit _data/papers.json and 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
      }
  4. Commit and Push:

    • Commit the PDF, bib file (if any), and the updated papers.json.
    • Push to the main branch.
  5. Automatic HTML Generation:

    • GitHub Actions will detect the changes and generate papers/filename.html with meta tags.
    • The main page will automatically list the new paper.

Site Configuration

  • Jekyll Site: Processes index.html and _data/papers.json to generate the main page.
  • Static Files: papers/ and pdfs/ are served as static content.
  • Sitemap: Auto-generated by Jekyll's sitemap plugin.
  • Automation: Python script in .github/scripts/ generates HTML pages from papers.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.

Contributing

Ensure metadata is complete and PDFs are properly formatted. Test locally if needed.

Deployment

Local Testing

To test the site locally before pushing to GitHub Pages:

  1. Install Dependencies:

    • Ensure Ruby is installed (version 2.5 or higher).
    • Install Bundler: gem install bundler
  2. 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
  3. Serve Locally:

    • Run the Jekyll server: bundle exec jekyll serve
    • Open your browser to http://localhost:4000 to view the site.
  4. 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

GitHub Pages Deployment

  • Hosted on GitHub Pages at https://researcharchive.github.io.
  • Automatic builds on pushes to main.
  • Site updates within minutes after push.