All Projects → backstage → Mkdocs Monorepo Plugin

backstage / Mkdocs Monorepo Plugin

Licence: apache-2.0
✚ Build multiple documentation folders in a single Mkdocs. Designed for large codebases.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Mkdocs Monorepo Plugin

Docsify Tabs
A docsify.js plugin for rendering tabbed content from markdown
Stars: ✭ 65 (-39.25%)
Mutual labels:  documentation, plugin
Numpy Cn
NumPy官方中文文档(完整版)
Stars: ✭ 1,570 (+1367.29%)
Mutual labels:  documentation
Shadowsocksgostplugin
Gost 的 Shadowsocks 安卓插件,可以直接在 Shadowsocks 安卓客户端上连接 Gost 服务器
Stars: ✭ 104 (-2.8%)
Mutual labels:  plugin
N1 Unsubscribe
Plugin for Nylas Mail that adds a quick unsubscribe button for email.
Stars: ✭ 105 (-1.87%)
Mutual labels:  plugin
Restful Api Guidelines
A model set of guidelines for RESTful APIs and Events, created by Zalando
Stars: ✭ 1,397 (+1205.61%)
Mutual labels:  documentation
Calc.plugin.zsh
zsh calculator - with support for basic math
Stars: ✭ 105 (-1.87%)
Mutual labels:  plugin
Opencv Java Tutorials
Source for the OpenCV with Java tutorials
Stars: ✭ 102 (-4.67%)
Mutual labels:  documentation
Nvim Toggleterm.lua
A neovim lua plugin to help easily manage multiple terminal windows
Stars: ✭ 102 (-4.67%)
Mutual labels:  plugin
Go Compression.github.io
The Hitchhiker's Guide to Compression
Stars: ✭ 106 (-0.93%)
Mutual labels:  documentation
Docs
The source for https://www.gobuffalo.io
Stars: ✭ 105 (-1.87%)
Mutual labels:  documentation
Internals
High level architecture overview
Stars: ✭ 1,407 (+1214.95%)
Mutual labels:  documentation
Consulo Unity3d
Frameworks: Unity3D
Stars: ✭ 104 (-2.8%)
Mutual labels:  plugin
Docs
Deployer Documentation v6
Stars: ✭ 105 (-1.87%)
Mutual labels:  documentation
Glide Docs Cn
Glide简体中文文档站点托管项目。
Stars: ✭ 1,395 (+1203.74%)
Mutual labels:  documentation
Ymate Platform V2
YMP是一个非常简单、易用的轻量级Java应用开发框架,涵盖AOP、IoC、WebMVC、ORM、Validation、Plugin、Serv、Cache等特性,让开发工作像搭积木一样轻松!
Stars: ✭ 106 (-0.93%)
Mutual labels:  plugin
Chrome Better History
Replace the default Chrome history with this better history plugin.
Stars: ✭ 103 (-3.74%)
Mutual labels:  plugin
Codebook
Cook rmarkdown codebooks from metadata on R data frames
Stars: ✭ 105 (-1.87%)
Mutual labels:  documentation
Docs
OpenBMC Documentation
Stars: ✭ 105 (-1.87%)
Mutual labels:  documentation
Bosch Shc Api Docs
Bosch Smart Home Controller Local REST API
Stars: ✭ 107 (+0%)
Mutual labels:  documentation
Dddplus
🔥 A lightweight flexible development framework for complex business architecture with full ecosystem!轻量级业务中台开发框架,中台架构的顶层设计和完整解决方案!
Stars: ✭ 107 (+0%)
Mutual labels:  plugin

backstage/mkdocs-monorepo-plugin

PyPI PyPI - License

Note: This plugin is in beta. Whilst it is not expected to significantly change in functionality, it may not yet be fully compatible with other Mkdocs configuration and thus may break with some advanced configurations. Once these have been resolved and all bugs have been ironed out, we will move this to a stable release.

✚ This plugin enables you to build multiple sets of documentation in a single Mkdocs. It is designed to address writing documentation in Spotify's largest and most business-critical codebases (typically monoliths or monorepos).

✏️ Blog Post | 🐍 Python Package | ✚ Demo | 📕 Docs

Features

  • Support for multiple docs/ folders in Mkdocs. Having a single docs/ folder in a large codebase is hard to maintain. Who owns which documentation? What code is it associated with? Bringing docs closer to the associated code enables you to update them better, as well as leverage folder-based features such as GitHub Codeowners.

  • Support for multiple navigations. In Spotify, large repositories typically are split up by multiple owners. These are split by folders. By introducing multiple mkdocs.yml files along with multiple docs/ folder, each team can take ownership of their own navigation. This plugin then intelligently merges of the documentation together into a single repository.

  • Support across multiple repositories. Using Git Submodules it is possible to merge documentation across multiple repositories into a single codebase dynamically.

  • The same great Mkdocs developer experience. It is possible to run mkdocs serve in the root to merge all of your documentation together, or in a subfolder to build specific documentation. Autoreload still works as usual. No more using symlinks!

Install

It's easy to get started using PyPI and pip using Python:

$ pip install mkdocs-monorepo-plugin

Usage

Take a look in our sample project for an example implementation, or see what it looks like after running mkdocs build.

In general, this plugin introduces the !include syntax in your Mkdocs navigation structure and then merges them together.

# /mkdocs.yml
site_name: Cats API

nav:
  - Intro: 'index.md'
  - Authentication: 'authentication.md'
  - API:
    - v1: '!include ./v1/mkdocs.yml'
    - v2: '!include ./v2/mkdocs.yml'

plugins:
  - monorepo

# /src/v1/mkdocs.yml
site_name: versions/v1

nav:
  - Reference: "reference.md"
  - Changelog: "changelog.md"

# /src/v2/mkdocs.yml
site_name: versions/v2

nav:
  - Migrating to v2: "migrating.md"
  - Reference: "reference.md"
  - Changelog: "changelog.md"

Example Source Filetree

$ tree .

├── docs
│   ├── authentication.md
│   └── index.md
├── mkdocs.yml
├── v1
│   ├── docs
│   │   ├── changelog.md
│   │   └── reference.md
│   └── mkdocs.yml
└── v2
    ├── docs
    │   ├── changelog.md
    │   ├── migrating.md
    │   └── reference.md
    └── mkdocs.yml

5 directories, 10 files

Example Rendered Filetree

$ mkdocs build
$ tree ./site

├── 404.html
├── authentication
│   └── index.html
├── css
│   ├── base.css
│   ├── bootstrap-custom.min.css
│   └── font-awesome.min.css
├── fonts
│   ├── fontawesome-webfont.eot
│   ├── fontawesome-webfont.svg
│   ├── fontawesome-webfont.ttf
│   ├── fontawesome-webfont.woff
│   ├── fontawesome-webfont.woff2
│   ├── glyphicons-halflings-regular.eot
│   ├── glyphicons-halflings-regular.svg
│   ├── glyphicons-halflings-regular.ttf
│   ├── glyphicons-halflings-regular.woff
│   └── glyphicons-halflings-regular.woff2
├── img
│   ├── favicon.ico
│   └── grid.png
├── index.html
├── js
│   ├── base.js
│   ├── bootstrap-3.0.3.min.js
│   └── jquery-1.10.2.min.js
├── sitemap.xml
├── sitemap.xml.gz
└── versions
    ├── v1
    │   ├── changelog
    │   │   └── index.html
    │   └── reference
    │       └── index.html
    └── v2
        ├── changelog
        │   └── index.html
        ├── migrating
        │   └── index.html
        └── reference
            └── index.html

13 directories, 28 files

Supported Versions

  • Python 3 — 3.5, 3.6, 3.7
  • Mkdocs 1.0.4 and above.

License

Released under the Apache 2.0 License. See here for more details.

Contributing

Check out our CONTRIBUTING for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].