Static simple academic website built with org-mode. No build system. No complexity.
/ ├── index.org # Your content (edit this) ├── index.html # Generated (don't edit directly) ├── style.css # Styling ├── cv.pdf # Your CV (add this) └── README.org # This file
Open index.org in Emacs and fill in your information:
- Replace
[Your Name],[Your Position], etc. with your actual details - Add your publications, teaching, projects
- Update contact information
In Emacs, with index.org open:
Method 1: Keyboard shortcut
C-c C-e h h
Method 2: Full command
M-x org-html-export-to-html
This creates/updates index.html in the same directory.
Open index.html in your browser to see how it looks.
git add index.org index.html style.css
git commit -m "Update personal site"
git push- Go to your repository on GitHub:
https://github.com/yourusername/yourusername.github.io - Click Settings → Pages
- Under “Source”, select:
- Source:
Deploy from a branch - Branch:
main(ormaster) - Folder:
/ (root)
- Source:
- Click Save
- Wait 1-2 minutes, then visit:
https://yourusername.github.io
If this is already set up as a GitHub Pages repo, just push and it will auto-deploy.
- Export your CV as
cv.pdf - Place it in this directory
- The link in the Contact section will work automatically
*bold* /italic/ _underlined_ =code= ~verbatim~
[[https://example.com][Link Text]] [[file:cv.pdf][CV (PDF)]] [[mailto:email@example.com][email@example.com]]
* Top Level Heading ** Second Level *** Third Level
Edit style.css to change fonts, colors, spacing, etc.
Add these to the top of index.org:
#+OPTIONS: toc:t # Enable table of contents #+OPTIONS: num:t # Enable section numbering #+OPTIONS: author:nil # Hide author name
See Org Export Options for more.
You’re not in Emacs. Open index.org in Emacs first.
- Check you have org-mode installed:
M-x org-version - If needed, update org-mode:
M-x package-refresh-contentsthenM-x package-install RET org
- Check GitHub Actions tab for deployment status
- Hard refresh your browser:
Cmd+Shift+R(Mac) orCtrl+F5(Windows) - Wait 1-2 minutes for GitHub’s CDN to update
This setup is intentionally simple:
- One source file:
index.org - One build step: Export to HTML
- Zero dependencies: Just org-mode (comes with Emacs)
- No build pipeline: No webpack, npm, Jekyll, Hugo, etc.
Edit. Export. Push. Done.