A professional academic website built with Jekyll and optimized for seamless Obsidian integration. Features Computer Modern typography, responsive design, and complete content management through an Obsidian vault.
- Complete Obsidian Integration: All content managed through Obsidian vault with automated Jekyll publishing
- Academic Typography: Professional Computer Modern fonts for that LaTeX-quality appearance
- Responsive Design: Mobile-first design with clean, academic aesthetics
- Rich Content Types: Dedicated collections for publications, experience, education, talks, and teaching
- Automated Deployment: GitHub Actions workflow for continuous deployment to GitHub Pages
- SEO Optimized: Built-in SEO tags, structured data, and RSS feeds
- Professional Layout: Header contact information, refined navigation, and print-friendly styles
Website URL: https://mechanicpanic.github.io/academic-website/
- Click the green "Use this template" button above
- Create your new repository (e.g.,
your-username/academic-website) - Clone your new repository locally
- Edit
_config.yml- Add your name, email, social links - Edit
vault/_pages/index.md- Write your bio - Add content using Obsidian or directly editing markdown files
- See
USER_CONFIG.mdfor detailed customization guide
- Push to GitHub
- Enable GitHub Pages in repository Settings β Pages
- Your site will be live at
https://your-username.github.io/your-repo-name/
- Run
./update-design.shto get latest template improvements - Your content stays safe, only design files update
- Static Site Generator: Jekyll 4.3+
- Content Management: Obsidian vault with templates
- Typography: Computer Modern web fonts via CDN
- Styling: Modern SCSS with CSS custom properties
- Deployment: GitHub Actions + GitHub Pages
- Version Control: Git with automated CI/CD
your-academic-website/ # Your repository from template
βββ _config.yml # π― YOUR SETTINGS - Edit this!
βββ _layouts/ # π§ Template files (updated via script)
β βββ default.html # Base layout with header/nav/footer
β βββ publication.html # Publication detail page
β βββ experience.html # Experience detail page
β βββ talk.html # Talk detail page
β βββ teaching.html # Teaching detail page
βββ assets/css/main.scss # π¨ Styles (customize colors here)
βββ Gemfile # Ruby dependencies
βββ vault/ # π YOUR CONTENT - All yours!
β βββ _pages/ # Website pages
β β βββ index.md # π Homepage - Write your bio here
β β βββ cv.md # π Your CV page
β β βββ publications.md # Publications listing page
β β βββ research.md # Research overview page
β β βββ teaching.md # Teaching portfolio page
β β βββ talks.md # Talks & presentations page
β β βββ contact.md # Contact information page
β βββ _publications/ # π Add your papers here
β βββ _experience/ # π Add your work experience
β βββ _education/ # π Add your degrees
β βββ _talks/ # π Add your presentations
β βββ _teaching/ # π Add your courses
β βββ .obsidian/ # Obsidian configuration
β βββ templates/ # Content creation templates
βββ .github/workflows/jekyll.yml # π§ Automated deployment
βββ update-design.sh # π Design update script
βββ USER_CONFIG.md # π Your customization guide
βββ README.md # This documentation
Legend:
- π YOUR CONTENT - Edit freely, these are your files
- π― YOUR SETTINGS - Customize for your site
- π¨ STYLE CUSTOMIZATION - Safe to modify colors/fonts
- π§ TEMPLATE FILES - Updated via
update-design.sh - π UPDATE TOOLS - Keep your design current
-
Install Homebrew (if not already installed):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Install Ruby via Homebrew:
brew install ruby
-
Add Homebrew Ruby to your PATH: Add this to your
~/.zshrc(or~/.bash_profileif using bash):export PATH="/opt/homebrew/opt/ruby/bin:$PATH" export LDFLAGS="-L/opt/homebrew/opt/ruby/lib" export CPPFLAGS="-I/opt/homebrew/opt/ruby/include" export PKG_CONFIG_PATH="/opt/homebrew/opt/ruby/lib/pkgconfig"
-
Reload your shell:
source ~/.zshrc
-
Verify installation:
which ruby # Should show: /opt/homebrew/opt/ruby/bin/ruby ruby -v # Should show: ruby 3.x.x
-
Install rbenv via Homebrew:
brew install rbenv ruby-build
-
Initialize rbenv:
rbenv init
-
Add rbenv to your shell (add to
~/.zshrc):eval "$(rbenv init - zsh)"
-
Install and set Ruby version:
rbenv install 3.2.0 rbenv global 3.2.0
-
Verify installation:
which ruby # Should show: /Users/yourusername/.rbenv/shims/ruby ruby -v # Should show: ruby 3.2.0
After installing Ruby with either method:
gem install bundlerIf you see permission errors:
- β Don't use
sudowith gem commands - β Use Homebrew or rbenv as described above
If bundle install fails:
# Set bundle to install gems locally
bundle config set --local path 'vendor/bundle'
bundle installCheck your Ruby setup:
# Verify you're not using system Ruby
which ruby
# Should NOT show: /usr/bin/ruby
# Check gem environment
gem env
# Look for paths under /opt/homebrew or ~/.rbenv-
Use this template to create your repository
- Click "Use this template" button
- Clone YOUR new repository locally
-
Install Jekyll dependencies
cd your-academic-website bundle install -
Customize your site
# Edit your basic settings nano _config.yml # Edit your homepage bio nano vault/_pages/index.md
-
Run local development server
bundle exec jekyll serve --host 127.0.0.1 --port 4000 -
View the site Open http://127.0.0.1:4000 in your browser
- Open Obsidian
- Open vault: Point to
your-academic-website/vault/ - Use templates: Cmd/Ctrl+P β "Templater: Create new note from template"
- Available templates:
- Publication.md - Research papers and publications
- Experience.md - Professional positions
- Education.md - Academic degrees
- Talk.md - Presentations and seminars
- Teaching.md - Courses and educational activities
- Page.md - General website pages
π‘ Pro tip: All your content lives in the vault/ directory, making it easy to manage everything through Obsidian while keeping design updates separate!
- In Obsidian: Cmd/Ctrl+P β "Templater: Create new note from template"
- Select "Publication" template
- Fill in the front matter:
--- layout: publication title: "Your Paper Title" date: 2024-01-15 year: 2024 authors: - "Your Name" - "Co-author Name" venue: "Conference/Journal Name" type: "conference" status: "published" abstract: | Brief description of your research... keywords: - "keyword1" - "keyword2" doi: "10.1000/123456" arxiv: "2401.12345" pdf: "/assets/pdfs/paper.pdf" code: "https://github.com/user/repo" ---
- Save in
vault/_publications/directory - Jekyll automatically rebuilds the site
Edit academic-website/docs/_config.yml:
title: "Your Name"
subtitle: "Your Position"
email: [email protected]
orcid: 0000-0000-0000-0000
scholar: your_scholar_id
github_username: your_username
linkedin: your_linkedinEdit academic-website/docs/assets/css/main.scss:
:root {
--primary-text: #2d3748; // Dark gray-blue
--secondary-text: #4a5568; // Medium gray
--accent-color: #5a67d8; // Muted indigo
--background: #ffffff; // Pure white
--surface: #f7fafc; // Very light gray
}- Header:
academic-website/docs/_layouts/default.html - Publication display:
academic-website/docs/_layouts/publication.html - Page structure: Individual layout files in
_layouts/
The site automatically deploys to GitHub Pages via GitHub Actions:
- Push changes to the
masterbranch - GitHub Actions builds the Jekyll site
- Deploys to
https://yourusername.github.io/academic-website/
cd academic-website/docs
bundle exec jekyll build
# Upload _site/ directory to your web server- Add
CNAMEfile toacademic-website/docs/:yourdomain.com - Configure DNS to point to GitHub Pages
- Enable HTTPS in repository settings
Add to _config.yml:
google_analytics: "G-XXXXXXXXXX"The site includes print-optimized CSS for generating PDF versions of your CV directly from the browser.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
- Documentation: Check the comprehensive guides in this README
- Issues: Report bugs and request features via GitHub Issues
- Discussions: Join conversations in GitHub Discussions
- Jekyll: Static site generator that powers the website
- Obsidian: Outstanding note-taking app that enables seamless content management
- Computer Modern Fonts: Beautiful typography courtesy of dreampulse/computer-modern-web-font
- GitHub Pages: Free hosting for academic websites
Built with β€οΈ for the academic community
Creating beautiful, maintainable academic websites should be simple. This template provides everything you need to showcase your research and professional work with the elegance of LaTeX typography and the convenience of modern web technologies.