https://github.com/phpnomad/documentation
Source for the PHPNomad documentation site at phpnomad.com — built with PHPNomad itself
https://github.com/phpnomad/documentation
documentation framework php phpnomad platform-agnostic static-site
Last synced: 15 days ago
JSON representation
Source for the PHPNomad documentation site at phpnomad.com — built with PHPNomad itself
- Host: GitHub
- URL: https://github.com/phpnomad/documentation
- Owner: phpnomad
- License: mit
- Created: 2024-10-28T12:13:44.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-14T03:10:49.000Z (about 2 months ago)
- Last Synced: 2026-04-14T04:14:42.054Z (about 2 months ago)
- Topics: documentation, framework, php, phpnomad, platform-agnostic, static-site
- Language: PHP
- Homepage: https://phpnomad.com
- Size: 1.03 MB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 9
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# phpnomad/documentation
Source for the PHPNomad documentation site at [phpnomad.com](https://phpnomad.com). The docs site is itself a PHPNomad application, so the same framework the documentation describes is the framework rendering it. Markdown files in `public/docs/` are rendered through a Twig-backed MVC pipeline, served live during development or compiled to a static site for deployment.
## What's in the repo
- `index.php` is the dev server entry point. It boots the application in `dev()` mode and broadcasts a `RequestInitiated` event that flows through the router and controllers.
- `generate.php` is the static compile CLI. It boots in `cli()` mode and broadcasts `StaticCompileInitiated` and `StaticCompileRequested` events that walk the docs tree and write HTML to disk.
- `src/` holds the MVC source: the `Application` class, initializers, events, the `MarkdownController`, and the services that render Markdown and build navigation.
- `public/` holds the Twig templates (`doc.twig`, `404.twig`, `layouts/`, `components/`), the site assets, and the `docs/` tree that holds the actual documentation content.
## Running it locally
Install dependencies and start the dev server:
```bash
composer install
php -S localhost:8080 index.php
```
Changes to Markdown files are reflected on the next request. To compile the static site for deployment:
```bash
php generate.php
```
## Configuration
Site configuration lives in `configs/app.json`. Two keys matter: `docsRoot` (the directory holding your Markdown files, defaults to `public/docs`) and `templateRoot` (the directory holding the Twig templates, defaults to `public`).
## Writing docs
The directory layout under `public/docs/` mirrors the URL structure. Subdirectories become path segments, and an `index.md` inside a directory becomes that directory's landing page. Links between documents work like regular Markdown links.
## Contributing
This repository is the canonical place to propose changes to the PHPNomad documentation. The rendered output lives at [phpnomad.com](https://phpnomad.com).
## License
MIT. See [LICENSE](LICENSE).