Mastering Wiki-Links in Hugo

โ€ข 4 minutes read

Wiki-links are a simple, powerful syntax for linking between pages: Page Title. Popularized by wikis and note-taking apps like Obsidian and Roam Research, they make creating connections effortless.

Compare traditional markdown links to wiki-links:

Traditional: [Link text](/posts/my-article/)
Wiki-link:   My Article

Benefits of wiki-links:

  • โœ… Faster to write - No need to remember exact URLs
  • โœ… Auto-complete friendly - Works with note-taking apps
  • โœ… Refactor-safe - Title changes update automatically
  • โœ… Encourage linking - Lower friction means more connections

The Vitis theme processes wiki-links intelligently:

1. Automatic Resolution

Knowledge Graphs
โ†“
<a href="/posts/knowledge-graphs/">Knowledge Graphs</a>

Vitis searches your content tree and finds the matching page, regardless of where it lives in your directory structure.

When you link to a non-existent page:

Future Post Idea

Vitis renders it with a special style (dashed underline, different color) to indicate the target doesn’t exist yet. This encourages progressive content creation.

Every page automatically displays which other pages link to it:

๐Ÿ“Ž Backlinks (3)
โ†’ Digital Garden Principles
โ†’ Content Organization Tips  
โ†’ Note-Taking Workflows

This creates bidirectional navigation without manual effort.

Basic Syntax

# Simple link
Page Title

# Link with different text (if supported)
Custom Link Text

# Link to a specific section
Page Title#Section Heading

Naming Conventions

Choose clear, descriptive titles:

โŒ Post 1
โŒ My Thoughts
โœ… React Component Patterns
โœ… CSS Grid Layout Guide

Good titles are:

  • Specific - Clear what the page is about
  • Searchable - Easy to find and autocomplete
  • Meaningful - Provide context when reading

Build dense local networks around topics:

## Frontend Frameworks

Modern web development relies on robust Frontend Frameworks
like React, Vue, and Angular.

Each framework approaches State Management differently:
- React uses React Hooks and Context API
- Vue offers Vuex and Pinia  
- Angular provides RxJS and Services

Understanding Component Lifecycle is crucial for all three.

This creates a rich cluster of related content.

Hub and Spoke Pattern

Create “hub” pages that link to many related concepts:

---
title: "Web Development Hub"
---

## Core Technologies
- HTML Fundamentals
- CSS Architecture  
- JavaScript ES6+

## Frameworks
- React Ecosystem
- Vue.js Guide

## Tools
- Webpack Configuration
- Development Workflows

Spokes link back to the hub and to each other.

Progressive Disclosure

Start with broken links, fill them in over time:

Day 1:
Working with TypeScript improves Code Quality
through Static Type Checking.

Day 7:  
โœ… Created: TypeScript page
โณ To create: Code Quality, Static Type Checking

Day 30:
โœ… All pages created!
โœ… Added more connections between them

Technical Implementation

  1. Build Time Processing

    Page Title โ†’ Search content tree โ†’ Generate URL
    
  2. Backlink Generation

    For each page โ†’ Find all wiki-links pointing to it โ†’ Display list
    
  3. Graph Data Generation

    Extract all links โ†’ Create nodes and edges โ†’ Output JSON
    

File Organization Freedom

Wiki-links work regardless of file location:

content/
  posts/
    web-dev.md     โ†’ React  โœ“ Works
  notes/
    frameworks/
      react.md     โ† Found!

You don’t need to know the exact path.

Advanced Techniques

Creating Index Pages

Use wiki-links to build dynamic indexes:

---
title: "Programming Languages Index"
---

## Compiled Languages
C++ | Rust | Go

## Interpreted Languages  
Python | Ruby | JavaScript

## Functional Languages
Haskell | Elixir | Clojure

Cross-Referencing Series

Link between parts of a series:

<!-- Part 1 -->
Next up, we'll explore Part 2: Advanced Patterns

<!-- Part 2 -->
Building on Part 1: Fundamentals, let's discuss...

Linking to Concepts

Create pages for abstract concepts:

Understanding Functional Composition helps when
working with Higher-Order Functions in JavaScript.

Even abstract ideas get their own pages!

Common Pitfalls

Case Sensitivity

Most implementations are case-sensitive:

React Hooks  โ‰   react hooks  โ‰   React hooks

Choose a convention and stick with it.

Duplicate Titles

Avoid having multiple pages with the same title:

โŒ content/posts/intro.md (title: "Introduction")
โŒ content/notes/intro.md (title: "Introduction")  
โœ… Unique titles for each page

While broken links are useful, too many can be overwhelming:

โŒ A B C D E F G
   (none exist yet)

โœ… Start with 2-3 links, create those pages, then expand

Workflow Integration

Note-Taking Apps

Use Obsidian, Logseq, or Roam Research to:

  1. Draft content with wiki-links
  2. Export to markdown
  3. Move files to Hugo content directory
  4. Build site with Vitis

The wiki-link syntax transfers seamlessly!

Content Planning

Use broken links as a content roadmap:

# Content Pipeline

## Planned (via broken links)
- API Design Patterns (linked from 3 posts)
- Database Optimization (linked from 2 posts)
- Testing Strategies (linked from 1 post)

Priority: Most referenced first!

Check your wiki-link health:

  • Link density: 3-8 outbound links per page is ideal
  • Broken link ratio: Aim for <20% broken links
  • Backlink distribution: Every page should have 1+ backlinks
  • Reciprocal links: 40%+ of links should be bidirectional

The Network Effect

Each wiki-link has multiplicative value:

1 page, 0 links   = 0 connections
2 pages, 1 link   = 1 connection  
3 pages, 3 links  = 3 connections
10 pages, 20 links = 20 connections

More links โ†’ More discovery โ†’ More learning

Getting Started

  1. Take an existing post
  2. Identify 3-5 key concepts
  3. Convert them to wiki-links: Concept Name
  4. Review the backlinks that now appear on other pages
  5. Check the graph to see new connections

Start small, build momentum!


Wiki-links are the connective tissue of your digital garden. Use them liberally to let your knowledge grow organically.

Share Article
Link Map
Pages Tags

Related Posts