[{"content":"","date":"4 May 2026","externalUrl":null,"permalink":"/tags/blowfish/","section":"Tags","summary":"","title":"Blowfish","type":"tags"},{"content":"This post is my own reference. Each section shows a feature rendered live, with the source in a code block above so I can copy it.\nFront matter # --- title: \u0026#34;Title\u0026#34; summary: \u0026#34;Short summary used on list pages and meta tags\u0026#34; description: \u0026#34;Used in \u0026lt;meta name=description\u0026gt;; falls back to summary\u0026#34; date: 2026-05-04 lastmod: 2026-05-04 expiryDate: 2027-01-01 draft: false slug: \u0026#34;custom-url-slug\u0026#34; aliases: [\u0026#34;/old-url/\u0026#34;] categories: [\u0026#34;Reference\u0026#34;] tags: [\u0026#34;a\u0026#34;, \u0026#34;b\u0026#34;] series: [\u0026#34;My Series\u0026#34;] series_order: 1 authors: [\u0026#34;derin\u0026#34;] externalUrl: \u0026#34;https://example.com\u0026#34; showHero: true heroStyle: \u0026#34;basic\u0026#34; # basic | big | background | thumbAndBackground showAuthor: true showDate: true showDateUpdated: false showReadingTime: true showWordCount: true showTableOfContents: true showSummary: true sharingLinks: [\u0026#34;twitter\u0026#34;, \u0026#34;linkedin\u0026#34;, \u0026#34;email\u0026#34;] robotsNoIndex: false xml: true --- Markdown basics # Inline # bold, italic, both, strikethrough, inline code, a link, and a footnote.1\nLists # one two nested three first second third done not done Blockquote # Quotes can be nested.\nLike this.\nTables # Column Type Notes id int primary key name text indexed created_at timestamp UTC Code blocks # def fib(n): a, b = 0, 1 for _ in range(n): a, b = b, a + b return a With line numbers and highlighted lines:\n1 2 3 package main import \u0026#34;fmt\u0026#34; func main() { fmt.Println(\u0026#34;hello\u0026#34;) } Raw HTML # Cmd+K, highlighted, H2O, x2.\nMath (KaTeX) # Add the katex shortcode once anywhere on the page to load KaTeX, then write math with $...$ or $$...$$.\n{{\u0026lt; katex \u0026gt;}} Inline: $E = mc^2$.\nDisplay:\n$$ \\int_{-\\infty}^{\\infty} e^{-x^2},dx = \\sqrt{\\pi} $$\nDiagrams (Mermaid) # {{\u0026lt; mermaid \u0026gt;}} graph LR A[Idea] --\u0026gt; B{Useful?} B -- yes --\u0026gt; C[Write post] B -- no --\u0026gt; D[Forget about it] C --\u0026gt; E[Publish] {{\u0026lt; /mermaid \u0026gt;}} graph LR A[Idea] --\u003e B{Useful?} B -- yes --\u003e C[Write post] B -- no --\u003e D[Forget about it] C --\u003e E[Publish] Charts (Chart.js) # {{\u0026lt; chart \u0026gt;}} type: \u0026#39;line\u0026#39;, data: { labels: [\u0026#39;Jan\u0026#39;,\u0026#39;Feb\u0026#39;,\u0026#39;Mar\u0026#39;,\u0026#39;Apr\u0026#39;,\u0026#39;May\u0026#39;], datasets: [{ label: \u0026#39;Posts written\u0026#39;, data: [1,3,2,5,4] }] } {{\u0026lt; /chart \u0026gt;}} Blowfish shortcodes # Alert # Warn the reader about something important. Use any Blowfish icon as the first arg. Lead # A larger intro paragraph that stands above the body copy. Badge # New Button # Visit my portfolio Icon # Inline: Keyword / KeywordList # A highlighted keyword mid-sentence.\nhugo blowfish markdown Tabs # npm install foo pnpm add foo bun add foo Accordion # Click to expand Hidden detail goes here. Useful for long FAQs or asides. Timeline # Started blog 2026 Set up Hugo + Blowfish. Wrote first real post 2026 Replaced the demo content. Article cards (link to other posts) # {{\u0026lt; article link=\u0026#34;/posts/some-other-post/\u0026#34; \u0026gt;}} List of posts as cards # {{\u0026lt; list cardView=true limit=3 where=\u0026#34;Type\u0026#34; value=\u0026#34;posts\u0026#34; \u0026gt;}} Embeds # GitHub repo card:\ngohugoio/hugo The world’s fastest framework for building websites. Go 87899 8251 Gist:\nYouTube (lite, lazy-loaded):\nEmail obfuscation # Direction # English content. Color swatches # Typewriter effect # Asset-dependent shortcodes (source only) # These need real files in the post\u0026rsquo;s bundle (next to index.md) so the source is shown in code blocks rather than rendered. Drop in the asset, then uncomment to use.\nImage (page resource):\n![alt text](feature.png \u0026#34;optional title\u0026#34;) Figure with caption:\n{{\u0026lt; figure src=\u0026#34;feature.png\u0026#34; alt=\u0026#34;Caption-bearing image\u0026#34; caption=\u0026#34;Figures get a caption row underneath.\u0026#34; \u0026gt;}} Gallery:\n{{\u0026lt; gallery \u0026gt;}} {{\u0026lt; galleryItem src=\u0026#34;img1.jpg\u0026#34; caption=\u0026#34;One\u0026#34; \u0026gt;}} {{\u0026lt; galleryItem src=\u0026#34;img2.jpg\u0026#34; caption=\u0026#34;Two\u0026#34; \u0026gt;}} {{\u0026lt; /gallery \u0026gt;}} Carousel (glob of images in the bundle):\n{{\u0026lt; carousel images=\u0026#34;gallery/*\u0026#34; \u0026gt;}} Native video:\n{{\u0026lt; video src=\u0026#34;demo.mp4\u0026#34; autoplay=\u0026#34;true\u0026#34; muted=\u0026#34;true\u0026#34; \u0026gt;}} Screenshot frame:\n{{\u0026lt; screenshot src=\u0026#34;ui.png\u0026#34; \u0026gt;}} Code import from a remote file:\n{{\u0026lt; codeimporter url=\u0026#34;https://raw.githubusercontent.com/example/repo/main/file.py\u0026#34; type=\u0026#34;python\u0026#34; \u0026gt;}} Markdown import (compose from fragments):\n{{\u0026lt; mdimporter url=\u0026#34;fragment.md\u0026#34; \u0026gt;}} Hugo built-ins # Ref / relref — link by file path, survives renames # [See another post]({{\u0026lt; ref \u0026#34;/posts/some-other-post\u0026#34; \u0026gt;}}) Page resources # When images, PDFs, or data files live in the post\u0026rsquo;s bundle directory (next to index.md), reference them by relative name (feature.png), not by URL. Hugo will hash, optimize, and emit them automatically.\nSeries # Add to front matter:\nseries: [\u0026#34;My Series Name\u0026#34;] series_order: 1 Blowfish renders prev/next navigation and a series index page.\nDrafts and futures # hugo ignores draft: true and future-dated content by default. Preview with hugo server -D -F.\nBuild commands # hugo server -D # local preview, includes drafts hugo server -D -F # also future-dated posts hugo --gc --minify # production build into ./public hugo new posts/foo/index.md When in doubt, the Blowfish docs are canonical.2\nFootnotes drop to the bottom of the page automatically.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nThis file lives at content/en/posts/blowfish-reference/index.md.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"4 May 2026","externalUrl":null,"permalink":"/posts/blowfish-reference/","section":"Posts","summary":"A kitchen-sink post covering every Markdown feature, Hugo construct, and Blowfish shortcode I might want to use again.","title":"Blowfish + Hugo + Markdown Reference","type":"posts"},{"content":"","date":"4 May 2026","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"4 May 2026","externalUrl":null,"permalink":"/tags/cheatsheet/","section":"Tags","summary":"","title":"Cheatsheet","type":"tags"},{"content":"","date":"4 May 2026","externalUrl":null,"permalink":"/tags/hugo/","section":"Tags","summary":"","title":"Hugo","type":"tags"},{"content":"","date":"4 May 2026","externalUrl":null,"permalink":"/","section":"Knowledge Base","summary":"","title":"Knowledge Base","type":"page"},{"content":"","date":"4 May 2026","externalUrl":null,"permalink":"/tags/markdown/","section":"Tags","summary":"","title":"Markdown","type":"tags"},{"content":"","date":"4 May 2026","externalUrl":null,"permalink":"/posts/","section":"Posts","summary":"","title":"Posts","type":"posts"},{"content":"","date":"4 May 2026","externalUrl":null,"permalink":"/categories/reference/","section":"Categories","summary":"","title":"Reference","type":"categories"},{"content":"","date":"4 May 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"}]