Academic project template
An academic project page template powered by React + UIKit, w/ markdown and KaTeX support
- ๐ Built with [React](https://react.dev/) + [UIKit](https://getuikit.com/) - ๐ Just one file! Write all metadata & content in [template.yaml](template.yaml) - ๐ Markdown support with full styling capabilities - โ Mathematical equations with KaTeX - ๐จ Customizable themes - ๐ Auto-deployment with GitHub Actions - ๐ฑ Fully responsive design The project is written primarily in JavaScript, first published in 2024. Key topics include: academic-template, academic-website.
๐จ Academic Project Page Template
โจ Features
- ๐ Built with React + UIKit
- ๐ Just one file! Write all metadata & content in template.yaml
- ๐ Markdown support with full styling capabilities
- โ Mathematical equations with KaTeX
- ๐จ Customizable themes
- ๐ Auto-deployment with GitHub Actions
- ๐ฑ Fully responsive design
๐ Demo: default-theme | classic-theme
โ๏ธ Configuration
Simply define everything in a single template.yaml fileโmetadata, Markdown, HTML, and even KaTeX equations. No extra setup required!
yamltheme: default # default || dark organization: 'Your Lab' title: 'Project Title' resources: paper: https://example.com/paper code: https://github.com/your/repo # ... other configurations
With just this file, your project page is ready to go! ๐
๐ฆ Prerequisites
System Requirements
Supported platforms:
- ๐ช Windows (WSL)
- ๐ง Linux
- ๐ macOS
๐ฆ Node.js Setup
Recommended: Install Node.js using Volta
bash# Install Volta curl https://get.volta.sh/ | bash # After restarting your shell... volta install node@22.13.1 volta pin node@22.13.1 # Verify installation node --version # v22.13.1 npm --version # 10.9.2
๐ ๏ธ Development Guide
๐ฅ Installation
shnpm install
๐ป Development Server
shnpm run dev
๐๏ธ Build
shnpm run clean npm run build npm run preview
๐ค Puppeteer Dependencies (for react-snap pre-rendering)
Required packages for Headless Chrome (pre-rendering):
bashsudo apt install -y libgtk2.0-0 libgtk-3-0 libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb libgbm-dev fonts-ipafont
๐จ Customization
- ๐
Customize styles without writing CSS: modify UIKit variables in
src/scss/theme.scss - ๐งฉ Extend components with:
๐ Project Structure
template.yaml # Configuration file
index.html # Root HTML
src/
โโโ components/ # React components
โโโ js/
โ โโโ styles.js # Style settings
โโโ pages/
โ โโโ index.jsx # Main template
โโโ scss/ # Theme settings
โโโ theme.scss
public/
โโโ 001.png # Media files
๐ Release Your Project Page
Automatic Deployment with GitHub Actions
- Go to your repository's Settings > Pages
- Under Build and Deployment > Source, select
GitHub Actions - Configure your remote repository:
bashgit remote add origin your-repo-url git push origin project-page
[!NOTE]
The implementation of the paper is published in the main branch, and the code for the project page is expected to be pushed to a separate branch.
If you want to change the branch settings, please modify.github/workflows/deploy.yaml.
๐จ TroubleShooting
<details> <summary>Branch "project-page" is not allowed to deploy to github-pages due to environment protection rules</summary> Navigate to Settings > Environments > github-pages > ๐๏ธ or set rules properly (add `project-page` to deployable branch). https://docs.github.com/ja/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment#deployment-protection-rules๐ For more details:
๐ถ Husky & Typo Checking
Automatic Typo Checking
This project uses Husky to automatically check for typos during commits. The check is performed using the typos tool and only runs on staged files (files that have been git added).
If you want to ignore specific typos as a dictionary, please add the original and corrected versions to _typos.toml. (doc)
bash[default.extend-words] # Don't correct the surname "Teh" teh = "teh"
Manual Typo Checking
To manually check for typos without committing:
bashnpx typos
This command checks all files in the project, regardless of whether they are staged for commit or not.
Disabling Git Hooks
To temporarily disable all git hooks (including lint, format, and typo validation) during commit:
bashexport HUSKY=0
You can re-enable hooks by unsetting the variable or starting a new terminal session.
๐ License
Contributors
Showing top 1 contributor by commit count.
