| title | description |
|---|---|
Contributing |
Learn how you can contribute to the development, design, and documentation of docmd. |
First off, thank you for considering contributing to docmd! It's people like you that make the open-source community an amazing place to learn, inspire, and create.
We welcome contributions of all kinds, from fixing typos to engineering entirely new plugins.
::: card 🐛 Bug Reports Find something that isn't working right? Open an issue on GitHub. Please include your OS, Node version, and steps to reproduce. :::
::: card ✨ Feature Requests Have an idea to make docmd better? Open an issue and let's discuss it before you start writing code! :::
::: card 📝 Documentation This very website is built with docmd! You can contribute by fixing typos, improving recipes, or adding clearer examples. :::
::: card 💻 Code Contributions Want to get your hands dirty? We happily accept Pull Requests for core engine improvements, UI polish, and new features. :::
docmd is built as a Monorepo using pnpm. Developing it locally requires a specific workflow to ensure all the internal packages (core, UI, themes, plugins) talk to each other correctly.
::: steps
-
Prerequisites Ensure you have Node.js (v18+) and pnpm installed on your machine.
npm install -g pnpm
-
Fork and Clone Fork the repository on GitHub, then clone your fork locally:
git clone https://github.com/YOUR_USERNAME/docmd.git cd docmd -
Install Dependencies Use
pnpmto install all dependencies and link the monorepo workspaces together.pnpm install
-
Running the Dev Server We use this documentation site (located in the
docs/folder) as our primary testing ground. To start the development server and watch for changes in both the documentation and the core engine:# Windows (PowerShell) $env:DOCMD_DEV="true"; pnpm run dev # macOS / Linux DOCMD_DEV=true pnpm run dev
Note: Setting
DOCMD_DEV=truetells the watcher to monitor the internal templates, UI scripts, and engine logic, automatically rebuilding the site when you edit source files.
:::
Before submitting a Pull Request, you must ensure your changes haven't broken the core engine. docmd includes a brutal integration testing suite that verifies HTML generation, path resolutions, and SPA configurations.
To run the test suite:
pnpm testIf the test passes and outputs ✨ ALL SYSTEMS GO, your code is safe to commit!
- Create a Branch: Always branch off of
mainfor your work (e.g.,feat/new-search-uiorfix/broken-link). - Write Clean Code: Follow the existing coding style. If you are creating a new file in the
packages/directory, ensure it includes the standard docmd copyright header at the top. - Commit Messages: We prefer Conventional Commits (e.g.,
feat: add new button containerorfix: resolve sidebar scroll issue). - Open a PR: Push your branch to your fork and open a Pull Request against our
mainbranch. Provide a clear summary of your changes and reference any related issues.
All source files in packages/ must include the standard copyright header. If you create a new file, please copy the header from an existing file.
/*!
* --------------------------------------------------------------------
* docmd : the minimalist, zero-config documentation generator.
*
* @package @docmd/core (and ecosystem)
* @website https://docmd.io
* @repository https://github.com/docmd-io/docmd
* @license MIT
* @copyright Copyright (c) 2025 docmd.io
*
* [docmd-source] - Please do not remove this header.
* --------------------------------------------------------------------
*/Please note that this project operates with a standard Contributor Code of Conduct. By participating in this project you agree to abide by its terms, ensuring a welcoming and respectful environment for everyone.