Codex is a file-based documentation platform built on top of Laravel. It's completely customizable and dead simple to use to create beautiful documentation.
Codex is able to do things like transforming markdown or automaticaly fetching documentation from a Bitbucket/Github repositories. Most of it's features are provided by addons. Codex is extenable, themeable, hackable and simple to setup and use.
- Laravel 5
- Markdown, Creole or custom document parsers
- Host a unlimited number of projects/manuals with accompanying versions
- Extenable, themeable, hackable
- Simple to setup and use
- Syntax Highlighting
- Easy navigation defined in YAML
- SEO Friendly URLs
- Default theme build on Laravels theme
- Multiple storage methods (local, dropbox, amazon, etc)
- Can be installed as stand-alone or sub-component in your own (Laravel) project.
- (Addon Feature) Github/Bitbucket (auto webhook) synchronisation based on tags/branches.
- (Addon Feature) Smooth working, custom PHPDoc integration
- (Addon Feature) Access restriction on projects using Github/Bitbucket login
- Much, much more!
How it works
Codex > Projects > Versions > Documents > Processors
- Codex can provide documentation for multiple projects.
- Each project has one or more versions containing your documents.
- Documents are passed trough processors, modifying it's content before displaying.
To give you an understanding of filters, lets take the ToC filter as example. It takes all headings in a document and generates a table of content at the start (example).
addon-* packages are a collection of Plugins, Hooks and Processors.
Plugins are used to alter Codex. They are capable of doing something very minor or completely alter the way Codex works.
- Adding routes/controllers
- Define custom document types
- Adding/changing views
- Adding/chaning assets
- Many more things.
- Extend the Codex API and structure with new features and functionality
Processors are used to alter the output of documents.
- Reading document attributes
- Parsing Markdown/Creole/Anything to HTML
- Adding tooltips
- Generate table of contents
- Altering links
- Many more things.
Hooks are able to execute when Codex executes code which have hook-points defined. This could be seen as a event dispatcher/listener.
- Allows minor or major modifications to Codex its inner workings.
- Codex is full of hook points with getters/setters to adjust class properties.
- Ensures code that doesn't have to be executed, won't be executed.
The data is provided by the PHPDoc Addon. It uses the
to alter the links based on the information provided by PHPDoc Addon.
- More information on how to use the
LinksProcessorcan be found here.
- More information on the PHPDoc Addon should be here.
A example file structure for Codex might look similar to:
- docs - my-awesome-project - config.php - v1.0.0 - menu.yml - index.md - contributing.md - v1.1.0 - menu.yml - index.md - contributing.md - master - menu.yml - index.md - contributing.md - installation.md - configuration.md - develop - menu.yml - index.md - my-second-project - ...