Academic Work is a clean Hugo theme for researchers, academics, and technical writers. It is built for publishing papers, notes, teaching material, projects, and downloadable documents with a quiet editorial layout.
The theme includes a complete exampleSite/ so you can preview the design before using it in your own Hugo site.
| Research | Notes | Article |
|---|---|---|
![]() |
![]() |
![]() |
| Library | Projects | Theme reference |
|---|---|---|
![]() |
![]() |
![]() |
- Academic sections for research, notes, library, projects, teaching, and about pages
- Responsive layout for mobile, tablet, and desktop
- Self-hosted Source Serif 4 typography
- Dark mode through
prefers-color-scheme - Accessible landmarks, skip link, keyboard focus states, and current-page navigation
- KaTeX support for inline and display math
- RSS, sitemap, robots.txt, Open Graph, Twitter Card, and JSON-LD metadata
- Tag pages and tag index
- PDF link styling with new-tab context for screen readers
- Static
/search.jsonoutput for adding client-side search - SCSS structure with
aw-class prefixing
- Hugo Extended
0.122.0or newer
Run this from the repository root:
hugo server --config exampleSite/hugo.toml --contentDir exampleSite/contentIf you are currently inside public/, move back to the repository root first:
cd ..
hugo server --config exampleSite/hugo.toml --contentDir exampleSite/contentAdd the theme as a Git submodule:
git submodule add https://github.com/sinhaparth5/academic-work themes/academic-workThen set the theme in your site config:
theme = "academic-work"You can also use it as a Hugo module:
[module]
[[module.imports]]
path = "github.com/sinhaparth5/academic-work"See exampleSite/hugo.toml for the full demo configuration.
baseURL = "https://example.com/"
languageCode = "en"
title = "Your Name"
theme = "academic-work"
enableRobotsTXT = true
disableHugoGeneratorInject = true
[params]
description = "Research, writing, teaching, and projects."
author = "Your Name"
tagline = "Department · Institution"
email = "you@example.com"
intro = "A short introduction shown on the home page."
images = ["/images/cover.png"]
math = false
mainSections = ["research", "notes", "library", "projects"]
[params.seo]
siteName = "Your Name"
twitterHandle = "@yourhandle"
googleTagManagerID = "GTM-XXXXXXX"
googleAnalyticsID = "G-XXXXXXXXXX"
cookieConsentBanner = true
cookieConsentPrivacyURL = "/privacy/"
defaultRobots = "index,follow"
imageWidth = 1200
imageHeight = 630Edit data/navigation/main.toml:
[[items]]
name = "Research"
url = "/research/"
[[items]]
name = "Notes"
url = "/notes/"| Section | Archetype | Use |
|---|---|---|
research |
paper |
Publications, preprints, talks, and working papers |
notes |
note |
Reading notes, lecture notes, and drafts |
library |
library |
PDFs, appendices, CVs, and datasets |
projects |
project |
Software, experiments, and research tools |
teaching |
teaching |
Courses, syllabi, and teaching material |
about |
default |
Profile or biography page |
Create new content with Hugo:
hugo new research/my-paper.md
hugo new notes/my-note.md
hugo new library/my-document.md
hugo new projects/my-project.md
hugo new teaching/my-course.mdResearch page:
---
title: "Paper Title"
date: 2024-09-01
summary: "One-sentence description."
authors: ["Jane Smith", "John Doe"]
publication: "Journal or Conference"
year: 2024
tags: ["distributed systems", "consensus"]
links:
- label: "PDF"
url: "/files/paper.pdf"
- label: "Code"
url: "https://github.com/example/project"
---Library item:
---
title: "Curriculum Vitae"
date: 2024-06-01
summary: "Current academic CV."
file: "/files/cv.pdf"
---Enable MathSnap globally with:
[params]
math = trueOr enable it per page:
---
math: true
---Use standard inline and display math:
Inline math uses $E = mc^2$.
$$
\int_{-\infty}^{\infty} e^{-x^2}\,dx = \sqrt{\pi}
$$Recommended paths:
static/
favicon.ico
files/
paper.pdf
images/
cover.png
icons/
favicon-16x16.png
favicon-32x32.png
apple-touch-icon.png
icon-192.png
icon-512.png
Social icons used by the demo live in assets/images/socials/.
The repository includes a small validation suite:
npm run validateIt checks content front matter, local links, generated output, image attributes, JSON-LD, and search index generation.
For a Hugo Themes submission, make sure these files are present:
images/screenshot.png
images/tn.png
Use the screenshots in assets/images/pics/ as the source for those final listing images.






