Distributed as a Hugo module, imported via module.imports
hugo-mod-json-resume — Hugo Portfolio Template
By schnerring
hugo-mod-json-resume is a Hugo module that provides templates and shortcodes to render multilingual JSON Resume data into a Hugo site.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Preview provided in the project README.
One original preview is available. Open the full image to inspect the design.
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Reads JSON Resume data under data/json_resume/, with support for separate files by language code
Provides the json-resume shortcode to render sections such as work and education
Provides partials such as json-resume/basics.html for composition in layouts
Includes json-resume.css and the jr__ and jr-<section>__<section-field> class naming system
Social icons depend on Simple Icons (CC0)
Template Details
This module targets scenarios where Hugo is used to build personal resume or portfolio pages. Its core function is to connect JSON Resume data stored in the data/json_resume/ directory to the Hugo template system. Data files must follow the JSON Resume schema and be named by language code, such as en.json or de.json; at least one file matching the default content language code must exist (default en).
There are two ways to use it: in Markdown, render by section via the json-resume shortcode, for example {{< json-resume "work" >}} or {{< json-resume "education" >}}; in layout files, call a partial, for example partial "json-resume/basics.html". The module includes the assets/css/json-resume.css stylesheet and provides the generic jr__ class and section classes in the form jr-<section>__<section-field> for custom styling.
Before integration, initialize the site as a Hugo module, declare the module import in config.toml and mount the simple-icons icon assets, then run hugo mod get and hugo mod npm pack, npm install to install dependencies. Social icons use Simple Icons (CC0).
Is it right for your project?
Use Cases
- Generate multilingual personal resume pages in a Hugo site
- Connect existing JSON Resume data to Hugo content or layouts
- Insert resume content such as work experience and education by section in Markdown body text
- Render resume sections such as basics in the sidebar of a custom layout
Suitable For
- Developers who use Hugo and want to reuse JSON Resume data
- Personal sites that need to maintain multilingual resume content
- Users willing to compose page structure themselves via shortcodes or partials
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
First run hugo mod init example.com to initialize the site as a Hugo module
- 2
Add module.imports in config.toml pointing to github.com/schnerring/hugo-mod-json-resume, and mount node_modules/simple-icons/icons to assets/simple-icons
- 3
Run hugo mod get, then run hugo mod npm pack and npm install to install dependencies
- 4
Place language files that conform to the JSON Resume schema under data/json_resume/, including at least the file corresponding to the default content language code (default en)
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Social icons depend on Simple Icons (CC0) assets; you must install them yourself and mount node_modules/simple-icons/icons to assets/simple-icons, otherwise the icons will not display.
- Before use, initialize NPM and install dependencies (hugo mod npm pack and npm install); the build process depends on a Node/NPM environment.
- Data files must follow the JSON Resume schema, and at least one file matching the default content language code must exist (default en), otherwise rendering will fail.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; they cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
To display social icons, [Simple Icons](https://simpleicons.org/) (CC0) are used.
Original README
Initialize the NPM `package.json` and install the dependencies:
Original README
https://github.com/schnerring/hugo-mod-json-resume/blob/main/LICENSEhttps://github.com/schnerring/hugo-mod-json-resume/blob/main/README.mdAt least one file with the name `<default content language code>.json` must exist (defaults to `en`).
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 75 / 100
- Technologies
- Hugo
- Website type
- Portfolio
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-09-28
- Screenshot last checked
- 2026-10-02
No demo link is recorded. Use the repository instructions to evaluate the project locally; the screenshot alone cannot establish interactive behavior.
The catalog identifies Hugo as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 8bae470e4976612d426996e8d04a14d659297289e33e3810fccda1347fd6f96b
2026-10-02T19:52:16.532Z
Source file / repository# hugo-mod-json-resume
A [Hugo module](https://gohugo.io/hugo-modules/) containing templates to
integrate multilingual [JSON Resume](https://jsonresume.org/) data into your
Hugo website.
## Getting Started
Initialize your Hugo site as a Hugo module:
```shell
hugo mod init example.com
```
Add the following to the `config.toml` file of your site to import the module:
```toml
[module]
[[module.imports]]
path = "github.com/schnerring/hugo-mod-json-resume"
[[module.mounts]]
source = "node_modules/simple-icons/icons"
target = "assets/simple-icons"
```
Install the module:
```shell
hugo mod get
```
Initialize the NPM `package.json` and install the dependencies:
```shell
hugo mod npm pack
npm install
```
The module offers a simple CSS stylesheet [assets/css/json-resume.css](./assets/css/json-resume.css)
that you can use.
Use the `json-resume` shortcode in markdown files:
```markdown
---
title: "CV"
draft: false
---
## Experience
{{< json-resume "work" >}}
## Education
{{< json-resume "education" >}}
```
Or use the partials in your layout files:
```html
<div class="sidebar">
<aside class="bio">{{ partial "json-resume/basics.html" . }}</aside>
</div>
```
## Data Structure
The module reads JSON Resume data from Hugo's `data/` directory:
```text
data/
├─ json_resume/
├─ de.json
├─ en.json
```
Each file must adhere to the [JSON Resume schema](https://github.com/jsonresume/resume-schema/blob/master/schema.json)
specification. At least one file with the name `<default content language code>.json`
must exist (defaults to `en`). See also [Hugo Multilingual Mode](https://gohugo.io/content-management/multilingual/).
## Styling
You can style the existing templates by using the pre-defined classes. There are
generic classes prefixed with `jr__` like `jr__item` or `jr__date-range` that
apply to any template.
Classes specific to resume sections are prefixed with `jr-<section>__<section-field>`,
like `jr-work__description` or `jr-basics__name`.
### Example

The above requires the following CSS:
```css
.jr__item-meta {
align-items: center;
flex-flow: row wrap;
}
.jr__date,
.jr__date-range,
.jr-work__location {
flex-grow: 1;
text-align: right;
}
.jr-education__institution {
flex-basis: 100%;
}
```
## Attributions
To display social icons, [Simple Icons](https://simpleicons.org/) (CC0) are
used.
Explore similar templates
Compare previews and descriptions within the same stack and category.

hugo-PaperMod
A fast, clean, responsive Hugo theme for blogs and lightweight portfolios, with three layout modes (Regular, Home-Info, Profile), automatic and manual light/dark themes, Fuse.js client-side search, multilingual support, and built-in Open Graph, Twitter Cards, and Schema.org data.
Hugo · Portfolio

Congo
Congo is a minimal Hugo content theme built on Tailwind CSS 3.0, designed for blogs, portfolios, and lightweight content sites. It offers multiple homepage layouts, customizable dark mode, multilingual support including RTL, and built-in client-side search, Mermaid, Chart.js, and KaTeX.
Hugo · Blog

toha
Toha is a Hugo theme for personal portfolios, featuring a minimalist, responsive design with configurable homepage sections such as about, experience timeline, and achievements gallery.
Hugo · Portfolio

hugo-profile
hugo-profile is a mobile-first Hugo theme for personal portfolios and blogs, with multilingual support, light/dark themes, categories and tags, Google Analytics, Disqus comments, and Formspree contact forms.
Hugo · Portfolio

hugo-theme-introduction
Introduction is a minimal Hugo theme that can be configured as a single-page site or a full site with multiple sections. Homepage sections are generated from Markdown files under content/home/, with weight sorting and optional images.
Hugo · Portfolio

hugo-theme-console
A minimalist, responsive Hugo theme inspired by the system terminal and built on Terminal CSS. It includes blog posts, photo galleries, and custom pages, with light/dark theming and style overrides via CSS variables.
Hugo · Portfolio
