HugoBlog

hugo-june-theme — Hugo Blog Template

By clavinjune

Hugo June is a Hugo theme for multilingual personal sites and blogs, with built-in support for English, Indonesian, and Japanese; configuration is centralized in the config, i18n, and data directories.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-04View source

What stands out

A quick read of the recorded project description.

01

Targets multilingual personal sites and blogs, with English, Indonesian, and Japanese provided by default

02

Each language can have its own content directory, menu names, and descriptions

03

Interface strings and structured data are kept in the i18n and data directories for easier adjustment

04

Includes optional configuration such as Giscus comments, CSP, Google site verification, Brave Rewards verification file, and Web Monetization meta tag

05

Provides custom shortcodes and a skip-to-content button

06

The repository README notes that the project is a Work In Progress

Template Details

Hugo June was designed by Jessi and implemented by Clavin June, and is positioned as a multilingual personal site and blog theme. It includes English, Indonesian, and Japanese by default; each language can have its own content directory and menus. Language descriptions, menu names, and similar settings are configured through config files, interface strings are placed in the i18n directory, and other structured data is placed in the data directory.

The theme provides blog functionality and includes several optional site-level configuration items: Giscus comments, Content Security Policy (CSP), Google site verification meta tag, Brave Rewards verification file, Web Monetization meta tag, custom shortcodes, and a skip-to-content button. Pagination, table of contents levels, code highlighting, taxonomies (such as categories), and similar features are controlled by Hugo's own configuration options.

The repository README notes that the project is a Work In Progress; keep this in mind before use. The theme is added via Git submodule or by cloning into themes/june. The configuration example includes fields such as baseURL, language menus, author information, and support and contact links.

HugoBlog

Is it right for your project?

Use Cases

  • Building a personal blog that needs to maintain content in multiple languages at the same time
  • Converting an existing Hugo site into a multilingual personal homepage and article list
  • Adding Giscus comments to a blog and configuring a Content Security Policy
  • Placing site verification, Brave Rewards verification, or Web Monetization-related configuration on a personal site

Suitable For

  • Developers using Hugo who need a multilingual personal site or blog
  • Site owners who want to manage languages, menus, and site parameters centrally through configuration files
  • Personal site authors who need optional features such as Giscus comments, CSP, or site verification

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Add the theme to the themes/june directory via git submodule add or git clone

  2. 2

    Set theme = 'june' in the site config, and configure languages, menus, and params.june and other parameters as shown in the example

  3. 3

    Place language content in directories such as content/en, content/id, and content/ja, and maintain interface strings and data in the i18n and data directories respectively

  4. 4

    Giscus parameters must be obtained from giscus.app and then filled into params.june.giscus

  5. 5

    The repository is marked as Work In Progress; before use, check the repository's current status and README

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This listing covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not mean that external services or third-party assets are free.

Must comply with when using

  • The code of this version may be used, modified, used commercially, and distributed free of charge.
  • 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

  • Giscus comments are an optional feature; you must create them on giscus.app and obtain parameters such as Repo, RepoID, Category, and CategoryID before filling them into the configuration. Comment data is hosted on GitHub Discussions, which is an external service dependency.
  • Before using Giscus comments, you must visit giscus.app to obtain configuration values such as the repository and category identifiers, and it depends on a GitHub account and repository, which are external service and account requirements.
  • The Web Monetization meta tag requires an ILP payment pointer provided by a payment service such as Uphold; enabling this feature depends on a third-party payment service account.
  • The Brave Rewards verification file must be replaced with the site owner's own verification token; this feature depends on the verification process of the Brave browser ecosystem.
  • The configuration example includes Google Analytics; enabling analytics requires applying for a GA tracking ID yourself, which is an external service dependency and not a mandatory requirement of the theme.
  • The README badge indicates that the project is a Work In Progress; features and configuration may not yet be stable, so confirm the repository's current status before use.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses; the code's MIT license alone is not sufficient to determine this.
  • 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

Giscus Support Comment Section

Original README

get from https://giscus.app/

Original README

monetization = '$ilp.uphold.com/XXXXX'

Original README

braveRewardsVerification = 'ze0dec1b3acfbd430cac887ce390fdefcb56679334fcd39bc49d434660a52e26c'

Original README

[services.googleAnalytics] id = 'XXXXX'

Original README

Work In Progress

Original README
https://github.com/clavinjune/hugo-june-theme/blob/master/LICENSEhttps://github.com/clavinjune/hugo-june-theme/blob/master/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-04. 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 · 80 / 100
Technologies
Hugo
Website type
Blog
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-08-10
Screenshot last checked
2026-10-04

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

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.

Review declaration: [email protected] · 2026-10-04

Inspect the recorded source material

SHA-256: 4f60e254ecdb12edd0cf49366f3f8cfeb661468a2dde988a63214f8e540fad8e

2026-10-04T00:36:16.005Z

Source file / repository
# Hugo June Theme

[![Hugo Version](https://img.shields.io/static/v1?label=Hugo+Version&message=0.145.0&color=blue&logo=hugo)](https://github.com/gohugoio/hugo/releases/tag/v0.145.0)
[![Latest Release](https://img.shields.io/github/tag/ClavinJune/hugo-june-theme.svg)](https://github.com/ClavinJune/hugo-june-theme/releases/latest)
[![GitHub](https://img.shields.io/github/license/ClavinJune/hugo-june-theme)](https://github.com/ClavinJune/hugo-june-theme/blob/master/LICENSE)
[![Work In Progress](https://img.shields.io/static/v1?label=Work+In+Progress&message=true&color=green&logo=github)](https://github.com/ClavinJune/hugo-june-theme)

![Hugo June Theme Example](https://hugo.ClavinJune.dev/images/example.png)

Hugo June is a theme that created to serve multilingual personal site and blog. The design itself is created by [Jessi](https://munyaaa.github.io/) and implemented by [Clavin June](https://clavinjune.dev). By default, Hugo June has supported English, Indonesian, and Japanese. All the configuration could be modified by adjusting the built-in `config file`, `i18n directory`, and `data directory`. See Demo [here](https://clavinjune.dev)

## Features

- Blog
- Brave Rewards Verification File
- Content Security Policy Support
- Custom Shortcodes
- Giscus Support Comment Section
- Google Site Verification Meta Tag
- Minimalist
- Multilingual
- Responsive
- Simple
- Skip to Content Button
- Web Monetization Meta Tag

## Usage

```bash
# add theme as submodule
$ git submodule add https://github.com/ClavinJune/hugo-june-theme themes/june

# or clone
$ git clone https://github.com/ClavinJune/hugo-june-theme themes/june
```

## Config Example

```toml
baseURL = 'https://clavinjune.dev'
canonifyURLs = true
enableEmoji = true
defaultContentLanguage = 'en'
defaultContentLanguageInSubdir = true
enableMissingTranslationPlaceholders = true
enableRobotsTXT = true
hasCJKLanguage = true
languageCode = 'en-us'
publishDir = 'docs'
title = 'June Personal Web'
theme = 'june'

[pagination]
  pagerSize = 5

[services]
  [services.googleAnalytics]
    id = 'XXXXX'

[privacy]
  [privacy.googleAnalytics]
    respectDoNotTrack = true

[markup]
  [markup.tableOfContents]
    endLevel = 3
    ordered = true
    startLevel = 1
  [markup.highlight]
    anchorLineNos = true
    codeFences = true
    guessSyntax = true
    lineNos = true
    lineNumbersInTable = true
    style = 'vs'
    tabWidth = 4
  
[taxonomies]
  category = 'categories'

[languages]
  [languages.en]
    contentDir = 'content/en'
    languageName = 'English'
    weight = 1
    [languages.en.params]
    description = 'Clavin June Personal Web'
    locale = "en_US"

    [[languages.en.menu.main]]
      name = 'HOME'
      url = '/'
      weight = 1

    [[languages.en.menu.main]]
      name = 'BLOG'
      url = '/blogs/'
      weight = 2

    [[languages.en.menu.main]]
      name = 'PODCAST'
      url = '/podcasts/'
      weight = 3

    [[languages.en.menu.main]]
      name = 'WORK'
      url = '/works/'
      weight = 4

  [languages.id]
    contentDir = 'content/id'
    languageName = 'Bahasa Indonesia'
    weight = 2
    [languages.id.params]
      description = 'Clavin June Personal Web'
      locale = "id_ID"

    [[languages.id.menu.main]]
      name = 'HOME'
      url = '/'
      weight = 1

    [[languages.id.menu.main]]
      name = 'BLOG'
      url = '/blogs/'
      weight = 2

    [[languages.id.menu.main]]
      name = 'SINIAR'
      url = '/podcasts/'
      weight = 3

    [[languages.id.menu.main]]
      name = 'KARYA'
      url = '/works/'
      weight = 4

  [languages.ja]
    contentDir = 'content/ja'
    languageName = '日本語'
    weight = 3
    [languages.ja.params]
      description = 'Clavin June Personal Web'
      locale = "ja_JP"

    [[languages.ja.menu.main]]
      name = 'ホーム'
      url = '/'
      weight = 1

    [[languages.ja.menu.main]]
      name = 'ブログ'
      url = '/blogs/'
      weight = 2

    [[languages.ja.menu.main]]
      name = 'ポード'
      url = '/podcasts/'
      weight = 3

    [[languages.ja.menu.main]]
      name = '作品'
      url = '/works/'
      weight = 4

[params]
  [params.author]
    Name = "XXXXX"
    Email = 'XXXXX'

  [params.june]
    braveRewardsVerification = 'ze0dec1b3acfbd430cac887ce390fdefcb56679334fcd39bc49d434660a52e26c'
    canonicalURL = 'XXXXX'
    csp = "default-src 'self' 'unsafe-inline' https:;"
    googleSiteVerification = 'XXXXX'
    monetization = '$ilp.uphold.com/XXXXX'

    [[params.june.support]]
      Name = 'Bitcoin'
      URL = 'XXXXX'

    [[params.june.support]]
      Name = 'Ko-fi'
      URL = 'XXXXX'

    [[params.june.support]]
      Name = 'Trakteer'
      URL = 'XXXXX'

    [[params.june.contact]]
      Name = "Email"
      URL  = "XXXXX"

    [[params.june.contact]]
      Name = "Github"
      URL  = "XXXXX"

    [[params.june.contact]]
      Name = "LinkedIn"
      URL  = "XXXXX"
      
    # get from https://giscus.app/
    [params.june.giscus]
      Repo =  "XXXXX"
      RepoID = "XXXXX"
      Category = "XXXXX"
      CategoryID = "XXXXX"
      Mapping = "XXXXX"
      Reaction = "XXXXX"
      Metadata = "XXXXX"
      Theme = "XXXXX"
```
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.