Configuration
Docmach is configured via the docmach key in your package.json file.
Basic Configuration
{
"name": "my-project",
"version": "1.0.0",
"docmach": {
"docs-directory": "docs",
"build-directory": "docmach",
"assets-folder": "assets"
}
}
Configuration Options
docs-directory
Type: string
Default: "." (project root)
The directory containing your Markdown source files.
"docs-directory": "docs"
Examples:
"docs"- Usedocs/folder"content"- Usecontent/folder"."- Use project root"src/pages"- Nested directory
build-directory
Type: string
Default: "./docmach"
The output directory where generated HTML files will be placed.
"build-directory": "docmach"
Examples:
"docmach"- Output todocmach/"dist"- Output todist/"public"- Output topublic/"build/site"- Nested output directory
Note: This directory is cleaned on each build.
assets-folder
Type: string
Default: "" (none)
Directory containing static assets (images, CSS, JS, fonts) to copy to the build directory.
"assets-folder": "assets"
Examples:
"assets"- Copy fromassets/"static"- Copy fromstatic/"public"- Copy frompublic/
Behavior:
- All files are copied to the root of the build directory
- Only changed files are copied (incremental)
- Directory structure is preserved
Complete Example
{
"name": "my-documentation",
"version": "1.0.0",
"description": "Project documentation",
"scripts": {
"dev": "docmach",
"build": "docmach build",
"preview": "docmach print"
},
"docmach": {
"docs-directory": "docs",
"build-directory": "dist",
"assets-folder": "static"
},
"devDependencies": {
"docmach": "^1.0.20"
}
}
Directory Structure
Recommended project structure:
my-project/
├── docs/ # Markdown source files
│ ├── index.md
│ ├── getting-started.md
│ └── docs/
│ ├── api.md
│ └── guides.md
├── fragments/ # Reusable templates
│ ├── head.html
│ ├── footer.html
│ └── nav.js
├── static/ # Static assets
│ ├── images/
│ ├── styles.css
│ └── favicon.ico
├── dist/ # Generated output (gitignored)
├── package.json # Config here
└── tailwind.config.js # Optional Tailwind config
Environment-Specific Configuration
While Docmach doesn’t natively support environment variables yet, you can use different configs:
Development:
"docmach": {
"docs-directory": "docs",
"build-directory": "dev-build",
"assets-folder": "assets"
}
Production:
"docmach": {
"docs-directory": "docs",
"build-directory": "dist",
"assets-folder": "assets"
}
Validation
Docmach validates your configuration on startup:
- Warns if
docs-directorydoesn’t exist - Creates
build-directoryif it doesn’t exist - Skips asset copying if
assets-folderis empty or doesn’t exist
Future Configuration Options
See ROADMAP.md for planned configuration enhancements:
- Multiple config file formats (
.js,.ts) - Environment variable overrides
- Per-page frontmatter configuration
- Plugin configuration
- Build optimization settings