Comments & Social


Comment systems, social sharing, GitHub buttons, and footer icons

Beautiful Hugo supports five comment systems, social sharing buttons, GitHub repository buttons, and 42 social icon links in the footer.

Comment Systems

All comment systems are enabled per-page with comments: true in front matter. Only one comment system can be active at a time.

Disqus

The classic comment system, integrated via Hugo’s built-in Disqus support:

[Services]
  [Services.Disqus]
    Shortname = "your-disqus-shortname"

[Params]
  delayDisqus = true

delayDisqus = true defers loading until the user clicks a “Show comments” button, improving page load performance.

Giscus

Giscus uses GitHub Discussions as a comment backend. It’s privacy-friendly and requires no external service:

[Params.giscus]
  repo = "owner/repo"
  repoId = "R_kgDO..."
  category = "Announcements"
  categoryId = "DIC_kwDO..."
  mapping = "pathname"
  strict = "0"
  reactionsEnabled = "1"
  emitMetadata = "0"
  inputPosition = "top"
  theme = "preferred_color_scheme"
  lang = "en"
  lazyLoading = true

Get your configuration values from giscus.app.

Utterances

Utterances uses GitHub Issues as a comment backend — a lighter alternative to Giscus:

[Params.utterances]
  repo = "owner/repo"
  issueTerm = "pathname"
  theme = "preferred-color-scheme"
  label = "comment"

Get your configuration from utteranc.es.

Cusdis

Cusdis is a lightweight, privacy-friendly comment system:

[Params]
  cusdisID = "your-app-id"

Get your App ID from cusdis.com.

Staticman

Staticman adds comments as static data files via Git pull requests, with optional reCAPTCHA spam protection:

[Params.staticman]
  api = "https://your-staticman-instance.herokuapp.com/v3/entry/github/owner/repo/main/comments"

  [Params.staticman.recaptcha]
    sitekey = "your-site-key"
    secret = "your-secret"

Social Share Buttons

Enable social sharing buttons on posts with socialShare = true. The buttons appear at the bottom of each post:

[Params]
  socialShare = true

The following platforms are supported:

PlatformIcon
Twitter / XX logo
FacebookFacebook logo
RedditReddit logo
LinkedInLinkedIn logo
StumbleUponStumbleUpon logo
PinterestPinterest logo
EmailEnvelope icon

Override per page:

---
title: My Post
socialShare: false
---

GitHub Buttons

Show GitHub repository buttons (star, watch, fork, follow) on any page using front matter:

---
title: My Project
ghRepo: "halogenica/beautifulhugo"
ghBadge: ["star", "watch", "fork"]
ghCount: true
---
ParamTypeDefaultDescription
ghRepostringGitHub repo in owner/repo format (per-page front matter only)
ghBadgelistWhich buttons to show: star, watch, fork, follow. Can be set per-page or site-wide via Params.ghBadge
ghCountbooltrueShow count numbers on buttons. Can be set per-page or site-wide via Params.ghCount

The buttons are loaded from ghbtns.com via lightweight iframes.

You can also set ghBadge and ghCount site-wide so they apply to every page that has a ghRepo:

[Params]
  ghBadge = ["star", "fork"]
  ghCount = true

Add social links under [Params.author] and they appear as icons in the footer. Beautiful Hugo supports 42 platforms:

KeyPlatformURL Pattern
emailEmailmailto:%s
facebookFacebookhttps://www.facebook.com/%s
githubGitHubhttps://github.com/%s
gitlabGitLabhttps://gitlab.com/%s
gitGit (custom URL)%s (use full URL)
bitbucketBitbuckethttps://bitbucket.org/%s
twitterTwitter / Xhttps://twitter.com/%s
slackSlackhttps://%s.slack.com/
redditReddithttps://reddit.com/u/%s
linkedinLinkedInhttps://linkedin.com/%s
xingXinghttps://www.xing.com/profile/%s
stackoverflowStack Overflowhttps://stackoverflow.com/%s
snapchatSnapchathttps://www.snapchat.com/add/%s
instagramInstagramhttps://www.instagram.com/%s
youtubeYouTubehttps://www.youtube.com/%s
soundcloudSoundCloudhttps://soundcloud.com/%s
spotifySpotifyhttps://open.spotify.com/user/%s
bandcampBandcamphttps://%s.bandcamp.com/
itchioitch.iohttps://itch.io/profile/%s
keybaseKeybasehttps://keybase.io/%s
vkVKhttps://vk.com/%s
paypalPayPalhttps://paypal.me/%s
telegramTelegramhttps://telegram.me/%s
500px500pxhttps://500px.com/%s
codepenCodePenhttps://codepen.io/%s
kaggleKagglehttps://www.kaggle.com/%s
mastodonMastodonhttps://%s (use full URL; rel="me" for verification)
weiboWeibohttps://weibo.com/%s
mediumMediumhttps://medium.com/@%s
discordDiscordhttps://discord.gg/%s
stravaStravahttps://www.strava.com/athletes/%s
steamSteamhttps://steamcommunity.com/id/%s
quoraQuorahttps://www.quora.com/profile/%s
amazonwishlistAmazon Wishlisthttps://amzn.com/w/%s
slideshareSlideSharehttps://www.slideshare.net/%s
angellistAngelListhttps://www.angel.co/p/%s
aboutCustom link%s (use full URL)
lastfmLast.fmhttps://www.last.fm/user/%s
blueskyBlueskyhttps://bsky.app/profile/%s
orcidORCIDhttps://orcid.org/%s
googlescholarGoogle Scholarhttps://scholar.google.com/citations?user=%s
goodreadsGoodreadshttps://goodreads.com/%s

If a value starts with http:// or https://, it is used directly as the URL. Otherwise, it is interpolated into the default URL pattern.

For LinkedIn, the value should include the path prefix (e.g. in/username for a personal profile or company/username for a company page). If you provide a bare username with no /, the theme automatically prepends in/ for backward compatibility.

[Params.author]
  name = "Some Person"
  github = "username"
  linkedin = "in/username"
  mastodon = "https://mastodon.social/@username"