The Endless Loop

It’s almost funny when I think back on how many times I found myself in this endless loop. I’d start building my own blog page with a shiny new framework, hack away at it for a day, maybe get the first post up… and then I’d just let it sit. Days would pass, I’d lose motivation, and before I knew it, I’d be back to square one thinking, ‘Maybe I just hate writing.’ I’d literally rm -rf the whole thing and start over with a new tool.

Sure, platform like Medium were always there as an easy option (I did tried too -> me on Medium). And yes, Medium has great built-in audience reach, better SEO, and you can even monetize if you content is stellar. But it never felt truly personal to me. The Medium editor just didn’t have the same satisfaction as crafting something that was entirely my own. Not like Hugo, I can write in every text editor that I like.

So this time, with Hugo and PaperMod, I wish I can break the loop. And hopefully, these little notes help anyone else who’s been stuck in a similar cycle.

Just Do It Now

I always knew deep down that the best approach was to just start and not wait for some magical perfect moment. But for the longest time, I let that hesitation hold me back. Recently, I had a realization: if I kept waiting, I’d just stay behind. So I told myself, Start today. No, start right now! And below, I’ve noted how I set up this blog exactly the way I wanted, in case anyone else finds these tips useful too.

All The Fun Parts

Really Nice Hugo Theme

this is not the first time i met Hugo and PaperMod. we are old friend.

PaperMod

there is something I dont like about PaperMod though, the page mobile layout is just OK, but I think I can bear with it.

Main yaml Configs

baseURL: https://hzionn.netlify.app/
languageCode: en-us
title: hzionn
theme: ["PaperMod"]
pagination:
  disableAliases: false
  pagerSize: 3

enableInlineShortcodes: true
enableRobotsTXT: true
buildDrafts: false
buildFuture: false
buildExpired: false
enableEmoji: true

minify:
  disableXML: true
  # minifyOutput: true

outputs:
  home:
    - HTML
    - RSS
    - JSON

params:
  env: production # to enable google analytics, opengraph, twitter-cards and schema.
  title: hzionn-digital-garden
  description: "ExampleSite description"
  keywords: [Blog, Portfolio, PaperMod]
  # author: Me
  # author: ["Me", "You"] # multiple authors
  images: ["<link or path of image for opengraph, twitter-cards>"]
  DateFormat: "January 2, 2006"
  defaultTheme: auto # dark, light
  disableThemeToggle: false

  ShowReadingTime: false
  ShowShareButtons: false
  ShowPostNavLinks: false
  ShowBreadCrumbs: true
  ShowCodeCopyButtons: true
  ShowWordCount: false
  ShowRssButtonInSectionTermList: true
  UseHugoToc: false
  disableSpecial1stPost: false
  disableScrollToTop: false
  comments: false
  hidemeta: false
  hideSummary: false
  showtoc: true
  tocopen: false

  assets:
    # disableHLJS: true # to disable highlight.js
    # disableFingerprinting: true
    favicon: "<link / abs url>"
    favicon16x16: "<link / abs url>"
    favicon32x32: "<link / abs url>"
    apple_touch_icon: "<link / abs url>"
    safari_pinned_tab: "<link / abs url>"

  label:
    text: "hzionn"
    icon: /apple-touch-icon.png
    iconHeight: 35

  # profile-mode
  profileMode:
    enabled: false # needs to be explicitly set
    title: ExampleSite
    subtitle: "This is subtitle"
    imageUrl: "<img location>"
    imageWidth: 120
    imageHeight: 120
    imageTitle: my image
    buttons:
      - name: Posts
        url: posts
      - name: Tags
        url: tags

  # home-info mode
  homeInfoParams:
    Title: "Hi there \U0001F44B"
    Content: >
      I'm Zi-Onn.

      - ...

  socialIcons:
    - name: threads
      url: "https://threads.com/cs.murmur"
    - name: linkedin
      url: "https://linkedin.com/in/hzionn"
    - name: github
      url: "https://github.com/hzionn"
    - name: hackmd
      url: "https://hackmd.io/@hzionn"

  analytics:
    google:
      SiteVerificationTag: "XYZabc"
      # SiteVerificationTag: "G-MQEYK0L706"
    bing:
      SiteVerificationTag: "XYZabc"
    yandex:
      SiteVerificationTag: "XYZabc"

  cover:
    hidden: true # hide everywhere but not in structured data
    hiddenInList: true # hide on list pages and home
    hiddenInSingle: true # hide on single page

  # for search
  # https://fusejs.io/api/options.html
  fuseOpts:
    isCaseSensitive: false
    shouldSort: true
    location: 0
    distance: 1000
    threshold: 0.4
    minMatchCharLength: 0
    limit: 10 # refer: https://www.fusejs.io/api/methods.html#search
    keys: ["title", "summary", "content"]

menu:
  main:
    - identifier: archives
      name: Archive
      url: /archives/
      weight: 10
    - identifier: categories
      name: Categories
      url: /categories/
      weight: 15
    - identifier: tags
      name: Tags
      url: /tags/
      weight: 20
    - name: Search
      url: /search/
      weight: 30
    - identifier: experiences
      name: Bio
      url: /experiences/
      weight: 35

# Read: https://github.com/adityatelange/hugo-PaperMod/wiki/FAQs#using-hugos-syntax-highlighter-chroma
pygmentsUseClasses: true
markup:
  goldmark:
    renderer:
      unsafe: true
    extensions:
      extras:
        mark:
          enable: true
  highlight:
    noClasses: false

I Just Want to Highlight

A Font That Never Fails

Lora

Enable $\text{Latex}$ with Katex

  • math.html, extend_head.html, goldmark delimiters

And Some Narcissist Too

Google Analytics