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.

Overview

Daux.io

Latest Version Software License GitHub Workflow Status Coverage Quality Gate Status Total Downloads

Daux.io is a 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

  • 100% Mobile Responsive
  • CommonMark compliant (a Markdown specification)
  • Supports Markdown tables
  • Auto created homepage/landing page
  • Auto Syntax Highlighting
  • Auto Generated Navigation
  • 4 Built-In Themes or roll your own
  • Functional, Flat Design Style
  • Shareable/Linkable SEO Friendly URLs
  • Built On Bootstrap
  • No Build Step
  • Git/SVN Friendly
  • Supports Google Analytics and Piwik Analytics
  • Optional code float layout
  • Static Output Generation

Demos

This is a list of sites using Daux.io:

Do you use Daux.io? Send me a pull request or open an issue and I will add you to the list.

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

Docker

Or if you wish to use Docker, the start of the command will be :

docker run --rm -it -w /build -v "$PWD":/build -u "$(id -u):$(id -g)" daux/daux.io daux

Run on a server

Download this repository as a zip, unpack, and put your documentation in the docs folder, you can then serve it with Apache or Nginx.

daux

The command line tool has two commands: generate and serve, running Daux.io without an argument will automatically run the generate command.

You can run daux --help to get more details about each command.

Folders

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.

If you'd prefer to keep your docs somewhere else (like outside of the daux.io root directory) you can specify your docs path in the global.json file.

Files

The generator will look for Markdown files (*.md and *.markdown) inside the docs folder and any of the subfolders within docs.

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

Sorting

To sort your files and folders in a specific way, you can prefix them with a number and underscore, e.g. /docs/01_Hello_World.md and /docs/05_Features.md This will list Hello World before Features, overriding the default alpha-numeric sorting. The numbers will be stripped out of the navigation and urls. For the file 6 Ways to Get Rich, you can use /docs/_6_Ways_to_Get_Rich.md

Landing page

If you want to create a beautiful landing page for your project, simply create a index.md file in the root of the /docs folder. This file will then be used to create a landing page. You can also add a tagline and image to this page using the config file like this:

{
    "title": "Daux.io",
    "tagline": "The Easiest Way To Document Your Project",
    "image": "app.png"
}

Note: The image can be a local or remote image. Use the convention <base_url> to refer to the root directory of the Daux instance.

Section landing page

If you are interested in having a landing page for a subsection of your docs, all you need to do is add an index.md file to the folder. For example, /docs/01_Examples has a landing page for that section since there exists a /docs/01_Examples/index.md file. If you wish to have an index page for a section without a landing page format, use the name _index.md

Configuration

To customize the look and feel of your documentation, you can create a config.json file in the of the /docs folder. The config.json file is a simple JSON object that you can use to change some of the basic settings of the documentation.

Title

Change the title bar in the docs

{
    "title": "Daux.io"
}

Themes

We have 4 built-in Bootstrap themes. To use one of the themes, just set the theme option to one of the following:

  • daux-blue
  • daux-green
  • daux-navy
  • daux-red
{
    "html": { "theme": "daux-green" }
}

More options

Many other options are available:

Running Remotely

Copy the files from the repo to a web server that can run PHP 7.3.0 or newer.

Running Locally

There are several ways to run the docs locally. The recommended way is to run daux serve which will execute PHP's embedded server.

By default the server will run at: http://localhost:8085

This is really only intended be used when you are writing/updating a ton of docs and want to preview the changes locally.

Generating a set of static files

These can be uploaded to a static site hosting service such as pages.github.com

Generating a complete set of pages, with navigation

daux --source=docs --destination=static

Running on IIS

If you have set up a local or remote IIS web site, you may need a web.config with:

  • A rewrite configuration, for handling clean urls.
  • A mime type handler for less files, if using a custom theme.

Clean URLs

The web.config needs an entry for <rewrite> under <system.webServer>:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Main Rule" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add
                            input="{REQUEST_FILENAME}"
                            matchType="IsFile"
                            negate="true"
                        />
                        <add
                            input="{REQUEST_FILENAME}"
                            matchType="IsDirectory"
                            negate="true"
                        />
                    </conditions>
                    <action
                        type="Rewrite"
                        url="index.php"
                        appendQueryString="false"
                    />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

To use clean URLs on IIS 6, you will need to use a custom URL rewrite module, such as URL Rewriter.

PHP Requirements

Daux.io is compatible with the officially supported PHP versions; 7.3.0 and up.

Extensions

Daux.io needs the following PHP extensions to work : php-mbstring and php-xml.

If you encounter an error similar to utf8_decode() not found this means that you're missing the php-xml package.

Support

If you need help using Daux.io, or have found a bug, please create an issue on the GitHub repo.

Comments
  • How to use subfolder

    How to use subfolder

    Hello Guys. Try to found way, how to create project in subfolder, for example https.daux.io/general/* Can you please explain, where I should set url https.daux.io/general Because it doesn't work.

    Waiting for release 
    opened by arnikasky 12
  • daux serve doesn't work with custom themes

    daux serve doesn't work with custom themes

    When using a custom theme not in the vendor/daux/daux.io/themes directory, the resulting page has no stylesheets or javascripts applied or run. The console output also does not show those files being served as it usually does when a default theme is used and the browser requests stylesheets etc.

    Custom themes do work when using daux generate, it is only daux serve that does not use them.

    opened by danielskeenan 9
  • Docker-compose usage

    Docker-compose usage

    Describe the bug Daux set-up using docker-compose. Could be my own misunderstanding, but the following results in the container outputting daux/daux.io unknown:

      daux:
        image: daux/daux.io:latest
        container_name: "daux"
        volumes:
          - ./daux:/docs
    

    To Reproduce Steps to reproduce the behavior:

    1. Start a Docker container using the above compose syntax.
    2. Read container output.

    Expected behavior I would expect the container to run, but instead it forces itself off and outputs daux/daux.io unknown.

    Apologies if I'm missing a fundamental piece, but I've been dealing with this for hours.

    support 
    opened by dartunian 8
  • Mac Build Errors

    Mac Build Errors

    Getting the following errors trying to get the latest version of Daux running on Mac OS 10.13.6. I am trying to build the default docs before making any custom changes. Since I am able to build the prior Daux version in Windows 10, and used to build old versions of Daux on this Mac, I wonder if I have a Mac configuration error? Help, please.

    Steps to reproduce:

    1. Download and unzip the latest build of Daux
    2. Run the command: daux generate
    3. Errors appear in command window; the asset copying to the Static folder stops with themes folder

    Error excerpt: [The initial Deprecated error appears multiple times before the following excerpt]

    Deprecated: array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead in /Users/philiptobias/.composer/vendor/daux/daux.io/libs/Config.php on line 75 PHP Fatal error: Uncaught Error: Call to undefined method Todaymade\Daux\Config::getBasePage() in /Users/philiptobias/Documents/Tests/Daux/templates/partials/navbar_content.php:6 Stack trace: #0 /Users/philiptobias/.composer/vendor/league/plates/src/Template/Template.php(153): include() #1 /Users/philiptobias/.composer/vendor/league/plates/src/Engine.php(277): League\Plates\Template\Template->render(NULL) #2 /Users/philiptobias/.composer/vendor/league/plates/src/Template/Template.php(289): League\Plates\Engine->render('theme::partials...', Array) #3 /Users/philiptobias/Documents/Tests/Daux/templates/home.php(7): League\Plates\Template\Template->insert('theme::partials...') #4 /Users/philiptobias/.composer/vendor/league/plates/src/Template/Template.php(153): include('/Users/philipto...') #5 /Users/philiptobias/.composer/vendor/league/plates/src/Engine.php(277): League\Plates\Template\Template->render(NULL) #6 /Users/philiptobias/.composer/vendor/daux/daux.io/libs/Format/HTML/Template.php(75): League\Plates\Engine->render('them in /Users/philiptobias/Documents/Tests/Daux/templates/partials/navbar_content.php on line 6

    support 
    opened by PhilipTobias 8
  • Parameters for

    Parameters for "daux serve" mode have no effect

    Describe the bug None of the command line parameters for "daux serve" are not reflected when using the live mode.

    To Reproduce Steps to reproduce the behavior:

    a)

    1. Execute daux serve --processor=InvalidProcessor
    2. No error is printed that InvalidProcessor does not exist.

    b)

    1. Execute daux serve --processor=ValidProcessor
    2. ValidProcessor is not used.

    c)

    1. Execute daux serve --verbose
    2. No verbose mode is enabled

    Expected behavior See above.

    Additional context The problem resides in the way Daux is calling itself. When using daux serve, Symfony is used with its command line arguments but they are not reflected back when using PHP's passthru method in Console\DauxCommand.php. I've changed the file accordingly so we could theoretically reuse the command line arguments:

            # GH: strip "serve" command from command line arguments
            $arguments = $input->__toString();
            $arguments = str_replace(" serve", "", $arguments);
    				
            putenv('DAUX_SOURCE=' . $daux->getParams()->getDocumentationDirectory());
            putenv('DAUX_THEME=' . $daux->getParams()->getThemesPath());
            putenv('DAUX_CONFIGURATION=' . $daux->getParams()->getConfigurationOverrideFile());
            putenv('DAUX_EXTENSION=' . DAUX_EXTENSION);
    
            $base = escapeshellarg(__DIR__ . '/../../');
            $binary = escapeshellarg((new PhpExecutableFinder)->find(false));
    
            echo "Daux development server started on http://{$host}:{$port}/\n";
    		
            # GH: append arguments
            passthru("{$binary} -S {$host}:{$port} {$base}/index.php {$arguments}");
    

    Nevertheless, the arguments are not taken into credit as index.php does not use any of Symfony's application or command line context but directly instantiates the Daux class by calling

    require_once __DIR__ . '/libs/bootstrap.php';
    
    \Todaymade\Daux\Server\Server::serve();
    

    The situation can be improved in a few different ways:

    1. (Quick fix): Remove the unused command line parameters like verbose and processor from the serve command
    2. (Quick fix): Update https://daux.io/For_Developers/Creating_a_Processor.html to describe that the processor argument can only be used with daux generate OR by providing the class name inside the config.json file
    3. Refactor the index.php so that Daux is instantiated by Symfony based upon the command line parameters provided. If it is not running in SAPI/CLI mode but in a webserver environment, don't provide any parameters but fall back to the config.json.
    bug Waiting for release 
    opened by schakko 8
  • Increase performance for building docs

    Increase performance for building docs

    Hi

    I have been using your package for some time now - and written lots of documentation with it. It works really great it's simply. However, after the ever increasing amount of pages that I create, I have noticed that it does take more time to build the HTML pages (currently over 700 *.md files to built each time).

    Would it be possible for you to change build strategy, so that only "changed" pages are regenerated. Of course, certain elements like menus or indexes might have to be generated regardless of circumstance (I do not know your package that well).

    There are many ways to determine if a "page" has changed.

    • Checksum of file, stored it inside a local "cache" file
    • Git status (assuming git is available on local environment)
    • Last modified date of file (If you can trust it from local OS - still has to be stored in some kind of cache)
    • ...other?

    I know that this is somewhat of a "major" request. But everyone will benefit from it.

    enhancement 
    opened by aedart 8
  • Impossible to load Daux, missing vendor/

    Impossible to load Daux, missing vendor/

    Hello,

    I've used one of the old versions of Daux for quite some time, but when my hosting server got upgraded to PHP7, this stopped working.

    I downloaded a new version of Daux and now I am getting this error as you can see on the site: http://files.ultimogroup.co.nz/competenz/

    I don't really know what this means, I have the docs in the docs folder as before, but it doesn't seem to be serving them like it used to.

    question 
    opened by TheGuardianWolf 8
  • main.min.css missing for single-page HTML output

    main.min.css missing for single-page HTML output

    Describe the bug When generating single-page HTML output, the output seems to lack styling. Shell output includes a warning that main.min.css is missing. Maybe a packaging issue (using daux/daux.io:latest, image ID 0c0c294fdfe0)?

    Warning: file_get_contents(themes/daux_singlepage/css/main.min.css): Failed to open stream: No such file or directory in /daux/libs/Format/HTMLFile/Book.php on line 21

    To Reproduce Run the following command with the currently latest (v0.18.0) Docker image: docker run -it -w /build -v "$PWD":/build --rm daux/daux.io daux generate --format=html-file

    Expected behavior Above command completes without warning regarding missing CSS file. Styles are applied to output (if any).

    Screenshots n/a

    Desktop (please complete the following information): Ubuntu 21.10

    Smartphone (please complete the following information): n/a

    Additional context n/a

    bug 
    opened by gwittenburg 7
  • toggle_code block dont work

    toggle_code block dont work

    Describe the bug The block is not the same as in the documentation. And it doesn't work. example: https://docs.yuccastream.com/en/install.html I use docker image daux/daux.io:latest for build static files

    Screenshots image Config

    {
      "title": "docs.yuccastream.com",
      "tagline": "Yucca docs",
      "author": "YuccaStream developers team",
      "image": "yucca.png",
      "ignore": {
        "files": [
          "README.md",
          ".gitlab-ci.yml",
          "Makefile",
          "AREAS",
          "CODEOWNERS"
        ],
        "folders": [
          "static"
        ]
      },
      "live": {
        "clean_urls": true
      },
      "html": {
        "auto_landing": true,
        "theme": "daux-blue",
        "breadcrumbs": true,
        "breadcrumb_separator": "Chevrons",
        "toggle_code": true,
        "float": true,
        "date_modified": true,
        "inherit_index": true,
        "links": {
          "yuccastream.com": "https://yuccastream.com"
        },
        "powered_by": "Powered by Daux.io"
      },
      "timezone": "Asia/Yekaterinburg",
      "languages": {
        "ru": "Russian",
        "en": "English"
      }
    }
    
    
    Waiting for release 
    opened by jidckii 7
  • Bootstrap 3 support

    Bootstrap 3 support

    Is your feature request related to a problem? Please describe. I'm trying to use bootstrap 3 ( later will be 4 ) classes in my doc's for the "working" examples. So that, when demonstrating accordion class for example, I can write the actual code needed like is done in the bs docs.

    Describe the solution you'd like Be able to use bootstrap code in docs to create wysiwyg example(s)

    Describe alternatives you've considered switching to another generator such as couscous

    Additional context Here's an example doc page where bs is being used to display the needed information https://bootswatch.com/cosmo/

    support 
    opened by N6REJ 7
  • Multilang error generating html

    Multilang error generating html

    I'm trying to generate html documentation using multilanguage, But when I execute the command daux generate I get following output:

    Copying Static assets ...                                                                                                                                                                     [  OK  ]
    Generating ...
    - index.html                                                                                                                                                                                  [ FAIL ]
    
      [LogicException]
      The template function "translate" was not found.
    
    generate [-c|--configuration CONFIGURATION] [-s|--source SOURCE] [-f|--format FORMAT] [-p|--processor PROCESSOR] [-t|--themes THEMES] [--delete] [-d|--destination DESTINATION] [--search]
    

    Actually I'm using the example given in daux documentation, but I have attached the docs folder, maybe I'm still doing something wrong. docs.zip

    support 
    opened by IAvilaE 7
  • Single page export mermaid diagrams and charts

    Single page export mermaid diagrams and charts

    When exporting to single page HTML the "source" of the mermaid charts and diagrams are generated in the file, instead of a PNG or SVG.

    It would be nice to generate an embedded image instead, it seems to me with https://github.com/mermaid-js/mermaid-cli it should be possible.

    opened by hirisov 3
  • plantuml can this be integrated for the docker images somehow

    plantuml can this be integrated for the docker images somehow

    Hello,

    mermaid is functionable and i like this feature. but somehow plantuml is more powerfull imho, for example you have network diagrams, too.

    Can plantuml be implemented for the docker images? i know this will need java and graphviz in the image but that would imho be nice .

    i just need to say i likne this project :-)

    have a nice day to all of you out there

    opened by wemasoe 3
  • The template

    The template "theme::home" could not be found at "templates/home.php"

    I have a templates folder in my repo which is unrelated to daux. How can I instruct daux to ignore it?

    Run daux generate
      daux generate
      shell: /usr/bin/bash -e {0}
      env:
        COMPOSER_PROCESS_TIMEOUT: 0
        COMPOSER_NO_INTERACTION: 1
    Copying Static assets ...                                             [  OK  ]
    Generating ...
    - index.html                                                          [ FAIL ]
    In Template.php line 155:
      The template "theme::home" could not be found at "templates/home.php".  
    generate [-c|--configuration CONFIGURATION] [-s|--source SOURCE] [-p|--processor PROCESSOR] [--no-cache] [-t|--themes THEMES] [--value VALUE] [-f|--format FORMAT] [--delete] [--printDiffAndExit] [-d|--destination DESTINATION]
    Error: Process completed with exit code 1.
    
    bug 
    opened by dvikan 1
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Ignored or Blocked

    These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

    Detected dependencies

    composer
    composer.json
    • php >=8.1
    • guzzlehttp/guzzle ~6.0 || ~7.0
    • league/commonmark ^2.2.0
    • league/plates ~3.1
    • symfony/polyfill-intl-icu ^1.10
    • mikey179/vfsstream ^1.6
    • phpspec/prophecy-phpunit ^2.0
    • phpunit/phpunit ^9.5
    docker-compose
    docker/docker-compose.5.yml
    • php 8-fpm
    docker/docker-compose.7.yml
    • php 8.2-fpm
    dockerfile
    Dockerfile
    • composer 2.5.1
    • php 8.2.0
    github-actions
    .github/workflows/docker.yml
    • actions/checkout v3
    • docker/login-action v2
    • docker/setup-buildx-action v2
    • docker/metadata-action v4
    • docker/build-push-action v3
    .github/workflows/documentation.yml
    • actions/checkout v3
    • shivammathur/setup-php 2.23.0
    • JamesIves/github-pages-deploy-action v4.4.1
    • JamesIves/github-pages-deploy-action v4.4.1
    • actions/checkout v3
    • shivammathur/setup-php 2.23.0
    .github/workflows/php.yml
    • actions/checkout v3
    • shivammathur/setup-php 2.23.0
    • actions/checkout v3
    • shivammathur/setup-php 2.23.0
    • actions/setup-node v3.5.1
    • actions/checkout v3
    • shivammathur/setup-php 2.23.0
    • SonarSource/sonarcloud-github-action v1.8
    npm
    package.json
    • @swissquote/crafty 1.20.0
    • @swissquote/crafty-preset-babel 1.20.0
    • @swissquote/crafty-preset-postcss 1.20.0
    • @swissquote/crafty-runner-gulp 1.20.0
    • @swissquote/crafty-runner-rollup 1.20.0
    • flexsearch ^0.7.0
    • katex ^0.16.4
    • mermaid ^9.2.2
    • postcss-page-break ^2.0.0
    • preact ^10.0.5
    • testcafe ^2.0.0

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
  • Handle uncaught error when content directory becomes invalid

    Handle uncaught error when content directory becomes invalid

    Description I am currently experiencing an application error that I believe to be caused when the underlying directory (--dir ) gets removed or updated to point to a new location. After the filesystem update, the next request to the server responds with an HTTP 200 response code and the following content in the body:

    curl http://localhost:8085/
    Fatal error: Uncaught Error: Call to a member function getUri() on null in /daux/libs/Server/Server.php:155 Stack trace: #0 /daux/libs/Server/Server.php(66): Todaymade\Daux\Server\Server->handle() #1 /daux/index.php(80): Todaymade\Daux\Server\Server::serve() #2 {main} thrown in /daux/libs/Server/Server.php on line 155

    Steps to Reproduce

    1. Create a directory called "/tmp/content" containing an index.md file
    2. Start the daux docker container, mounting the /tmp/content directory under "/content" and using the "--dir /content" argument
    3. Use curl to verify that the index page is returned successfully
    4. Use the "docker exec" command to shell into the container and remove the /content/index.md file
    5. Use curl again to reproduce the error

    Runtime Environment

    docker run -p 8085:8085 --rm -it -v /tmp/content:/content -v /tmp/config:/config daux/daux.io daux serve --quiet --host=0.0.0.0 --port=8085 --source=/content --configuration=/config/config.json

    Expected behavior

    The error needs to be caught and the HTTP response needs to return a 404 or a 500 error.

    Additional context

    I am trying to deploy the "git-sync" container and the daux container in a kubernetes environment. The git-sync container syncs the markdown files to a volume and the daux container is responsible for serving up the content. However, when the git-sync container pulls down a new commit, it appears to create a new directory and update the symlink to the directory where daux is loading the content. The daux container then fails to load content from that point forward and needs to be restarted in order to work again. I was hoping to force the container to restart under this condition by using a Kuberntes liveness probe on the root URL, but since the daux fails to catch the unhandled error the HTTP server always returns an HTTP 200 response code and the liveness probe will always be successful.

    opened by sstafford 2
  • Change language feature?

    Change language feature?

    It would be really nice being able to change language in any page and land on the corresponding language version of the same page. If I am not wrong, currently I have to manually create links for every page for this language switch

    enhancement 
    opened by monkeysHK 1
Releases(0.21.1)
  • 0.21.1(Dec 21, 2022)

    • Fix create_root_if_missing that wasn't creating pages #358
    • Massively increase code coverage (31% -> 51%) mostly related to Confluence exports, but not limited to that.

    Full Changelog: https://github.com/dauxio/daux.io/compare/0.21.0...0.21.1

    Source code(tar.gz)
    Source code(zip)
  • 0.21.0(Dec 14, 2022)

    Highlights

    • Add Collapsible blocks, works with HTML, Single File HTML and Confluence #349
      • HTML Demo and documentation : https://daux.io/Features/Collapsible.html
      • Confluence Demo : https://dauxio.atlassian.net/wiki/spaces/DOC/pages/2850914305/Collapsible
    • Fix most PHP 8.2 Deprecation warnings #357
    • Add create_root_if_missing option to confluence when using ancestor_id #358

    Full Changelog: https://github.com/dauxio/daux.io/compare/0.20.2...0.21.0

    Source code(tar.gz)
    Source code(zip)
  • 0.20.2(Dec 11, 2022)

    What's Changed

    • Add Admonitions #224
      • Works for HTML and Confluence formats, not yet for single page exports
      • Documentation and demo : https://daux.io/Features/Admonition.html
      • Confluence export demo : https://dauxio.atlassian.net/wiki/spaces/DOC/pages/2849899333/Admonition
    • Drop support for PHP 8.0
      • Minimum supported version : PHP 8.1
      • Use PHP 8.2 in the Docker image
    • Internal
      • Fix many linting errors and standardize code formatting

    Full Changelog: https://github.com/dauxio/daux.io/compare/0.20.1...0.20.2

    Source code(tar.gz)
    Source code(zip)
  • 0.20.1(Dec 10, 2022)

    Highlights

    • Multiple small bug fixes
      • #278 Fix warnings in some PHP versions with explicit casting
      • #327 In case of front matter parsing error, display in which file it happened
      • #354 Fix deprecation warning on getRelativePath
      • #352 Improve error message when using Confluence publishing with ancestor_id and page is not found
      • #353 Fix sorting when using generated pages
      • #355 Fix deprecation warning on filemtime
    • Dependencies updates
      • PHP in Docker image to 8.1.11
      • Katex upgraded to 0.16.4
      • Mermaid upgraded to 9.2.2

    New Contributors

    • @hirisov made their first contribution in https://github.com/dauxio/daux.io/pull/348

    Full Changelog: https://github.com/dauxio/daux.io/compare/0.20.0...0.20.1

    Source code(tar.gz)
    Source code(zip)
  • 0.20.0(Sep 24, 2022)

    Highlight

    • Dark mode
    • Support data urls for images #335

    What's Changed

    • Bump guzzlehttp/guzzle from 7.4.3 to 7.4.5 by @dependabot in https://github.com/dauxio/daux.io/pull/326
    • Update JamesIves/github-pages-deploy-action action to v4.3.4 by @renovate in https://github.com/dauxio/daux.io/pull/328
    • Update PHP to 8.1.9 by @renovate in https://github.com/dauxio/daux.io/pull/334
    • Bump moment from 2.29.2 to 2.29.4 by @dependabot in https://github.com/dauxio/daux.io/pull/331

    Full Changelog: https://github.com/dauxio/daux.io/compare/0.19.0...0.20.0

    Source code(tar.gz)
    Source code(zip)
  • 0.19.0(Jun 17, 2022)

    Markdown improvements

    • Upgraded to league/commonmark 2.2.3

    Confluence Improvements

    • No need to specify the space_id, it is now inferred through the ancestor_id or root_id
    • add --printDiffAndExit to confluence format to show what an upload would change, useful to know what changes will be added or removed
    • adjusted doc for confluence on how to get ancestor_id, the edition tr‚Ķ by @mofleury in https://github.com/dauxio/daux.io/pull/318

    New Contributors

    • @mofleury made their first contribution in https://github.com/dauxio/daux.io/pull/318

    Full Changelog: https://github.com/dauxio/daux.io/compare/0.18.1...0.19.0

    Source code(tar.gz)
    Source code(zip)
  • 0.18.1(Jan 31, 2022)

  • 0.18.0(Jan 30, 2022)

    • Add PHP 8.1 support #292
    • Remove PHP 7.4 support
    • Fix single-page export, add test to keep it working #291
    • Make sure Daux works when there is only a single markdown file #290
    • Make permalinks more GitHub like #288
    Source code(tar.gz)
    Source code(zip)
  • 0.17.2(Jan 3, 2022)

    • Fixed search, thanks @axelhahn for reporting the issue #287
    • Added frontend regression tests to make sure the search feature won't break again.
    Source code(tar.gz)
    Source code(zip)
  • 0.17.1(Dec 18, 2021)

  • 0.17.0(Dec 18, 2021)

    CommonMark 2.0.0

    This release is based on CommonMark 2.0.0 If you have custom plugins and extensions, they need to be updated as well

    CommonMark upgrade guide : https://commonmark.thephpleague.com/2.0/upgrading/

    Dependencies

    • Needs PHP 7.4 at least to work
    • Update to CommonMark 2.0.0
      • Use CommonMark's Table of Contents
      • Uee the embedded FrontMatter reader
    • Update to Mermaid 8.13.4

    Docker image

    • Use Composer 2 to install
    • Update to PHP 8

    Internal

    • Enable deepsource in builds to experiment with it
    • Remove scrutinizr related comments and configuration
    • Use GitHub actions to build Docker image
    • Re enable Sonarcloud
    • Start typing many fields and return types
    Source code(tar.gz)
    Source code(zip)
  • 0.16.2(Apr 6, 2021)

  • 0.16.1(Apr 6, 2021)

  • 0.16.0(Apr 1, 2021)

    Added support for Katex and MermaidJS in Markdown

    You can now create fenced code blocks with language mermaid that will then render using mermaidjs : https://mermaid-js.github.io/mermaid/#/ And fenced code blocks with language tex that will render using KaTex : https://katex.org/

    Source code(tar.gz)
    Source code(zip)
  • 0.15.1(Dec 30, 2020)

  • 0.15.0(Nov 28, 2020)

    • Allow Guzzle 7 as a dependency (6 is still possible)
    • Improve documentation by @saeedsajadi
    • Use absolute class path for processors (#214) by @zucha
    Source code(tar.gz)
    Source code(zip)
  • 0.14.0(Jun 6, 2020)

    • Allow to create a style.css file within the documentation for simple theme overrides #180
    • Correctly check when no header image is specified #205
    • Tweak styles to allow for inline images #204
    • Allow anchors on links in Confluence #208
    • Set dependencies to Symfony as both Symfony 4.4 and 5.0 #210
    • Fix bugs where more than two identical titles would have the same link in the Table of Contents #209
    Source code(tar.gz)
    Source code(zip)
  • 0.13.0(Apr 24, 2020)

    Highlights

    • Search improvements
    • Analytics improvements (Google Analytics and Plausible)

    Search improvements

    • Improve search form accessibility
    • Allow search feature to work on static websites loaded from filesystem (and not a webserver) #198

    Analytics changes

    • Fix Google Analytics always being added to the page #194
    • Use latest Google Analytics tracking code #202
    • Add https://plausible.io analytics

    Other changes

    • Update to CommonMark 1.4, use embedded table extension
    • Add rel="noopener noreferrer" on external links
    Source code(tar.gz)
    Source code(zip)
  • 0.12.1(Feb 11, 2020)

    Bugfixes

    • Fix Search JavaScript to not conflict with the rest of the JavaScript ( #184 #190 )
    • Fix fatal error while generating html files from markdown ( #185 #186 Thanks @proggeler )
    • Fix PHP 7.4 Warnings ( #189 )
    • Fix condition to add piwik analytics, would always be added
    • Fix an edge case in Sort that makes pages disappear

    Misc

    • Compile JavaScript and CSS for defaults configuration of browserslist instead of the custom query we had
    • Remove --search option in generate since it's enabled by default and the option doesn't allow to disable it.
    • Fix CSS compilation warnings

    ## Documentation

    • Correct references to older versions of PHP
    Source code(tar.gz)
    Source code(zip)
  • 0.12.0(Dec 29, 2019)

    Highlights

    • Drop PHP 7.1 support, minimum is PHP 7.2 now
    • Rewrite the configuration layer to be typed, fixes a lot of edge cases, now allows changin "serve" options through the command line and simplifies a lot of code paths #171

    Bugfixes

    • Fix relative links for images, now works correctly in serve and generate mode #169 #78
    • Fix bug where files with non-ascii names would be blank, they are now transliterated #183
    • Fix Nesting level too deep - recursive dependency? when multiple files have the same name #182

    Internal

    • Fix a type issue in an update #181
    • Lazy load the CommonMark converter, only loaded when we actually need to generate a page, wins around 10ms
    Source code(tar.gz)
    Source code(zip)
  • 0.11.1(Sep 23, 2019)

  • 0.11.0(Sep 23, 2019)

    Highlights

    • Smaller frontend payload
    • Use a better library for the search engine, rewrote the UI with preact
    • Dropped jQuery entirely
    • Removed the inline code blocks feature, drastically reduced the CSS complexity.
    • Changed the code highlight theme
    • Upgrade highlight.js to 9.15.10
    • Fix a small bug in the Vanilla JS side navigation

    Performance improvements

    The typical Daux page went from 333K to 96.7K. How did we do it ? Let's look at the details.

    1. Lazy load the highlight.js library (~158K)
    2. Lazy load the search index (~30K in Daux's documentation)
    3. We removed jQuery entirely, replaced with vanilla JavaScript, even in search (~32K)
    4. Replaced the Twitter button/iframe with a built in solution, which has the added benefit of more privacy (~20K)

    Added to that, we now do the highlight.js rendering on the server side, so if you use fenced code blocks with the language specified in your documentation, we won't load highlight.js at all.

    Source code(tar.gz)
    Source code(zip)
  • 0.10.2(Sep 12, 2019)

  • 0.10.1(Aug 29, 2019)

  • 0.10.0(Aug 13, 2019)

    • We now have a theme that doesn't require html5shiv or jQuery (except in search, this will be solved in a future release) #125
    • Fix localStorage access failures when accessing files directly #122
    • Include print stylesheet correctly #123

    Thanks to @JKingweb and @dustinwilson who contributed all these changes

    Source code(tar.gz)
    Source code(zip)
  • 0.9.4(Aug 8, 2019)

  • 0.9.3(Jul 9, 2019)

  • 0.9.2(May 28, 2019)

  • 0.9.0(Mar 4, 2019)

Owner
Daux.io
Daux.io is a documentation generator
Daux.io
Simple forum software for building great communities.

About Flarum Flarum is a delightfully simple discussion platform for your website. It's fast and easy to use, with all the features you need to run a

Flarum 5.8k Jan 3, 2023
Documentation generator for PHP Code using standard technology (SRC, DOCBLOCK, XML and XSLT)

phpDox phpDox is a documentation generator for PHP projects. This includes, but is not limited to, API documentation. The main focus is on enriching t

Arne Blankerts 588 Dec 22, 2022
Documentation Generator for PHP

phpDocumentor What is phpDocumentor? phpDocumentor is an application that is capable of analyzing your PHP source code and DocBlock comments to genera

phpDocumentor 3.7k Dec 28, 2022
An API documentation generator

Sami: an API documentation generator WARNING: Sami is not supported nor maintained anymore. Feel free to fork. Curious about what Sami generates? Have

null 2k Dec 17, 2022
A php API documentation generator, fork of Sami

Doctum, a PHP API documentation generator. Fork of Sami Curious about what Doctum generates? Have a look at the MariaDB MySQL Kbs or Laravel documenta

Code LTS 203 Dec 21, 2022
Documentation Generator for WordPress.

Pronamic WordPress Documentor is a tool to automatically extract data about the actions and filters of your WordPress theme or plugin.

Pronamic 36 Dec 8, 2022
Sami: an API documentation generator

Sami: an API documentation generator WARNING: Sami is not supported nor maintained anymore. Feel free to fork. Curious about what Sami generates? Have

null 2k Dec 17, 2022
FluxBB is a fast, light, user-friendly forum application for your website.

FluxBB 1.5 Readme About FluxBB is an open source forum application released under the GNU General Public Licence. It is free to download and use and w

FluxBB 477 Dec 27, 2022
Learn how to implement the most important Design Patterns into your PHP application, uses PHP 8.1

Learn how to implement the most important Design Patterns into your PHP application. This project uses PHP 8.1. it has examples for each Pattern and an Article explaining how to use them step by step, their advantages, and disadvantages.

Gabriel Anhaia 203 Dec 15, 2022
PHP Developer Roadmap

This is PHP Developer Roadmap

TheCodeholic 2.3k Jan 6, 2023
PHP 7.1 ready Smart and Simple Documentation for your PHP project

Smart and Readable Documentation for your PHP project ApiGen is the simplest, the easiest to use and the most modern api doc generator. It is all PHP

ApiGen 2.1k Dec 22, 2022
PHP 7.1 ready Smart and Simple Documentation for your PHP project

Smart and Readable Documentation for your PHP project ApiGen is the simplest, the easiest to use and the most modern api doc generator. It is all PHP

ApiGen 2.1k Apr 20, 2021
phpDocumentor is an application that is capable of analyzing your PHP source code and DocBlock comments to generate a complete set of API Documentation

phpDocumentor What is phpDocumentor? phpDocumentor is an application that is capable of analyzing your PHP source code and DocBlock comments to genera

phpDocumentor 3.7k Jan 3, 2023
Generates documentation for your REST API from annotations

NelmioApiDocBundle The NelmioApiDocBundle bundle allows you to generate a decent documentation for your APIs. Migrate from 3.x to 4.0 To migrate from

Nelmio 2.1k Jan 6, 2023
Generate interactive OpenAPI documentation for your RESTful API using doctrine annotations

Generate interactive OpenAPI documentation for your RESTful API using doctrine annotations

Robert Allen 4.6k Jan 6, 2023
Generate Sphinx/ReStructured documentation from PHPDoc

PHP-phpdoc-to-rst Forked from Francesco "Abbadon1334" Danti by AeonDigital. In this fork the changes has only visual and superficial effects [ just be

Rianna Cantarelli 0 Nov 16, 2021
Simple and effective multi-format Web API Server to host your PHP API as Pragmatic REST and / or RESTful API

Luracast Restler ![Gitter](https://badges.gitter.im/Join Chat.svg) Version 3.0 Release Candidate 5 Restler is a simple and effective multi-format Web

Luracast 1.4k Jan 2, 2023
allourideas allows groups to collect and priorize information in an open, democratic, and efficient process.

All Our Ideas All Our Ideas 2.0. This codebase runs two sites photocracy.org and allourideas.org. The allourideas.org project provides the user-facing

All Our Ideas 154 Dec 3, 2022
PhpMetrics provides metrics about PHP project and classes, with beautiful and readable HTML report.

PhpMetrics provides metrics about PHP project and classes, with beautiful and readable HTML report.

PhpMetrics 2.3k Jan 5, 2023