Intro
We’ll be using
yml/yaml
format for all examples down below, I recommend usingyml
overtoml
as it is easier to read.You can find any YML to TOML converters if necessary.
Override theme template
By Hugo’s Lookup Order, you can override any part of a theme that you want. The following is a quick example.
Let’s say you wish the list
was different. All you have to do is copy the list
template:
your-site/themes/papermod/layouts/_defaults/list.html
And paste it under your own layouts
folder:
your-site/layouts/_defaults/list.html
Then you’re free to make any changes you want to the list
.
When Hugo builds your site, your copy of list.html
will be used instead of the theme’s list.html
.
Enable Social-Metadata and SEO
These include OpenGraph, Twitter Cards and Schema.
params:
env: production
or set HUGO_ENV
as “production” in system env-vars
Failed to find a valid digest in the ‘integrity’ attribute for resource … ?
Read about How Subresource Integrity helps: Subresource_Integrity
Why was the asset
not loading ? : How_browsers_handle_Subresource_Integrity
Solution:
Set the following in config.yml
params:
assets:
disableFingerprinting: true
Linked Issues:
- https://stackoverflow.com/questions/65056585/hugo-theme-not-loading
- https://stackoverflow.com/questions/65040931/hugo-failed-to-find-a-valid-digest-in-the-integrity-attribute-for-resource
- https://blog.gerardbeckerleg.com/posts/hugo-failed-to-find-a-valid-digest-in-the-integrity-attribute-for-resource/
Bundling Custom css with theme’s assets
- For adding custom css to be bundled inside one minimized css
Create folder in yout project directory as
.(site root)
├── config.yml
├── content/
├── theme/hugo-PaperMod/
└── assets/
└── css/
└── extended/ <---
├── custom_css1.css <---
└── any_name.css <---
All css
files inside assets/css/extended
will be bundled !
Note: blank.css is just the placeholder so that it doesn’t break the theme when no files are present under assets/css/extended
Linked Issues:
Custom Head / Footer
Custom css/js can be added by way mentioned below.
.(site root)
├── config.yml
├── content/
├── theme/hugo-PaperMod/
└── layouts
├── partials
│ ├── comments.html
│ ├── extend_footer.html <---
│ └── extend_head.html <---
└── robots.txt
Create a html page in directory structure as shown above.
Contents of extend_head.html
will be added to head
of page.
and contents of extend_footer.html
will be added to bottom of page.
Add menu to site
You can add menu entries which will appear in the header of every page.
To do so, add a menu
section to your site’s config.yml
:
menu:
main:
- identifier: categories
name: categories
url: /categories/
weight: 10
- identifier: tags
name: tags
url: /tags/
weight: 20
- identifier: example
name: example.org
url: https://example.org
weight: 30
name
controls what will be displayed for the menu entry.
url
sets the URL that the entry points to.
weight
is used to control the positioning of entries.
For more information on menus, see the Hugo wiki page.
Pin a Post
Post can be pinned/ displayed top on the list by adding a weight=<num>
var to page-variables
example:
---
title: "My Important post"
date: 2020-09-15T11:30:03+00:00
weight: 1
---
---
title: "My 2nd Important post"
date: 2020-09-15T11:30:03+00:00
weight: 2
---
Adding Custom Favicon(s)
We support the following paths under /static
directory
and can be added accordingly.
favicon.ico
favicon-16x16.png
favicon-32x32.png
apple-touch-icon.png
safari-pinned-tab.svg
Favicon(s) can be generated by Favicon.io
and can be simply put in
/static
folder.Other way is to add favicon(s) NOT located in
/static
folder.In site config add the following:
params: assets: favicon: "<link / absolute url>" favicon16x16: "<link / absolute url>" favicon32x32: "<link / absolute url>" apple_touch_icon: "<link / absolute url>" safari_pinned_tab: "<link / absolute url>"
absolute url
means direct links to external resource: ex. https://web.site/someimage.png
example:
params: assets: favicon: "/favicon.ico" favicon16x16: "/favicon-16x16.png" favicon32x32: "/favicon-32x32.png" apple_touch_icon: "/apple-touch-icon.png" safari_pinned_tab: "/safari-pinned-tab.svg"
Centering image in markdown
Add #center
after image to center align an image
![name](path/to/image.png#center)
Using Hugo’s Syntax highlighter “chroma”
Disable Highlight.js in site
config.yml
params: assets: disableHLJS: true
Set hugo’s markdown styling in site
config.yml
markup: highlight: # anchorLineNos: true codeFences: true guessSyntax: true lineNos: true # noClasses: false style: monokai
If you want
lineNos: true
, the background won’t be proper. This will only work withnoClasses: false
orpygmentsUseClasses: true
. Read Generate Syntax Highlighter CSSAdd the following to
assets/css/extended/custom.css
.chroma { background-color: unset; }
More Info : Configure Markup - Highlight