MkDocs#
I use MkDocs + MkDocs Material to document, which is what generated this site. Link
I find the following features to be great:
- Free and Open Source Software
- Statically Generated
- Fairly Sane Theme Defaults
- Fast Content Search Engine
- Autolinking (Keeps links to pages alive even after moving)
- Powerful Syntax Highlighting
- Linkable Content Tabs (Multiple Programming Language / OS Options)
- Admonition
- RSS
- Auto-Date Tracking
- Multilingual Support
- Multi-Version Support
- All paid features are now free. link
I have a few dislikes:
- mkdocs-material is in final release with an end-of-support in Nov 2026.
- The mkdocs-material theme struggles with 50% split 1080p views. I have fixed this.
Below are quick copy and pastes I use often to quickly document:
MkDocs Templates#
Title Metadata:
---
title: Page name and top of tab
description: Google Search / SEO
date:
created: 2025-11-16
updated: 2024-11-17
---
Blog Metadata:
---
title: Page name and top of tab
description: Google Search / SEO
author: ComfyTechTips
date:
created: 2025-11-16
updated: 2025-11-17
slug: change-url-path
---
<Top of document and hook>
<!-- more -->
<Hidden>
Warning:
!!! warning
This will appear as a warning.
Note, Collapsed and Inline End w/ Custom Name:
??? note inline end "My Warning"
Careful, this code can be very dangerous if ran without prior caution.
Success, No title Box:
!!! success ""
RESULT
Emojis
Highlight code w/ Line Numbering:
```python linenums="1" hl_lines="2 3"
def bubble_sort(items):
for i in range(len(items)):
for j in range(len(items) - 1 - i):
```
Code with title:
```python title="bubble_sort.py"
def bubble_sort(items):
for i in range(len(items)):
for j in range(len(items) - 1 - i):
if items[j] > items[j + 1]:
items[j], items[j + 1] = items[j + 1], items[j]
```
Multi-OS Selection:
=== "Windows"
Windows way:
```powershell
Write-Host "Hello"
```
=== "Ubuntu Linux"
Another way to say hello world:
```bash
echo -e "Hello"
```
Multi-Language:
=== "Python"
To say hello:
```python
print("Hello")
```
=== "C#"
Another way to say hello world:
```csharp
using System;
namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
}
```
=== "Clojure"
Another way to say hello world:
```clojure
(println "Hello, World!")
```
Table:
| Product | What | Link |
| :----------- | :----------------------------------- | :--- |
| `GET` | :material-check: Fetch resource | <> |
| `PUT` | :material-check-all: Update resource | <> |
| `DELETE` | :material-close: Delete resource | <> |
Centered Image + Caption:
<figure>
<img src="https://dummyimage.com/600x400/eee/aaa" width="300" />
<figcaption>Image caption</figcaption>
</figure>
.nav.yml
title: Lorem Ipsum # Custom title for .nav.yml root directory
hide: false # Hides .nav.yml root directory
ignore: "*.hidden.md" # Hides pattern for files matching
append_unmatched: true # Anything that isn't explicitly caught will go to end
sort:
direction: asc
type: natural
by: title # some gotchas, read documentation
sections: last
ignore_case: true
nav:
- one-i-want-first.md
- "*" # the remaining files before directories and sections
- Custom Title: Directory
- Custom Title: File.md
- i_want_to_flatten/a_sub/directory
- Directory:
- "*"
- Some Website: https://lukasgeiter.github.io/mkdocs-awesome-nav
Cards: Link
Common Variants & References:#
<> Thing Hi!