No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-07 16:19:11 +02:00
assets/scss Small fix for the entries title arrow wrap 2026-10-07 16:19:11 +02:00
exampleSite Make a complete review of the website 2026-10-07 16:11:33 +02:00
.gitignore First version 2026-09-30 20:28:37 +02:00
AGENTS.md Make a complete review of the website 2026-10-07 16:11:33 +02:00
example.png Make a complete review of the website 2026-10-07 16:11:33 +02:00
hugo.toml Fixed the child parameters 2026-10-02 15:57:10 +02:00
README.md Make a complete review of the website 2026-10-07 16:11:33 +02:00
theme.toml Fixed the child parameters 2026-10-02 15:57:10 +02:00

academic-portfolio-console

A clean, minimalist light-mode terminal child theme for academic-portfolio, inspired by the Ghostty terminal emulator and the oh-my-zsh's terminalparty theme.

Zero HTML template overrides — 100% pure SCSS styling layered cleanly onto the parent theme.

Example of the homepage


Features

  • Ghostty Split Panes: The two-column layout is styled as terminal split panes with authentic pane titlebars:
    • Left pane: ┌─ [1: profile] ~/whoami (zsh)
    • Right pane: ┌─ [2: buffer] ~/academic (main ⚡)
  • oh-my-zsh's terminalparty Accents:
    • Green % prompt symbol prefixing command headers (% papers/) and green [n: on the active tab
    • Yellow/amber (main ⚡) git branch badge and fold bracket highlights
    • Blue (zsh) shell badge and links
  • Zero-Dependency Native Monospace Stack: Uses the best pre-installed system monospace font (ui-monospace, "SF Mono", "Cascadia Code", Menlo, Monaco, Consolas, "Liberation Mono", monospace). 0 KB font downloads, instant rendering, no FOUT.
  • Light Theme Aesthetic: Clean, high-contrast off-white paper background (#f8f9fa) with deep graphite text (#1f2328) and subtle 1px dividers (#d0d7de).
  • Interactive CLI Details:
    • Animated terminal block cursor (█)
    • Foldable year groups styled as directory tree folds (▼ [2025] / ▶ [2024])
    • Aligned definition lists formatted as CLI flags (--school, --role, --duration)
    • Inline [DOI] and [link] links for external URLs and DOIs
    • Top navigation formatted as a tmux / Ghostty window list ([0:home*], [1:papers], [2:posters])
    • Bottom vim-style statusline: NORMAL │ utf-8 │ zsh 5.9 │ 100%
  • Reduced Motion: Smooth anchor scrolling is disabled when the visitor prefers reduced motion.
  • Zero HTML Templates: Full compatibility with upstream parent template updates.

Installation

1. Add as Submodule

In your Hugo site repository, clone or add both themes to your themes/ folder:

git submodule add https://codeberg.org/loicguib/hugo-academic-portfolio-console.git themes/academic-portfolio-console
git submodule add https://codeberg.org/loicguib/hugo-academic-portfolio.git themes/academic-portfolio

2. Configure hugo.toml

Enable both themes by listing academic-portfolio-console first (child theme overrides parent assets):

theme = ["academic-portfolio-console", "academic-portfolio"]

3. Custom Sections (optional)

Nav tabs light up when their section is targeted (/#papers, …) for the parent theme's built-in sections. If you add your own section partials, list their ids by creating assets/scss/_section-tabs.scss in your site, which takes precedence over the theme's copy:

$section-tabs: ("papers", "posters", "talks", "projects", "lectures", "supervisions", "awards");

Testing & Preview

A minimal test site is included in exampleSite/. It loads the themes through themesDir = "../../", so this repository must be checked out as academic-portfolio-console next to the parent theme checked out as academic-portfolio:

portfolio/
├── academic-portfolio/
└── academic-portfolio-console/

Then preview the theme locally:

hugo server --source exampleSite

License

MIT © Loïc Guibert


AI disclosure

This theme was developed with the assistance of AI tools. I have reviewed and edited the content to ensure accuracy and quality, sorry for people who are not comfortable with AI-assisted content. However, I assure that the final product reflects my own design choices and coding practices.