Supports [[wiki-link]] syntax, automatically converting to Hugo links and generating backlinks on referenced pages
vitis — Hugo Starter Template
By mohamedelhefni
Vitis is a Hugo theme for knowledge management and digital gardens, supporting wiki links, a knowledge graph, and backlinks.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Interactive knowledge graph based on D3.js, visualizing article connections, tags, and series relationships
Series support: automatic grouping, progress display, and navigation between entries
Built-in client-side search based on Fuse.js, automatic table of contents, reading time, and tag classification
Dark/light mode switching with preference detection and customizable social icons
Provides SEO output including Open Graph, Twitter Cards, and schema markup
Template Details
Vitis is a Hugo theme positioned as a digital garden and personal knowledge base. It organizes content around connections between notes: using the [[wiki-link]] syntax in Markdown establishes links between pages, and the theme automatically converts these references into Hugo links, generates backlinks on the referenced pages, and incorporates the connections into a knowledge graph.
The knowledge graph page is rendered with D3.js to visualize connections formed by wiki links between articles, as well as tag and series relationships. It can be accessed via the /graph path or added to the navigation menu. The theme also provides series support: after declaring a series name in the front matter, related articles are automatically grouped, series progress is displayed, and navigation between entries is provided.
At the content level, the theme includes an automatically generated table of contents, code block syntax highlighting, client-side search based on Fuse.js, reading time estimation, and tags and taxonomies. The interface supports dark/light mode switching with preference detection and offers customizable social icons. For SEO, it includes Open Graph, Twitter Cards, and schema markup; for privacy, it provides configurable analytics options.
There are three installation methods: Hugo Modules, Git Submodule, or cloning directly into the themes directory. The theme uses Tailwind CSS; to modify design variables such as colors and fonts, you need to copy tailwind.config.js and rebuild the CSS via npm. The README requires Hugo Extended 0.112.0 or higher, Git when using Hugo Modules, and Node.js and npm when customizing Tailwind.
Note: the repository currently has very few stars, so the theme's maturity and long-term maintenance should be evaluated independently; third-party assets such as images, fonts, and icons in the demo site should have their licenses checked separately and cannot be judged solely by the code's MIT license.
Is it right for your project?
Use Cases
- Building a personal digital garden to connect scattered notes with wiki links
- Maintaining multi-part serialized content that requires series progress and navigation between entries
- Viewing citation and tag relationships between notes through a knowledge graph
- Providing reading aids such as a table of contents, code highlighting, search, and reading time for long articles
Suitable For
- Personal sites using Hugo that want to organize content through note connections
- Knowledge base projects that need backlinks and knowledge graph capabilities
- Authors writing multi-part series who want automatic progress display
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Hugo Extended 0.112.0 or higher
- 2
Can be installed via Hugo Modules, Git Submodule, or cloning into the themes directory
- 3
Requires Git when using the Hugo Modules method
- 4
Modifying Tailwind styles requires Node.js and npm and rebuilding the CSS
- 5
You can copy exampleSite/hugo.toml as a starting point for site configuration
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis listing covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not mean external services or third-party assets are free.
Must comply with when using
- Allows free use, modification, commercial use, and distribution of this version's code.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Node.js and npm are only required to install and rebuild CSS when customizing Tailwind CSS styles; if styles are not modified, this dependency is not needed.
- Google Analytics is an optional configuration; enabling it requires providing your own GA tracking ID and is a third-party external service.
- Disqus comments are an optional feature; enabling them requires providing a Disqus shortname and depends on a third-party external service.
- Using the Hugo Modules installation method requires Git to be installed locally.
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Node.js and npm (only if customizing Tailwind CSS)
Original README
[params.analytics] [params.analytics.google] id = "G-XXXXXXXXXX"
Original README
[services.disqus] shortname = 'your-disqus-shortname'
Original README
https://github.com/mohamedelhefni/vitis/blob/main/LICENSEhttps://github.com/mohamedelhefni/vitis/blob/main/README.mdGit (for Hugo Modules method)
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-03. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- Hugo Themes
- Documentation and maintenance reference score
- More documented · 83 / 100
- Technologies
- Hugo
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-03-15
- Screenshot last checked
- 2026-10-03
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Hugo as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-04
Inspect the recorded source material
SHA-256: 68e1b91d32a14d7093bfa4dadfc841fa54440fef0bef0f50a7074749b2e0628e
2026-10-03T15:28:02.402Z
Source file / repository# Vitis
A modern Hugo theme designed as a digital garden with Obsidian-like features including wiki-links, knowledge graph visualization, backlinks, and series support.

## Demo
[Live Demo](https://vitis-demo.netlify.app/)
## Features
- **Wiki-Links Support**: Create connections between your content using `[[wiki-link]]` syntax
- **Interactive Knowledge Graph**: Visual representation of content relationships with D3.js
- **Backlinks**: Automatic bidirectional linking between related content
- **Series Support**: Organize content into multi-part series with progress tracking
- **Responsive Design**: Beautiful on all devices and screen sizes
- **Dark/Light Mode**: Toggle between themes with automatic preference detection
- **Table of Contents**: Auto-generated navigation for long-form content
- **Syntax Highlighting**: Code blocks with Dracula theme support
- **Search Functionality**: Fast client-side search powered by Fuse.js
- **Reading Time**: Estimated reading time for all posts
- **Tags & Taxonomies**: Organize and discover content easily
- **Social Icons**: Customizable social media links
- **SEO Optimized**: Open Graph, Twitter Cards, and schema markup
- **Performance**: Optimized for speed with minification and lazy loading
- **Privacy Focused**: GDPR compliant with configurable analytics
## Screenshots
### Homepage

### Knowledge Graph

### Post View

### Series Progress

## Installation
### Method 1: Hugo Modules (Recommended)
1. Initialize your Hugo site as a module:
```bash
hugo mod init github.com/yourusername/yoursite
```
2. Add the theme to your `hugo.toml`:
```toml
[module]
[[module.imports]]
path = "github.com/mohamedelhefni/vitis"
```
3. Get the module:
```bash
hugo mod get -u
```
### Method 2: Git Submodule
```bash
git submodule add https://github.com/mohamedelhefni/vitis.git themes/vitis
```
Then add to your `hugo.toml`:
```toml
theme = "vitis"
```
### Method 3: Clone
```bash
git clone https://github.com/mohamedelhefni/vitis.git themes/vitis
```
## Quick Start
1. Copy the example site configuration:
```bash
cp themes/vitis/exampleSite/hugo.toml hugo.toml
```
2. Update the `baseURL`, `title`, and other site parameters in `hugo.toml`
3. Create your first post:
```bash
hugo new posts/my-first-post.md
```
4. Start the Hugo server:
```bash
hugo server -D
```
5. Visit `http://localhost:1313`
## Configuration
### Basic Configuration
```toml
baseURL = "https://example.com/"
title = "My Digital Garden"
languageCode = "en"
defaultContentLanguage = "en"
[module]
[[module.imports]]
path = "github.com/mohamedelhefni/vitis"
# Site Parameters
[params]
description = "My personal knowledge base and digital garden"
author = "Your Name"
keywords = ["blog", "digital garden", "knowledge base"]
# Social links
github = "https://github.com/yourusername"
mail = "mailto:[email protected]"
site = "https://yoursite.com/"
[params.social]
twitter = "yourusername"
github = "yourusername"
```
### Navigation Menu
```toml
[menu]
[[menu.main]]
identifier = "home"
name = "Home"
url = "/"
weight = 10
[[menu.main]]
identifier = "posts"
name = "Posts"
url = "/posts"
weight = 20
[[menu.main]]
identifier = "graph"
name = "Graph"
url = "/graph"
weight = 30
```
### Analytics (Optional)
```toml
[params.analytics]
[params.analytics.google]
id = "G-XXXXXXXXXX"
[params.analytics.plausible]
domain = "yoursite.com"
```
### Comments (Optional)
```toml
[services.disqus]
shortname = 'your-disqus-shortname'
```
## Content Creation
### Creating Posts
```bash
hugo new posts/my-post.md
```
Example front matter:
```yaml
---
title: "My First Post"
date: 2024-02-27
draft: false
description: "A brief description of the post"
tags: ["hugo", "blog", "digital-garden"]
series: ["Getting Started"]
---
```
### Creating Series
Add posts to a series by including the series name in the front matter:
```yaml
---
title: "Part 1: Introduction"
series: ["My Series Name"]
---
```
The theme will automatically:
- Group related posts
- Show series progress
- Display navigation between parts
### Using Wiki-Links
Create connections between your content using wiki-link syntax:
```markdown
This post is related to [[other-post-title]] and [[another-post]].
```
The theme will automatically:
- Convert wiki-links to proper Hugo links
- Create backlinks on linked pages
- Include these connections in the knowledge graph
### Knowledge Graph
The knowledge graph automatically visualizes:
- Connections between posts via wiki-links
- Tag relationships
- Series connections
Access it at `/graph` or add it to your menu.
## Customization
### UI Strings
Customize all text in the theme by overriding the `[params.ui]` section:
```toml
[params.ui]
greeting = "Welcome"
recent_posts = "Latest Articles"
reading_time_singular = "min read"
reading_time_plural = "mins read"
```
See `exampleSite/hugo.toml` for all available strings.
### Styling
The theme uses Tailwind CSS. To customize:
1. Copy `tailwind.config.js` from the theme root
2. Modify colors, fonts, and other design tokens
3. Rebuild CSS:
```bash
npm install
npm run build
```
### Syntax Highlighting
Change the code highlighting theme in `hugo.toml`:
```toml
[markup.highlight]
style = "dracula" # or monokai, github, etc.
```
## Advanced Features
### Search
Search is automatically enabled. The theme generates a JSON index of your content.
### Backlinks
Backlinks are automatically generated for pages that are referenced via wiki-links.
### Related Posts
The theme shows related content based on:
- Shared tags (weight: 100)
- Same series (weight: 80)
- Publication date (weight: 10)
Customize in `hugo.toml`:
```toml
[related]
includeNewer = true
threshold = 80
toLower = true
[[related.indices]]
name = "tags"
weight = 100
```
## Requirements
- Hugo Extended v0.112.0 or higher
- Git (for Hugo Modules method)
- Node.js and npm (only if customizing Tailwind CSS)
## Performance
The theme is optimized for performance:
- Minified HTML, CSS, and JavaScript
- Lazy loading for images
- Optimized font loading
- Minimal dependencies
- Fast client-side search
## Browser Support
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## Support
- [Documentation](https://github.com/mohamedelhefni/vitis/wiki)
- [Issue Tracker](https://github.com/mohamedelhefni/vitis/issues)
- [Discussions](https://github.com/mohamedelhefni/vitis/discussions)
## License
This theme is released under the MIT License. See [LICENSE](LICENSE) for details.
## Credits
- Developed by [Mohamed Elhefni](https://github.com/mohamedelhefni)
- Knowledge graph visualization powered by [D3.js](https://d3js.org/)
- Search powered by [Fuse.js](https://fusejs.io/)
- Icons from [Heroicons](https://heroicons.com/)
- Styled with [Tailwind CSS](https://tailwindcss.com/)
## Acknowledgments
Inspired by:
- Obsidian's knowledge management features
- Digital garden philosophy
- Andy Matuschak's notes on note-taking
Explore similar templates
Compare previews and descriptions within the same stack and category.

hugo-xmin
hugo-xmin is an extremely minimal Hugo theme written by Yihui Xie for template beginners. HTML and CSS total about 140 lines, with no external dependencies, and it uses the MIT license.
Hugo · Starter

hugo-theme-gallery
A Hugo Extended photo gallery theme that organizes images with Page Bundles, automatically generating album lists and gallery pages with a Justified layout and PhotoSwipe lightbox.
Hugo · Starter

reveal-hugo
reveal-hugo is a Hugo theme that converts Markdown content into Reveal.js-based HTML presentations. It supports slide separation with `---`, shortcodes for fragments, slides, sections, notes, Markdown, and MathJax, and organizes content as root or section presentations with order controlled by weight.
Hugo · Starter

anatole
Anatole is a minimalistic two-column Hugo theme ported from farbox-theme-Anatole, featuring dark mode, multilingual and RTL support, and optional portfolio, comments, analytics, KaTeX, and Mermaid integrations. It suits personal blogs, portfolios, or documentation sites built with Hugo.
Hugo · Starter

hugo-theme-diary
A Hugo diary-style theme ported from the Hexo theme Journal, with a grid homepage for essays and daily notes. It supports six languages, dark mode, table-of-contents scroll positioning, reading time, code highlighting, and configurable sidebar, fonts, and colors.
Hugo · Starter

risotto
risotto is a minimalist, responsive Hugo theme inspired by terminal ricing aesthetics. It uses semantic HTML and pure CSS with no JavaScript, and its layout relies on CSS Grid for native responsiveness without manual breakpoints.
Hugo · Starter
