HugoStarter

hugo-theme-sk3 — Hugo Starter Template

By J-Siu

A Hugo theme built as an extension of hugo-theme-sk2, adding configuration options for Google AdSense, Analytics, Disqus, social sharing, and PayPal buttons, with a dark minimalist layout.

Explore the design

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

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-03View source

What stands out

A quick read of the recorded project description.

01

Extends hugo-theme-sk2 with Google AdSense support

02

Integrates Google Analytics, Disqus comments, and Iubenda (GDPR/CCPA)

03

Provides configuration for social links, social share buttons, and PayPal buttons

04

Dark color scheme by default, switchable to a light theme via Params.color

05

List page card layout with configurable date and summary display and desktop column width

06

Supports custom CSS, custom JavaScript, Open Graph, and Twitter Card

Template Details

hugo-theme-sk3 is the third version of the SK series of Hugo themes, built on hugo-theme-sk2 and positioned as a relatively full-featured blog theme. Compared with earlier themes in the series, it adds Google AdSense support and integrates configurable modules such as Google Analytics, Disqus comments, Iubenda (GDPR/CCPA), PayPal buttons, social links, and social sharing. The theme uses a dark color scheme by default, which can be switched to light via Params.color.

In terms of layout, the theme provides a card-style layout for list pages. Params.card controls whether dates and summaries are displayed, as well as the desktop column width (for example, 32% corresponds to three columns). Page width is controlled by Params.pagewidth, defaulting to 1200px and automatically becoming 100% on small screens. There is a convention for Markdown heading levels: the site title is H1 and the page title is H2, so body headings should start at level three (###).

Configuration is centralized under the site Params, covering custom CSS/JavaScript, Open Graph, Twitter Card, favicon, canonical links, the default expanded state of the table of contents, and the starting year for footer copyright. Social links and share buttons are enabled per platform via Params.sociallink and Params.socialshare, respectively. The theme also supports per-page override settings.

Usage limitations: when upgrading from v1.x.x to v2.x.x, the configuration file must be updated because many fields were renamed. The demo site content comes from hugoBasicExample. The theme code is MIT-licensed, but third-party assets such as demo images, fonts, and icons must be checked separately for their licenses.

HugoStarter

Is it right for your project?

Use Cases

  • Building a personal blog or content site centered on article lists
  • Hugo sites that need to embed Google AdSense ad slots in pages
  • Sites that want to integrate Disqus comments and Google Analytics through configuration files
  • Blogs that need social share buttons and a PayPal donation entry point
  • Sites that prefer a dark minimalist style and want to toggle social links per platform

Suitable For

  • Developers using Hugo to build blogs who need common integrations such as ads, analytics, and comments
  • Users who accept configuring the theme through site Params and do not require a visual admin panel
  • Content sites that need switchable dark or light color schemes
  • Users upgrading from SK series themes who are willing to adjust configuration files according to v2 field names

Getting started & customization

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

  1. 1

    Place the repository into the themes/sk3 directory in the site directory via git clone or git submodule

  2. 2

    When upgrading from v1.x.x to v2.x.x, the configuration file must be updated because many fields were renamed

  3. 3

    Body Markdown headings should start at level three (###); the site title is H1 and the page title is H2

  4. 4

    The theme code is MIT-licensed, but third-party assets such as demo images, fonts, and icons must be checked against their respective licenses

  5. 5

    The demo site content comes from hugoBasicExample; refer to its example site for local testing

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version in the public repository under the MIT license; the free scope is the code of this version and does not mean that 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 full 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

  • The PayPal donation button feature requires users to have their own PayPal account and complete the button creation process; the theme itself does not provide accounts or creation services.
  • Enabling Google AdSense ads requires applying independently and filling in the AdSense ID/Tag; it is an external service and subject to Google's relevant terms.
  • The Google Analytics feature requires independent registration and filling in the Analytics ID; it is an external service and subject to Google's relevant terms.
  • The Disqus comment feature requires independent registration with Disqus and filling in the shortname; it is an external service and subject to Disqus's relevant terms.
  • When upgrading from v1.x.x to v2.x.x, the configuration file must be updated because many fields were renamed, and old configurations cannot be used directly.
  • Social icons depend on Font Awesome and must comply with its license; the README only points to free basic usage instructions and does not declare the authorization scope of all icon assets in the theme.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and 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

You need your own Paypal account to go through the button creation process.

Original README

AdSenseId | text | "" | AdSense ID/Tag.

Original README

| id | text | "" | Google Analytics ID |

Original README

| shortname | text | "" | Disqus shortname. |

Original README

When upgrading from v1.x.x to v2.x.x, config file need to be updated as there are lot of name changes.

Original README

Social buttons provided by [Font Awesome](//github.com/FortAwesome/Font-Awesome) Brands([free](//fontawesome.com/how-to-use/on-the-web/referencing-icons/basic-use)).

Original README
https://github.com/J-Siu/hugo-theme-sk3/blob/master/LICENSEhttps://github.com/J-Siu/hugo-theme-sk3/blob/master/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-03. 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
Hugo Themes
Documentation and maintenance reference score
More documented · 79 / 100
Technologies
Hugo
Website type
Starter
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-05-19
Screenshot last checked
2026-10-03

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: 915b7e02b7d158cd17ebd5827aa0dd6676e0fa6a7d64cbaf78d1305d5bc01c4e

2026-10-03T20:46:42.613Z

Source file / repository
# Hugo Theme - SK3 (Skeleton 3) [![Paypal donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif)](https://www.paypal.com/donate/?business=HZF49NM9D35SJ&no_recurring=0&currency_code=CAD)

Full feature Hugo theme build on top of [hugo-theme-sk2](//github.com/J-Siu/hugo-theme-sk2) with Google AdSense (UA/GA4) support.

---

<!-- TOC -->

- [SK Themes](#sk-themes)
- [Sites](#sites)
- [Version 2 Breaking Changes](#version-2-breaking-changes)
- [Install](#install)
- [Testing](#testing)
- [Features](#features)
- [Layout](#layout)
  - [Markdown Style](#markdown-style)
  - [Site Config](#site-config)
  - [Social Network](#social-network)
  - [Share Button](#share-button)
  - [Theme Color](#theme-color)
  - [Layout Dimensions](#layout-dimensions)
  - [Custom CSS](#custom-css)
  - [Custom Javascript](#custom-javascript)
  - [Favicon](#favicon)
  - [Disqus](#disqus)
  - [Google](#google)
    - [AdSense](#adsense)
    - [Analytics](#analytics)
  - [Paypal Button](#paypal-button)
- [Per Page Settings](#per-page-settings)
- [Sample Config](#sample-config)
- [Font Awesome](#font-awesome)
- [Thank You](#thank-you)
- [Contributors](#contributors)
- [Change Log](#change-log)
- [License](#license)

<!-- /TOC -->
<!--more-->

### SK Themes

| Theme | GitHub                                              | Hugo                                      | Demo                            | Description                                                   |
| ----- | --------------------------------------------------- | ----------------------------------------- | ------------------------------- | ------------------------------------------------------------- |
| SK1   | [hugo-theme-sk1](//github.com/J-Siu/hugo-theme-sk1) | [SK1](//themes.gohugo.io/hugo-theme-sk1/) | [sk1.jsiu.dev](//sk1.jsiu.dev/) | Fully functional basic Hugo theme with no css, no javascript. |
| SK2   | [hugo-theme-sk2](//github.com/J-Siu/hugo-theme-sk2) | [SK2](//themes.gohugo.io/hugo-theme-sk2/) | [sk2.jsiu.dev](//sk2.jsiu.dev/) | Fully functional basic Hugo theme with minimum css.           |
| SK3   | [hugo-theme-sk3](//github.com/J-Siu/hugo-theme-sk3) | [SK3](//themes.gohugo.io/hugo-theme-sk3/) | [sk3.jsiu.dev](//sk3.jsiu.dev/) | Full feature Hugo theme with Google AdSense support.          |

### Sites

SK3 demo site: https://sk3.jsiu.dev/ with content from [hugoBasicExample](https://github.com/J-Siu/hugoBasicExample).

John Siu Blog: [JohnSiu.com](//JohnSiu.com/)

### Version 2 Breaking Changes

When upgrading from v1.x.x to v2.x.x, config file need to be updated as there are lot of name changes.

### Install

In site directory:

- Using clone

  ```sh
  git clone https://github.com/J-Siu/hugo-theme-sk3 themes/sk3
  ```

- Using submodule

  ```sh
  git submodule add https://github.com/J-Siu/hugo-theme-sk3 themes/sk3
  ```

- Update submodule

  ```sh
  git submodule update --recursive --remote
  ```

### Testing

```sh
git clone https://github.com/J-Siu/hugo-theme-sk3 sk3
cd sk3

# Pull example site.
git submodule update --recursive --init

cd exampleSite
hugo server -D --bind :: \
--config config.toml,../config.demo.toml \
--disableFastRender \
--renderToMemory \
--theme sk3 \
--themesDir ../../
```

### Features

- [x] Blog
- [x] Custom CSS
- [x] Custom Javascript
- [x] Customizable
- [x] Disqus
- [x] Google AdSense
- [x] Google Analytics
- [x] Iubenda (GDPR/CCPA)
- [x] PayPal
- [x] Minimalist Design
- [x] Responsive
- [x] Social Links
- [x] Social Share

### Layout

#### Markdown Style

Headline in markdown should start at level 3 (###), as site title is H1 and page title is H2.

#### Site Config

**[Params]**

| Field                | Type       | Default Value | Description                                                                                                                                                                                                                                               |
| -------------------- | ---------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| customCss            | text array | []            | See [Custom CSS](#custom-css)                                                                                                                                                                                                                             |
| customJs             | text array | []            | See [Custom Javascript](#custom-javascript)                                                                                                                                                                                                               |
| description          | text       | ""            | Open Graph / Twitter Card description                                                                                                                                                                                                                     |
| enableExternalSvg    | bool       | false         | `true` will load social icon using Font Awesome external css.                                                                                                                                                                                             |
| enableInfoBox        | bool       | false         | Enable page info box style                                                                                                                                                                                                                                |
| enableListLastModify | bool       | false         | Use last modify date in list page.                                                                                                                                                                                                                        |
| enableOpenGraph      | bool       | false         | Enable Open Graph                                                                                                                                                                                                                                         |
| enableOpenToc        | bool       | true          | Control if table of content(Toc) is open By default                                                                                                                                                                                                       |
| enableTwitterCard    | bool       | false         | Enable Twitter Card                                                                                                                                                                                                                                       |
| enableUserCanonical  | bool       | false         | Add `rel="canonical"` meta link with absolute URL to each page. Only use this if site require **user-declared canonical** meta. This is not related to [Hugo Canonicalization](//gohugo.io/content-management/urls/#canonicalization) nor `canonifyurls`. |
| favicon              | text       | ""            | See [Favicon](#favicon)                                                                                                                                                                                                                                   |
| images               | text array | []            | Open Graph / Twitter Card image                                                                                                                                                                                                                           |
| mainSections         | text       | n/a           | Hugo default to section with most entries when For generating homepage list.                                                                                                                                                                              |
| pagewidth            | text(px)   | "1200px"      | Page width will automatically set to 100% on small screen(<993px).                                                                                                                                                                                        |
| startdate            | text       | ""            | eg. "2012-12-02". Year is extracted and generate copyright line "2012-(current year)". Site `copyright` override this behavior.                                                                                                                           |
| subtitle             | text       | ""            | If defined, sub-title appear after site title in smaller font.                                                                                                                                                                                            |
| title                | text       | ""            | Open Graph / Twitter Card title                                                                                                                                                                                                                           |

#### Social Network

**[Params.sociallink]** Show social network buttons if IDs are provided.

| Field          | Type | Default Value |
| -------------- | ---- | ------------- |
| facebook       | text | ""            |
| flickr         | text | ""            |
| instagram      | text | ""            |
| linkedin       | text | ""            |
| pinterest      | text | ""            |
| reddit         | text | ""            |
| rss            | bool | false         |
| tumblr         | text | ""            |
| twitter        | text | ""            |
| vimeo          | text | ""            |
| youtubechannel | text | ""            |
| youtubeuser    | text | ""            |

#### Share Button

**[Params.socialshare]** Control if share buttons appear at the bottom of page.

| Field     | Type | Default Value |
| --------- | ---- | ------------- |
| facebook  | bool | false         |
| instagram | bool | false         |
| linkedin  | bool | false         |
| pinterest | bool | false         |
| reddit    | bool | false         |
| telegram  | bool | false         |
| twitter   | bool | false         |
| vk        | bool | false         |

#### Theme Color

**[Params.color]** Control theme color. Default is a dark theme.

| Field  | Type | Default Value | Light Theme\*\* |
| ------ | ---- | ------------- | --------------- |
| bg     | text | "#181a1b"     | "white"         |
| border | text | "white"       | ""black"        |
| link   | text | "#3d84ff"     | "#3d84ff"       |
| text   | text | "white"       | "black"         |

#### Layout Dimensions

**[Params.card]** Control list page layout.

| Field   | Type    | Default Value | Description                                                                                                           |
| ------- | ------- | ------------- | --------------------------------------------------------------------------------------------------------------------- |
| date    | bool    | true          | Show data for each item in list                                                                                       |
| summary | bool    | true          | Show summary for each item in list                                                                                    |
| width   | text(%) | "32%"         | Control list page column width on desktop(>992px). 32% for 3 columns. 24% for 4 columns, etc. Single column use 100%. |

#### Custom CSS

If you add custom css files `abc.css` and `def.css` like following:

```sh
./
├── archetypes/
├── content/
├── public/
├── resources/
├── static/
│   └── css/
│       ├── abc.css
│       └── def.css
├── themes/
└── config.toml
```

The final path of your css files will be `/css/abc.css` and `/css/def.css`:

```toml
[Params]
customCss = ["/css/abc.css", "/css/def.css"]
```

#### Custom Javascript

If you add custom javascript `abc.js` and `def.js` like following:

```sh
./
├── archetypes/
├── content/
├── public/
├── resources/
├── static/
│   └── js/
│       ├── abc.js
│       └── def.js
├── themes/
└── config.toml
```

The final path of your javascript files will be `/js/abc.js` and `/js/def.js`:

```toml
[Params]
customJs = ["/js/abc.js", "/js/def.js"]
```

#### Favicon

Path of favicon of the published site.

If favicon `logo.svg` is put inside `static` like following:

```sh
./
├── archetypes/
├── content/
├── public/
├── resources/
├── static/
│   └── logo.svg
├── themes/
└── config.toml
```

The final path will be `/logo.svg`:

```toml
[Params]
favicon = "/logo.svg"
```

SK themes come with default favicon. To disable it:

```sh
# At Hugo site root
touch static/favicon.ico
```

#### Disqus

Section `[services.disqus]`

| Field     | Type | Default Value | Description       |
| --------- | ---- | ------------- | ----------------- |
| shortname | text | ""            | Disqus shortname. |

#### Google

##### AdSense

Section `[Params.google]`

| Field             | Type | Default Value | Description                    |
| ----------------- | ---- | ------------- | ------------------------------ |
| AdSenseId         | text | ""            | AdSense ID/Tag.                |
| enablePageLevelAd | bool | false         | Enable/Disable page level ads. |

##### Analytics

Section `[services.googleAnalytics]`:

| Field | Type | Default Value | Description         |
| ----- | ---- | ------------- | ------------------- |
| id    | text | ""            | Google Analytics ID |

#### Paypal Button

**[Params.paypal]** Enable Paypal donation button along side share buttons.

| Field           | Type | Default Value | Description                                               |
| --------------- | ---- | ------------- | --------------------------------------------------------- |
| amount          | text | "0"           | Default amount.                                           |
| businessId      | text | ""            | Paypal business Id. Button will only show if this is set. |
| currency        | text | ""            | Currency code, eg. "CAD", "USD".                          |
| enableRecurring | bool | false         | Show recurring check-box.                                 |

Information can be obtain by going through [Paypal Donate Button](https://www.paypal.com/donate/buttons?type=C&fromManage=true). You need your own Paypal account to go through the button creation process.

### Per Page Settings

- Disable Disqus
- Disable Prev/Next
- Disable Related
- Disable Table of Content

  To disable the above, in front matter:

  ```yaml
  comment = false
  prevnext = false
  related = false
  toc = false
  ```

### Sample Config

- [config.demo.toml](config.demo.toml)

### Font Awesome

Social buttons provided by [Font Awesome](//github.com/FortAwesome/Font-Awesome) Brands([free](//fontawesome.com/how-to-use/on-the-web/referencing-icons/basic-use)).

`fa-svg-extract.sh` is used to extract icon from Font Awesome sprites/brands.svg and sprites/solid.svg.

```sh
./fa-svg-extract.sh brands.svg > sk3-fa.svg
./fa-svg-extract.sh solid.svg >> sk3-fa.svg
```

### Thank You

- SK3 inspired by [Vimux/Binario](//github.com/Vimux/Binario). Check it out too!

### Contributors

- [John Sing Dao Siu](//github.com/J-Siu)

### Change Log

- [CHANGELOG.md](CHANGELOG.md)

### License

The MIT License (MIT)

Copyright (c) 2025 John, Sing Dao, Siu

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

hugo-xmin

hugo-xmin

hugo-xmin is an extremely minimal Hugo theme written by Yihui Xie for template beginners. HTML and CSS total about 140 lines, with no external dependencies, and it uses the MIT license.

Hugo · Starter

hugo-theme-gallery

hugo-theme-gallery

A Hugo Extended photo gallery theme that organizes images with Page Bundles, automatically generating album lists and gallery pages with a Justified layout and PhotoSwipe lightbox.

Hugo · Starter

reveal-hugo

reveal-hugo

reveal-hugo is a Hugo theme that converts Markdown content into Reveal.js-based HTML presentations. It supports slide separation with `---`, shortcodes for fragments, slides, sections, notes, Markdown, and MathJax, and organizes content as root or section presentations with order controlled by weight.

Hugo · Starter

anatole

anatole

Anatole is a minimalistic two-column Hugo theme ported from farbox-theme-Anatole, featuring dark mode, multilingual and RTL support, and optional portfolio, comments, analytics, KaTeX, and Mermaid integrations. It suits personal blogs, portfolios, or documentation sites built with Hugo.

Hugo · Starter

hugo-theme-diary

hugo-theme-diary

A Hugo diary-style theme ported from the Hexo theme Journal, with a grid homepage for essays and daily notes. It supports six languages, dark mode, table-of-contents scroll positioning, reading time, code highlighting, and configurable sidebar, fonts, and colors.

Hugo · Starter

risotto

risotto

risotto is a minimalist, responsive Hugo theme inspired by terminal ricing aesthetics. It uses semantic HTML and pure CSS with no JavaScript, and its layout relies on CSS Grid for native responsiveness without manual breakpoints.

Hugo · Starter