Skip to main content

A MkDocs plugin for creating interactive graph visualizations of page connections

Project description

MkDocs Graph View

A MkDocs plugin that creates interactive graph visualizations of page connections, inspired by Quartz. Visualize your documentation structure with beautiful, interactive network graphs powered by D3.js.

Features

  • 🎯 Mini Graph View: Shows connected pages in the sidebar (or bottom on mobile)
  • 🌐 Full Graph View: Expandable overlay showing the entire documentation graph
  • 🎨 Material Theme Integration: Seamlessly integrates with Material for MkDocs
  • 📱 Responsive Design: Automatically adapts to mobile and desktop layouts
  • ⚙️ Highly Configurable: Customize physics simulation, visual appearance, and interactions
  • 🏷️ Tag Support: Display tags as separate nodes in the graph (like Quartz)
  • 🌓 Dark Mode: Full support for light and dark themes
  • Performance: Efficient BFS-based filtering for large documentation sites

Installation

Install the plugin using pip:

pip install mkdocs-graph-view

Quick Start

Add the plugin to your mkdocs.yml:

plugins:
  - search
  - graph-view

That's it! The plugin will automatically:

  • Create a mini graph in the sidebar showing connected pages
  • Add an expand button to view the full graph
  • Highlight the current page in the graph

Configuration

Basic Configuration

plugins:
  - graph-view:
      enabled: true
      local_graph_depth: 1  # Show connections up to 1 level deep

Advanced Configuration

plugins:
  - graph-view:
      enabled: true

      # Graph depth
      local_graph_depth: 2              # Show 2 levels of connections in sidebar

      # Global graph
      global_graph: true                # Enable full-screen graph overlay

      # Physics simulation
      repel_force: 1.0                  # Node repulsion (higher = more spread)
      center_force: 0.2                 # Pull to center (lower = less centering)
      link_distance: 50                 # Distance between connected nodes

      # Visual settings
      scale: 1.1                        # Overall scale
      font_size: 10                     # Label font size
      show_tags: false                  # Show tags as separate nodes

      # Interaction
      enable_drag: true                 # Allow dragging nodes
      enable_zoom: true                 # Allow zoom and pan
      focus_on_hover: true              # Highlight connections on hover

Configuration Options

Option Type Default Description
enabled bool true Enable/disable the plugin
local_graph_depth int 1 Number of connection levels to show in mini graph
global_graph bool true Enable full-screen graph view
repel_force float 1.0 Node repulsion strength (0.5-2.0 recommended)
center_force float 0.2 Centering force strength (0.1-0.5 recommended)
link_distance int 50 Pixel distance between connected nodes
scale float 1.1 Overall graph scale
font_size int 10 Font size for node labels
show_tags bool false Display tags as separate nodes in graph view
enable_drag bool true Allow dragging nodes
enable_zoom bool true Allow zooming and panning
focus_on_hover bool true Highlight connections on hover

Usage Examples

For Small Documentation Sites (< 50 pages)

plugins:
  - graph-view:
      local_graph_depth: 3              # Can afford deeper depth
      repel_force: 0.5
      link_distance: 30
      focus_on_hover: true

For Large Documentation Sites (> 100 pages)

plugins:
  - graph-view:
      local_graph_depth: 1              # Keep it fast
      repel_force: 0.8                  # More spread
      center_force: 0.2
      link_distance: 50
      font_size: 8                      # Smaller labels
      focus_on_hover: false             # Disable for performance

For Knowledge Base with Tags

plugins:
  - tags                                # Enable tags plugin first
  - graph-view:
      local_graph_depth: 2
      show_tags: true                   # Show tags as separate nodes
      font_size: 11                     # Larger for readability
      focus_on_hover: true

Mobile-Optimized

plugins:
  - graph-view:
      local_graph_depth: 1
      enable_drag: true                 # Touch drag works well
      enable_zoom: true                 # Pinch zoom
      font_size: 12                     # Larger for mobile
      focus_on_hover: false             # Better for touch

How It Works

The plugin:

  1. Extracts Links: Scans all pages and extracts internal links
  2. Builds Graph Data: Creates a network graph of page connections
  3. Filters by Depth: Uses BFS (Breadth-First Search) to find pages within configured depth
  4. Renders with D3.js: Creates interactive visualizations using force-directed layout
  5. Adapts to Layout: Automatically positions graph in sidebar or content area based on viewport

Requirements

  • Python 3.8+
  • MkDocs 1.4.0+
  • Works best with Material for MkDocs theme (but compatible with others)

License

GNU GPLv3 License - see LICENSE file for details

Credits

Inspired by Quartz graph view feature.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Support

If you encounter any issues or have questions:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mkdocs_graph_view-0.2.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mkdocs_graph_view-0.2.0-py3-none-any.whl (14.7 kB view details)

Uploaded Python 3

File details

Details for the file mkdocs_graph_view-0.2.0.tar.gz.

File metadata

  • Download URL: mkdocs_graph_view-0.2.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for mkdocs_graph_view-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8f0c1c1025b0b771c46f6c759110b465d59e5d7c023cdf1ffdc25173435f4125
MD5 2bab8167dec00d24173f4ca1b0f5b01d
BLAKE2b-256 8f5bdc172f1cca252fa36e81c71617a5bc9932946ad1903069fe8c165c8552e5

See more details on using hashes here.

File details

Details for the file mkdocs_graph_view-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mkdocs_graph_view-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 41e9e0a1efec3673de634e76210c53bf5c791ef97056aa39a98838a0dd31b030
MD5 2bae457cbaba7a8ec02a622338ad7f83
BLAKE2b-256 abe06079f2bb16753323d644ce7f28f67ea9c1dd3bfbecea586a7afeb8508a24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page