Contributing to Documentation¶
This guide explains how to contribute to the Bold for Delphi documentation.
Prerequisites¶
- Python 3.x installed
- Git
Setup¶
Install MkDocs¶
Clone the Repository¶
Local Development¶
Start Local Server¶
Open http://127.0.0.1:8000/BoldForDelphi/ in your browser.
The server auto-reloads when you save changes.
Build Static Site¶
Output is generated in the site/ folder.
Documentation Structure¶
docs/
├── index.md # Home page
├── faq.md # Frequently asked questions
├── contributing.md # This file
├── getting-started/
│ ├── index.md # Introduction
│ ├── installation.md # Installation guide
│ └── first-app.md # Tutorial
├── concepts/
│ ├── index.md # Concepts overview
│ ├── object-space.md # Object Space
│ ├── ocl.md # OCL queries
│ ├── persistence.md # Database persistence
│ └── subscriptions.md # Subscription system
└── classes/
├── index.md # Class hierarchy
├── TBoldSystem.md
├── TBoldObject.md
├── TBoldObjectList.md
├── TBoldMember.md
└── TBoldAttribute.md
Adding New Pages¶
1. Create the Markdown File¶
Create a new .md file in the appropriate folder:
2. Add to Navigation¶
Edit mkdocs.yml and add the page to the nav section:
3. Preview and Commit¶
python -m mkdocs serve # Preview
git add docs/concepts/new-topic.md mkdocs.yml
git commit -m "Add documentation for new topic"
Markdown Features¶
Code Blocks¶
Admonitions¶
Renders as:
Note
This is a note.
Warning
This is a warning.
Mermaid Diagrams¶
```mermaid
classDiagram
TBoldElement <|-- TBoldObject
TBoldObject : +BoldSystem
TBoldObject : +Delete()
```
Renders as:
classDiagram
TBoldElement <|-- TBoldObject
TBoldObject : +BoldSystem
TBoldObject : +Delete()
Tables¶
Links¶
Images¶
Place images in docs/images/ and reference them:


*Caption below the image*
From subfolders, use relative path:
Deployment¶
Documentation is automatically deployed to GitHub Pages when changes are pushed to the master branch.
Live site: https://bero.github.io/BoldForDelphi/
The deployment workflow is defined in .github/workflows/docs.yml.
Style Guide¶
- Use clear, concise language
- Include code examples for all concepts
- Add diagrams for complex relationships
- Keep pages focused on one topic
- Link to related pages
- Use Pascal code blocks with
pascallanguage tag