Codex Documentation

Overview

Head over to codex-project.ninja for the full documentation (starting with this document) to get started.

Introduction

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.

Features

How it works

Codex > Projects > Versions > Documents > Processors

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).

Addons

The addon-* packages are a collection of Plugins, Hooks and Processors.

Plugins

Plugins are used to alter Codex. They are capable of doing something very minor or completely alter the way Codex works.

Processors

Processors are used to alter the output of documents.

Hooks

Hooks are able to execute when Codex executes code which have hook-points defined. This could be seen as a event dispatcher/listener.

Example

The data is provided by the PHPDoc Addon. It uses the LinksProcessor to alter the links based on the information provided by PHPDoc Addon.

Example Code
Codex [Codex](#codex:phpdoc:Codex\Codex)
Codex [Codex](https://whatever.url#codex:phpdoc:popover:Codex\Codex)
Codex::url [Codex::url](#codex:phpdoc:popover:Codex\Codex:url)

File Structure

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
        - ...