A minimal viable product (MVP) documentation site inspired by OutSystems docs-odc. This project provides a simple Markdown-based documentation system with Python Markdown conversion.
- ✅ Markdown-based documentation with frontmatter metadata
- ✅ Python Markdown converter with extensions
- ✅ Table of Contents (TOC) configuration
- ✅ Markdown linting configuration
- ✅ EditorConfig for consistent formatting
- ✅ Simple HTML output generation
- Python 3.8 or higher
- pip package manager
- Clone the repository:
git clone https://github.com/gitmvp-com/simple-markdown-documentation.git
cd simple-markdown-documentation- Install dependencies:
pip install -r requirements.txtConvert all Markdown files to HTML:
python build.pyThis will:
- Read all
.mdfiles from thesrc/directory - Convert them to HTML using Python Markdown
- Generate output in the
build/directory - Create an index page based on
toc.yml
After building, you can preview the documentation by opening the generated HTML files in your browser:
# On macOS
open build/index.html
# On Linux
xdg-open build/index.html
# On Windows
start build/index.htmlsimple-markdown-documentation/
├── src/ # Source Markdown files
│ ├── getting-started/
│ │ ├── intro.md
│ │ └── hello-world.md
│ └── building-apps/
│ └── intro.md
├── build/ # Generated HTML output
├── styles/ # CSS stylesheets
│ └── main.css
├── build.py # Python build script
├── requirements.txt # Python dependencies
├── toc.yml # Table of contents configuration
├── config.yml # Build configuration
├── .markdownlint.json # Markdown linting rules
├── .editorconfig # Editor configuration
└── README.md # This file
All documentation should be written in Markdown (check here for the basic syntax).
The following Markdown extensions are available:
- markdown.extensions.extra - Meta-extension adding support for definition lists, tables, etc.
- markdown.extensions.meta - Read metadata from frontmatter
- markdown.extensions.toc - Automatic bookmarks in headings
- markdown.extensions.fenced_code - Code blocks with syntax highlighting
Each Markdown file should include frontmatter metadata:
---
summary: Brief description of the page
tags: tag1, tag2, tag3
locale: en-us
---
# Page Title
Content goes here...Before editing any Markdown document, configure your editor with:
- When tab is pressed, insert 4 spaces instead of a Tab character
- Use soft-wrapping to avoid carriage returns inside paragraphs
The .editorconfig file will configure most editors automatically.
This project uses markdownlint for consistent Markdown formatting. The rules are defined in .markdownlint.json.
Key rules:
- Use ATX-style headings (
#instead of underlines) - Use asterisk (
*) for unordered lists - Indent lists with 4 spaces
- Use backticks for code fences
Defines the documentation structure and navigation:
- href: getting-started/intro.md
topics:
- href: getting-started/hello-world.mdBuild configuration:
build:
title: Simple Documentation
input-folder: src
output-folder: buildMIT License - Feel free to use this project as a starting point for your own documentation.
Inspired by OutSystems docs-odc repository.