🏠 Home

Documentation System - Complete GuideπŸ”—

What This IsπŸ”—

A simple, flexible documentation system for internal use. Write documents in Markdown, organize them with JSON, get a beautiful website.

Quick StartπŸ”—

1. Setup (One Time)πŸ”—

# Install required Python packages
pip install markdown pygments

2. Add Your DocumentsπŸ”—

# Put .md files in the assets folder
assets/
  001.md  ← Your first document
  002.md  ← Your second document
  010.md  ← Another document

3. ConfigureπŸ”—

Edit config.json to list your documents:

{
  "categories": [
    {
      "name": "Getting Started",
      "items": [
        {
          "type": "document",
          "file": "001.md",
          "title": "Introduction",
          "order": 1
        }
      ]
    }
  ]
}

4. BuildπŸ”—

# Windows
build_site.bat

# Or manually
python build_site.py

5. ViewπŸ”—

Open index.html in your browser!


File StructureπŸ”—

your-docs/
β”œβ”€β”€ index.html              ← Generated home page
β”œβ”€β”€ config.json             ← Your table of contents
β”œβ”€β”€ build_site.py           ← Site builder
β”œβ”€β”€ build_site.bat          ← Windows helper
β”œβ”€β”€ md_to_html.py           ← Markdown converter
β”œβ”€β”€ convert_md.vbs          ← Drag & drop converter
β”œβ”€β”€ assets/                 ← All your .md files here
β”‚   β”œβ”€β”€ 001.md
β”‚   β”œβ”€β”€ 002.md
β”‚   └── ...
└── README.md               ← This file

The config.json FileπŸ”—

This is the brain of your documentation system.

Basic StructureπŸ”—

{
  "site": {
    "title": "Your Documentation Title",
    "subtitle": "Optional subtitle",
    "homeUrl": "index.html"
  },
  "categories": [
    {
      "id": "unique-id",
      "name": "Category Name",
      "description": "What this category contains",
      "project_number": "PRJ-2024-001",
      "items": [...]
    }
  ]
}

Document EntryπŸ”—

{
  "type": "document",
  "file": "001.md",
  "title": "Document Title",
  "subtitle": "Short description",
  "date": "2026-02-02",
  "order": 1,
  "hidden": false,
  "note": "Internal note (not displayed)"
}

Fields:
- file - Filename in assets folder (required)
- title - Display title (required)
- subtitle - Short description (optional)
- date - Document date (optional)
- order - Sort order within category (optional)
- hidden - Hide from index (soft-delete, optional)
- note - Internal comment (optional)

Chapter (Nested Structure)πŸ”—

{
  "type": "chapter",
  "name": "Chapter Name",
  "order": 1,
  "items": [
    {
      "type": "document",
      "file": "010.md",
      "title": "Sub-document",
      "order": 1
    }
  ]
}

WorkflowπŸ”—

Adding a New DocumentπŸ”—

  1. Create the .md file:
    bash assets/050.md

  2. Write in Markdown:
    ```markdown
    # My New Document

## Introduction
Content here...
```

  1. Add to config.json:
    json { "type": "document", "file": "050.md", "title": "My New Document", "order": 5 }

  2. Rebuild:
    bash build_site.bat

Done!

Hiding a Document (Soft Delete)πŸ”—

Don't delete the file or config entry. Just set hidden: true:

{
  "type": "document",
  "file": "098.md",
  "title": "Old Method",
  "hidden": true,
  "note": "Deprecated - kept for reference"
}

The file stays in assets/, but won't appear in the index.

Reordering DocumentsπŸ”—

Just change the order values:

{
  "file": "001.md",
  "order": 5  ← Changed from 1
}

No need to rename or move files!

Creating CategoriesπŸ”—

Add a new category object:

{
  "id": "new-category",
  "name": "New Category",
  "description": "Description here",
  "items": [...]
}

File Naming StrategyπŸ”—

Use Numbers as AddressesπŸ”—

Think of filenames as post box numbers:
- 001.md = permanent address
- 099.md = another permanent address
- Numbers don't need to be sequential

Don't: Rename files when reordering
Do: Change order in config.json

BenefitsπŸ”—


FeaturesπŸ”—

Responsive DesignπŸ”—

Flexible OrganizationπŸ”—


Publishing to ServerπŸ”—

Option 1: Upload EverythingπŸ”—

  1. Build the site locally: build_site.bat
  2. Upload these files to your server:
    - index.html
    - assets/ folder (with all .html files)
    - config.json (optional, for future rebuilds)

Option 2: Build on ServerπŸ”—

  1. Upload:
    - config.json
    - build_site.py
    - md_to_html.py
    - assets/*.md files

  2. Run on server:
    bash python build_site.py


Tips & Best PracticesπŸ”—

Writing Good MarkdownπŸ”—

Organizing DocumentsπŸ”—

MaintenanceπŸ”—

PerformanceπŸ”—


TroubleshootingπŸ”—

"Python not found"πŸ”—

Install Python 3.6+ from python.org

"markdown module not found"πŸ”—

pip install markdown pygments

Documents not appearingπŸ”—

Check:
- File exists in assets/ folder
- Filename matches config.json
- hidden is not set to true
- Rebuild with build_site.bat

Rebuild the site - nav bar is added during build

Horizontal scrolling on mobileπŸ”—

Make sure you're using the updated md_to_html.py with responsive CSS


Advanced UsageπŸ”—

Adding Project NumbersπŸ”—

{
  "project_number": "PRJ-2024-001",
  "items": [...]
}

Shows in category header.

Multi-level HierarchyπŸ”—

{
  "type": "chapter",
  "name": "Main Topic",
  "items": [
    {
      "type": "chapter",
      "name": "Subtopic",
      "items": [
        {"type": "document", "file": "..."}
      ]
    }
  ]
}

Go as deep as needed.

Same Document, Multiple CategoriesπŸ”—

Just reference it multiple times:

// Category 1
{"file": "050.md", "title": "Important Doc"}

// Category 2
{"file": "050.md", "title": "Important Doc"}

File stored once, appears twice.


Future EnhancementsπŸ”—

Possible additions:
- PDF download buttons
- Logo and branding
- Search functionality
- Dark mode
- Version history

But remember: Keep it simple! Only add what you actually need.


SupportπŸ”—

For questions or issues:
1. Check this README
2. Review the example config.json
3. Look at the two sample documents (001.md, 002.md)


Created: February 2, 2026
System: Markdown Documentation Generator
Version: 1.0