This repository is being refactored into a two-track personal website system:
The old design philosophy and visual rules were recovered into DESIGN.md. Do not lose that file; it is the visual contract for the personal version of the site.
After Hugo builds the site:
/ is the academic homepage generated by Hugo Blox Academic./personal/ is the preserved personal homepage UI./publications/, /projects/, /experience/, and related academic routes are generated by Hugo from Markdown content.The previous hand-written academic root page has been removed:
index.html was deleted intentionally.academic.css and academic.js were deleted intentionally.The legacy static personal/section pages still exist at repo root for reference:
personal.htmlresearch.htmlpublications.htmlexperience.htmlprojects.htmlcontact.htmlstyles.cssscript.jsThe canonical Hugo personal page is now site/content/personal/index.md plus site/layouts/personal/single.html.
TPMAM/
assets/ # PDFs and images, mounted into Hugo as /assets/...
profile-data/ # Human-editable source of truth
README.md # How to edit profile data
bib/publications.bib # Consolidated BibTeX
hugo-content/ # Mounted into Hugo content/
_index.md # Academic homepage landing sections
experience.md # Academic experience page
blog/ # News updates
projects/ # Research project pages
publications/ # Publication page bundles + cite.bib
hugo-data/ # Mounted into Hugo data/
authors/me.yaml # Hugo Blox author/CV profile
profile.yaml # Shared personal-page copy and asset paths
links.yaml # Shared links
education.yaml # Structured education data
experience.yaml # Structured experience data
skills.yaml # Structured skills/languages data
site/ # Hugo Blox Academic source site
config/_default/ # Hugo/Hugo Blox config
content/personal/index.md # /personal/ route
layouts/personal/single.html # Preserved personal UI template
static/styles.css # Copied personal UI CSS, visual contract
static/script.js # Copied personal UI JS, visual contract
go.mod # Hugo module dependencies
package.json # Tailwind/Pagefind dependencies
.github/workflows/deploy.yml # GitHub Pages build/deploy workflow
DESIGN.md # Restored original design and aesthetic spec
AGENTS.md # Instructions for future coding agents
The site content should be edited in profile-data/, not directly in generated output.
Use these files first:
profile-data/hugo-data/authors/me.yaml: Hugo Blox author profile, affiliations, research interests, education, experience, skills, languages, social links.profile-data/hugo-data/profile.yaml: shared copy used by the /personal/ Hugo template, including hero text, keywords, featured research, selected publications, and asset paths.profile-data/hugo-data/links.yaml: reusable URLs for email, GitHub, Google Scholar, CV, and poster PDFs.profile-data/hugo-content/publications/*/index.md: one publication per folder.profile-data/hugo-content/publications/*/cite.bib: BibTeX for the corresponding publication page bundle.profile-data/hugo-content/projects/*/index.md: research project pages.profile-data/hugo-content/blog/*/index.md: news items.profile-data/bib/publications.bib: consolidated BibTeX record list.Hugo mounts these folders through site/config/_default/module.yaml:
mounts:
- source: ../profile-data/hugo-content
target: content
- source: ../profile-data/hugo-data
target: data
- source: ../assets
target: static/assets
This is the key architecture decision: Markdown/YAML controls the academic site and the preserved personal page.
The Hugo source is in site/ and follows the Hugo Blox Academic CV template structure.
Important files:
site/go.mod: Hugo Blox module dependencies.site/hugoblox.yaml: pinned Hugo version metadata, currently 0.161.1.site/config/_default/hugo.yaml: base Hugo configuration.site/config/_default/params.yaml: Hugo Blox identity/theme/search/citation settings.site/config/_default/menus.yaml: academic navbar entries.site/config/_default/module.yaml: mounts shared data/content/assets.site/package.json: frontend dependencies used by Hugo Blox, including Tailwind and Pagefind.The selected template direction is Hugo Blox Academic, not al-folio and not the Jon Barron HTML template.
Reason:
The personal page UI is not to be redesigned casually.
The visual and interaction contract lives in:
DESIGN.mdsite/static/styles.csssite/static/script.jssite/layouts/personal/single.htmlRules:
The template site/layouts/personal/single.html reads from:
site.Data.profilesite.Data.linksThose data objects come from profile-data/hugo-data/profile.yaml and profile-data/hugo-data/links.yaml.
Publications use Hugo page bundles:
profile-data/hugo-content/publications/<slug>/
index.md
cite.bib
The index.md should include front matter such as:
title: "Paper Title"
authors:
- me
- Coauthor Name
date: 2025-10-01T00:00:00Z
publication_types: ["paper-conference"]
publication: "Accepted at *Venue*"
featured: true
links:
- type: pdf
url: /assets/example.pdf
projects:
- related-project-slug
Projects live in:
profile-data/hugo-content/projects/<slug>/index.md
News lives in:
profile-data/hugo-content/blog/<slug>/index.md
The homepage section layout is controlled by:
profile-data/hugo-content/_index.md
On a Mac, install the toolchain outside this repository. Do not commit local toolchains.
Recommended setup:
brew install hugo go node
corepack enable
npm install -g pnpm
Then build locally:
cd site
pnpm install
hugo --minify
For development preview:
cd site
hugo server --disableFastRender
If the Homebrew Hugo version is incompatible with Hugo Blox, install Hugo Extended 0.161.1 from the official Hugo release and use that binary for this project.
Expected generated output:
site/public/
That output is ignored by Git.
Deployment is configured in:
.github/workflows/deploy.yml
The workflow:
0.161.1.site/.site/.site/public to GitHub Pages.This means a local Hugo/Go install is not required in the current Windows workspace, but a Mac agent should still run a local build before making large changes.
Done:
DESIGN.md..tools/ was removed; no local Hugo/Go toolchain is kept in the repo.Not done:
/personal/.A Mac follow-up should start with:
git status --short
cd site
pnpm install
hugo --minify
hugo server --disableFastRender
Then inspect:
//personal//publications//projects//experience/go.mod pins.publication or publications section naming in all blocks for this template version./personal/ renders with identical visual feel to the old personal.html.