sophia.wtf/themes/hugo-coder/docs/configurations.md

15 KiB

Configurations

About Hugo Configurations

This theme supports:

Analytics

Google Analytics

Follow these steps.

Google Tag Manager

[params.googleTagManager]
    id = "gid"

Fathom Analytics

[params.fathomAnalytics]
  siteID = "ABCDE"
  serverURL = "cdn.usefathom.com" # (optionnal) Replace if you use a custom domain

Plausible Analytics

[params.plausibleAnalytics]
  domain = "example.com"
  serverURL = "plausible.io" # (optionnal) Replace if you use a custom domain

Goat Counter

[params.goatCounter]
  code = "code" # You will access your account at https://[code].goatcounter.com

Cloudflare

[params.cloudflare]
    token = "token"

Matomo

[params.matomo]
    siteID = "ABCDE"
    serverURL = "analytics.example.com"

Application Insights

[params.applicationInsights]
    connectionString = "connectionstring" # https://docs.microsoft.com/en-us/azure/azure-monitor/app/sdk-connection-string

Commenting Systems

Comments are displayed within post pages, but can be disabled with disableComments front-matter.

Disqus

Follow these steps.

Commento

[params]
  commentoURL = "https://cdn.commento.io" # Replace if you use a custom domain

Utterances

[params.utterances]
  repo = "" # https://utteranc.es/#heading-repository
  issueTerm = "" # https://utteranc.es/#heading-mapping
  label = "" # https://utteranc.es/#heading-issue-label
  theme = "" # https://utteranc.es/#heading-theme

Theme Parameters

These are all the parameters used by hugo-coder theme.

Name Type Required Description Default Example
author string Yes Author name. "John Doe"
info string Yes An headline, job title or similar. "Full Stack Developer"
description string Yes Description of the site. "John Doe's personal website"
keywords string Yes Site keywords. "blog,developer,personal"
avatarURL string No Photo of the author. "images/avatar.jpg"
gravatar string No Gravatar photo of the author "john.doe@example.com"
favicon_32 string No Custom path to a 32x32 favicon. "/img/favicon-32x32.png" "/img/favicon-32x32.png"
favicon_16 string No Custom path to a 16x16 favicon. "/img/favicon-16x16.png" "/img/favicon-16x16.png"
touchIcon string No Custom path to a touch-icon "/images/apple-touch-icon.png" "/images/apple-touch-icon.png"
since string No Date shown in the footer before now year "2020"
maxSeeAlsoItems number No Series see also post count 5 10
commit string No Show the last git commit in the footer "https://github.com/luizdepra/hugo-coder/tree/"
rtl bool No Enable the Right To Left mode. false true or false
math bool No Enable MathJax Module and add JS into your site. false true or false
katex bool No Enable katex for all content types. false true or false
colorScheme string No Specify light/dark colorscheme "auto" "auto" or "light" or "dark"
hideColorSchemeToggle bool No If true, hides the color sheme toggle false true or false
customCSS list No Add extra CSS files to the website. [] ["css/extra-style.css"]
customSCSS list No Add extra SCSS files to the website. [] ["scss/extra-style.scss"]
customJS list No Add extra JS files to the website. [] ["js/extra-script.js"]
enableTwemoji bool No Adds support for Twemoji false true or false

Social Icons Configuration

Social Icons are optional. To use them you will need to set at least all the following required parameters for each icon.

Configuration Type Required Description Example
name string Yes Icon name. "Github"
icon string Yes ForkAwesome icon classes. "fa fa-github"
weight int Yes Icon order. 1
url string Yes URL to redirect. "https://github.com/johndoe/"

An example:

[[params.social]]
  name = "Github"
  icon = "fa fa-github fa-2x"
  weight = 1
  url = "https://github.com/johndoe/"
[[params.social]]
  name = "Gitlab"
  icon = "fa fa-gitlab fa-2x"
  weight = 2
  url = "https://gitlab.com/johndoe/"
[[params.social]]
  name = "Twitter"
  icon = "fa fa-twitter fa-2x"
  weight = 3
  url = "https://twitter.com/johndoe/"

Menu Items Configurations

Menu Items are optional. To use them you will need to set all the following required parameters for each icon.

Configuration Type Required Description Example
name string Yes Menu Item name. "Posts"
weight int Yes Menu Item order. 1
url string Yes URL to redirect. "/posts/"
target string No URL target attribute. "_blank"
rel string No URL rel attribute. "alternate"
type string No URL type attribute. "application/rss+xml"

An example:

[[menu.main]]
  name = "Blog"
  weight = 1
  url  = "posts/"
[[menu.main]]
  name = "About"
  weight = 2
  url = "about/"

CSP

CSP stands for Content Security Policy. These configurations are optional. To use them you will need to set all the following required parameters. See here for reference.

Configuration Type Required Description Example
childsrc string list Yes ["'self'"]
fontsrc string list Yes ["'self'"]
formaction string list Yes ["'self'"]
framesrc string list Yes ["'self'"]
imgsrc string list Yes ["'self'"]
objectsrc string list Yes ["'self'"]
stylesrc string list Yes ["'self'"]
scriptsrc string list Yes ["'self'"]
prefetchsrc string list Yes ["'self'"]

An example:

[params.csp]
  childsrc = ["'self'"]
  fontsrc = [
    "'self'",
    "https://fonts.gstatic.com",
    "https://cdn.jsdelivr.net/"
  ]
  formaction = ["'self'"]
  framesrc = ["'self'"]
  imgsrc = ["'self'"]
  objectsrc = ["'none'"]
  stylesrc = [
    "'self'",
    "'unsafe-inline'",
    "https://fonts.googleapis.com/",
    "https://cdn.jsdelivr.net/"
  ]
  scriptsrc = [
    "'self'",
    "'unsafe-inline'",
    "https://www.google-analytics.com"
  ]
  prefetchsrc = ["'self'"]

Complete Example

This is a complete configuration example with some recommended values.

baseurl = "http://www.example.com"
title = "johndoe"
theme = "hugo-coder"
languagecode = "en"
defaultcontentlanguage = "en"

paginate = 20

pygmentsstyle = "bw"
pygmentscodefences = true
pygmentscodefencesguesssyntax = true

disqusShortname = "yourdiscussshortname"

[params]
  author = "John Doe"
  info = "Full Stack DevOps and Magician"
  description = "John Doe's personal website"
  keywords = "blog,developer,personal"
  avatarurl = "images/avatar.jpg"
  #gravatar = "john.doe@example.com"

  favicon_32 = "/img/favicon-32x32.png"
  favicon_16 = "/img/favicon-16x16.png"

  since = 2019

  enableTwemoji = true

  colorScheme = "auto"
  hidecolorschemetoggle = false

  customCSS = ["css/custom.css"]
  customSCSS = ["scss/custom.scss"]
  customJS = ["js/custom.js"]

[taxonomies]
  category = "categories"
  series = "series"
  tag = "tags"
  author = "authors"

# Social links
[[params.social]]
  name = "Github"
  icon = "fa fa-github fa-2x"
  weight = 1
  url = "https://github.com/johndoe/"
[[params.social]]
  name = "Gitlab"
  icon = "fa fa-gitlab fa-2x"
  weight = 2
  url = "https://gitlab.com/johndoe/"
[[params.social]]
  name = "Twitter"
  icon = "fa fa-twitter fa-2x"
  weight = 3
  url = "https://twitter.com/johndoe/"

# Menu links
[[menu.main]]
  name = "Blog"
  weight = 1
  url  = "posts/"
[[menu.main]]
  name = "About"
  weight = 2
  url = "about/"

Front Matter

Hugo documentation: https://gohugo.io/content-management/front-matter

This theme includes one content type:

  • Posts, useful to display blog posts

Posts

These are the front matter variables used by hugo-coder theme.

Name Type Required Description Default Example
tags list No Add tag(s) to this post. ["Hugo", "Go"]
categories list No Add categorie(s) to this post. ["Hugo", "Go"]
series list No Add series to this post (used by OpenGraph). ["Theme Demo"]
author list No Add author to this post. ["John Doe"]
externalLink string No Link to an external post. "https://github.com/luizdepra/hugo-coder/wiki"
featuredImage string No Link/path to add an image below post metadata. "https://github.com/luizdepra/hugo-coder/blob/master/images/screenshot.png"
math bool No If true, MathJax is enabled only for this post. false true or false
katex bool No If true, katex is enabled only for this post. false true or false
disableComments bool No If true, comments are disabled. false true or false

"tags", "categories", "series" and "authors" are taxonomies defined in the config.toml file.