Daux.io is an documentation generator that uses a simple folder structure and Markdown files to create custom documentation on the fly. It helps you create great looking documentation in a developer friendly way.
Features
For Authors
- Auto Generated Navigation / Page sorting
- Internal documentation links
- CommonMark compliant
- Auto created homepage/landing page
- Multiple Output Formats
- Multiple Languages Support
- No Build Step
- Static Output Generation
- Table of Contents
For Developers
- Auto Syntax Highlighting
- Math, Diagrams and Flowcharts
- Extend Daux.io with Processors
- Full access to the internal API to create new pages programatically
- Work with pages metadata
For Marketing
- 100% Mobile Responsive
- 4 Built-In Themes or roll your own
- Functional, Flat Design Style
- Shareable/Linkable SEO Friendly URLs
- Supports Google Analytics and Piwik Analytics
Demos
This is a list of sites using Daux.io:
- With a custom theme:
- With the default Theme
Do you use Daux.io? Send us a pull request or open an issue and I will add you to the list.
Getting Started
Install
PHP and Composer
If you have PHP and Composer installed, you can install the dependency
composer global require daux/daux.io # Next to your `docs` folder, run daux generate
You can then use the daux
command line to generate your documentation.
If the command isn’t found, ensure your $PATH
contains ~/.composer/vendor/bin
or ~/.config/composer/vendor/bin
.
Docker
Or if you wish to use Docker, the start of the command will be :
docker run --rm -it -p 8085:8085 -w /build -v "$PWD":/build daux/daux.io daux
Any parameter valid in the PHP version is valid in the Docker version
Writing pages
Creating new pages is very easy:
- Create a markdown file (
*.md
or*.markdown
) - Start writing
By default, the generator will look for folders in the docs
folder.
Add your folders inside the docs
folder. This project contains some example folders and files to get you started.
You can nest folders any number of levels to get the exact structure you want. The folder structure will be converted to the nested navigation.
You must use underscores instead of spaces. Here are some example file names and what they will be converted to:
Good:
- 01_Getting_Started.md = Getting Started
- API_Calls.md = API Calls
- 200_Something_Else-Cool.md = Something Else-Cool
- _5_Ways_to_Be_Happy.md = 5 Ways To Be Happy
Bad:
- File Name With Space.md = FAIL
See your pages
Now you can see your pages. you have two options for that : serve them directly, or generate to various formats.
We recommend the first one while you write your documentation, you get a much quicker feedback while writing.
Serving files
You can use PHP’s embedded web server by running the following command in the root of your documentation
./serve
Upload your files to an apache / nginx server and see your documentation
Export to other formats
Daux.io is extendable and comes by default with three export formats:
- Export to HTML, same as the website, but can be hosted without PHP.
- Export all documentation in a single HTML page
- Upload to your Atlassian Confluence server.
See a detailed feature comparison matrix
To export, run the daux
command and your documentation will be generated in static
(you can change the destination with the --destination
option)
Configuration
Now that you got the basics, you can also see what you can configure
Server Configuration
We are using .mjs
file types. Which not every web server properly understands and serves.
You might see an error like Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "application/octet-stream". Strict MIME type checking is enforced for module scripts per HTML spec.
Apache
If you are using a version under 2.5.1 of Apache HTTPd.
Add the following line within .htaccess
, vhost or server configuration.
AddType application/javascript .mjs
nginx
include mime.types; types { application/javascript js mjs; }
PHP Requirements
Daux.io is compatible with the officially supported PHP versions; 8.1.0 and up.
Extensions
Daux.io needs the following PHP extensions to work : php-mbstring
and php-xml
.
If you use non-english characters in your page names, it is recommended to install the php-intl
extension as well.
Support
If you need help using Daux.io, or have found a bug, please create an issue on the GitHub repo.