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
  • 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
  • Not properly linked when index.md is not being used

    Not properly linked when index.md is not being used

    I recently updated Daux and my can't properly generate docs.

    docs
    - 01_test1 (links to index.md)
    -- index.md (works fine)
    - 02_test2 (links to href="#" and does nothing)
    -- 01)faq.md (cannot be accesse)
    

    Edit

    Just realized its a JS Error related ReferenceError: jQuery is not defined[Więcej informacji] tipuesearch.js:365:1 ReferenceError: $ is not defined[Więcej informacji] index.html:11

    bug 
    opened by seigieu 7
  • Update dependency testcafe to v2

    Update dependency testcafe to v2

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | testcafe (source) | ^1.18.1 -> ^2.0.0 | age | adoption | passing | confidence |


    Release Notes

    DevExpress/testcafe

    v2.0.0

    Compare Source

    v2.0.0 (2022-08-31)

    TypeScript update

    :warning: TestCafe 2.0 includes a breaking change. The framework’s built-in TypeScript compiler has been updated from version 3.9 to version 4.7. The vast majority of TestCafe users should not experience any issues during the upgrade. However, since TypeScript does not follow the semver versioning policy, even minor TypeScript updates contain breaking changes. Some TypeScript users may need to perform additional actions to ensure the compatibility of their test code.

    Read the TestCafe 2.0 Migration Guide to learn more.

    Improvement: New ways to ignore JavaScript errors

    TestCafe v2.0 introduces new ways to ignore JavaScript errors during test runs.

    Two new methods allow you to ignore errors on a per-test or a per-fixture basis.

    • Use the test.skipJsErrors method to ignore JavaScript errors in specific tests.
    • Use the fixture.skipJsErrors method to ignore JavaScript errors for specific fixtures.
    • The t.skipJsErrors action lets you ignore JavaScript errors at specific points in the test.

    For each of the methods above, you can define the following options:

    • The pageUrl option filters errors by page URL.
    • The message option filters errors by message.
    • The stack option filters errors by call stack.

    Read the Skip JavaScript Errors recipe to learn more.

    v1.20.1

    Compare Source

    Bug Fixes
    • Running 11 or more tests concurrently causes a memory leak (#​7188).
    • TestCafe cannot switch to iframes that descend from a shadowRoot element (#​3673).
    • TestCafe attempts to execute JSON files without fixture and test definitions (PR #​7187).
    • TestCafe incorrectly processes request hooks that return status code 500 (#​7213)

    v1.20.0

    Compare Source

    :warning: Warning: Impending breaking change. TestCafe v1.20 is the final version of the framework to support TypeScript 3. The next update will abandon TypeScript 3 in favor of TypeScript 4.

    TestCafe v1.20.0 includes two major capabilities: an API testing toolkit and the ability to set a global test page URL. Additionally, TestCafe 1.20.0 introduces experimental support for Chrome User Flow Replays, as well as a number of under-the-hood improvements.

    API Testing

    TestCafe v1.20.0 includes a comprehensive set of server-side API testing tools. You can add dedicated API tests to your test suite, or include API testing methods in existing functional tests.

    The new Request test action executes an HTTP request and returns the server's response.

    const responseBody = await t.request(`http://localhost:3000/helloworld`).body;
    
    t.expect(responseBody).contains('Hello World') // true
    

    Read the API Testing Guide for a full overview of the framework's API testing capabilities.

    Global starting URL

    You can now define a single starting URL for all the tests in your test suite.

    Declare the baseUrl in one of the following three ways:

    Once you define a baseUrl, you can omit fixture and test URLs entirely, or define them relative to your baseUrl:

        "baseUrl": "https://devexpress.github.io/testcafe"
    
    fixture`Test structure`
        .page`./example`; // starts at https://devexpress.github.io/testcafe/example
    
    Experimental: Chrome User Flow Replays

    TestCafe v1.20.0 introduces experimental, limited support for Google Chrome user flow recordings.

    Record page actions in Google Chrome and export the recording as a JSON file. TestCafe will play the recording back just like it would a generate a test report

    Read the User Flow Recordings guide to learn more.

    Coming in TestCafe 2.0: TypeScript 4

    The next version of TestCafe will adopt TypeScript 4 and lose compatibility with TypeScript 3.X.

    To indicate the breaking change, we will increment the framework's major version number - from 1 to 2.

    TestCafe 2.0 will be released later this month.

    Improvements
    • Better Google Chrome video capture

      TestCafe v1.20.0 uses the Screen Capture API to record videos of Google Chrome test runs. This results in a significantly better test recording framerate and image quality.

      Screen capture comparison GIF

    Bug Fixes
    • When the t.typeText action raises an error, TestCafe mistakenly awaits the target element for the second time (#​6623)

    • Concurrent test runs do not always generate concurrent test run reports (#​7062)

    • TestCafe doesn't properly handle errors raised inside the requestMock function (#​6703)

    • The default terminal viewport width is too low for non-tty terminals (Issue #​5919, PR #​6930 by @​PayBas)

    • TestCafe cannot switch to an invisible iframe (#​4558)

    • Update incorrect TypeScript definitions (PR #​7069 by @​karolnowinsky)

    • Some SVGs don't meet the visibility criteria (#​6998)

    v1.19.0

    Compare Source

    TestCafe v1.19.0 introduces three major capabilities: a Cookie Management API, suite-wide test hooks, and suite-wide request hooks.

    New Capabilities
    Cookie Management

    Previous versions of TestCafe lacked dedicated cookie management methods. Users had to write custom client functions to add and remove cookies. This technique was complicated and, at times, limiting. Some cookie manipulation actions --- such as HTTP-only cookie management --- were very hard to integrate into the test suite.

    The latest version of the framework includes a proper set of cookie management tools that can handle a wide variety of tasks. Learn more about the new methods in our documentation: deleteCookies, getCookies, setCookies.

    fixture('[API] Delete Cookies')
       .page('https://devexpress.github.io/testcafe/example/');
    
    test('Should delete all the cookies with the specified url', async t => {
       // Set a cookie for the examples page.
       await t.setCookies({ name: 'apiCookie1', value: 'value1' });
    
       // Set a cookie for the 'thank you' page.
       await t.setCookies({
           name:  'apiCookie2',
           value: 'value2',
       }, 'https://devexpress.github.io/testcafe/example/thank-you.html');
    
       // Check the cookies.
       let cookies = await t.getCookies();
    
       await t
           .expect(cookies.length).eql(2)
           .expect(cookies[0]).contains({ name: 'apiCookie1', path: '/testcafe/example/' })
           .expect(cookies[1]).contains({ name: 'apiCookie2', path: '/testcafe/example/thank-you.html' });
    
        // Delete cookies from the 'thank you' page.
        await t.deleteCookies({ domain: 'devexpress.github.io', path: '/testcafe/example/thank-you.html' });
    
        // Check the cookies.
        cookies = await t.getCookies();
    
        await t
            .expect(cookies.length).eql(1)
            .expect(cookies[0]).contains({ name: 'apiCookie1', path: '/testcafe/example/' });
    });
    
    Global Test Hooks

    Many TestCafe users employ test hooks --- functions that run before and after tests and fixtures. In TestCafe v1.19.0 and higher, you can attach hooks to test runs, as well as apply test hooks to your entire suite. This capability requires the use of a JavaScript configuration file.

    Learn more about hooks from our newly updated hook guide.

    Global Request Hooks

    Request hooks are functions that intercept HTTP requests and mock HTTP responses. Earlier versions of TestCafe let you attach request hooks to one test or fixture at a time. You can now define global request hooks and attach them to multiple tests or fixtures in your suite.

    Read the Request Hooks guide to learn more.

    Bug Fixes

    v1.18.6

    Compare Source

    Bug Fixes

    v1.18.5

    Compare Source

    Bug Fixes
    • The t.scrollIntoView method causes the "Element is not visible" error when the target's overflow property is hidden (#​6601)

    • TestCafe triggers click events for label elements even when the input is disabled (#​6949)

    • TestCafe hangs when you change the active window between two consecutive assertions (#​6037)

    • TestCafe cannot take screenshots when using the LambdaTest browser provider (#​6887)

    • Pages that target a missing <iframe>(testcafe-hammerhead/#​2178 element with the Element.focus method yield a ""TypeError: window.location.toString is not a function" error.

    • TestCafe causes errors when it encounters XMLHTTPRequest calls that fetch resources from blob: URLs (testcafe-hammerhead/#​2634)

    • HTMLElement.removeAttributeNode method calls yield unjustified exceptions (PR testcafe-hammerhead/#​2742 by @​TrevorKarjanis)

    v1.18.4

    Compare Source

    Bug Fixes

    v1.18.3

    Compare Source

    Bug Fixes
    • The nanoid package is vulnerable to CVE-2021-23566 (#​6826)
    • The Selector.visibility property does not depend on the parent elements' visibility (#​3495)

    v1.18.2

    Compare Source

    Bug Fixes
    • Tests with client scripts yield the "Cannot read property 'tests' of null" error (#​6305)
    • TestCafe hangs after failing to initialize a Role (#​5278)
    • Testcafe falsely detects filter directives in the configuration file (#​6620)
    • Concurrent Chrome instances cannot reconnect to TestCafe after a restart (#​4554)
    • TestCafe hangs if a user enters an iframe and then switches to a different browser window (#​6085)
    • TestCafe opens incorrect URLs when you concurrently run multiple fixtures from the same test file (#​6041)
    • TestCafe expands disabled <select> elements (#​5616)
    • TestCafe does not load some cross-domain iframes (#​6633)
    • TestCafe incorrectly sets the Document.referrer property in Chrome 89 (#​6144)
    • Tests hang when the test page initiates a file download (#​5796)
    • Requests fail because TestCafe incorrectly handles dynamic content security policy (#​6057)
    • TestCafe triggers pointerdown event handlers twice (#​5891)
    • TestCafe cannot trigger click event handlers for Angular buttons with the "disabled" attribute (#​5240)

    Configuration

    📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Update all non-major dependencies

    Update all non-major dependencies

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | composer | stage | patch | 2.4.0 -> 2.4.1 | | php | final | patch | 8.1.9 -> 8.1.10 |


    Configuration

    📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • DauxHelper.php line 424 failure on finding Pictures

    DauxHelper.php line 424 failure on finding Pictures

    The generation stops, when pictures are linked in the markdown file in base64 encoding.

    Failure Message: In DauxHelper.php line 424: Could not locate file 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACOElEQVQ4jZWTTUiUURSGn3 O+0RknR0dzFMpM3FQjZakUYfYDLkJaF7QKF61qUZuWQdCqRauIlkFBtGkRSRC5yTD6kah0DMIcM8gRsi8d9fu9LeYHR1vUXd57z3vue+7zChuWeUsVI Z0oh4GO4vZXDGPEmZBO3PX3ZUPxbgyXEE4BLQhW4YAAmAeGUW5KN5ObBMwbjiPcAtIo+L6wlLdQhUQ8QNWAASCDclG6eV4WMK/pRHkIpBGYysa5/yxF JhsnYhl6di1zdiDH9pRbEpkCTksvH8VMUM0atzEMIfBlroYrd9r5losSsQz51YKLvr2/uTaUpSnplUTuUsP5CHm6UAaLXnn0YivzP6u5em6WxoTH9Xt tpHeucHSfTSYbpz9pl1yfZI3uCBZ9GJoBHE+Zmq0h3b7CQO8votUhx/bbHNyzRH+XzfjnWoJAsNQApDAcUQwdgCLgB8Kaq4TleYHrCXO5KIt2FZMzcf ygPHcFOiLrv9H1BcdTZn7EeDzaSGOdz+iHekbeCU/GGvADZfDQItFkWO4QQZjGEALqeoLjKvlVixsPWlE1OK4CsGBX0Zz0WF61aGrwKNZMKwEvgVwFj mLwA8H1FCm+2BhoTTk0JPxS9wWEUUV5jzCMKQCzrckhCIQgFIwBVUMy4XPigM3lM9+pry0LPCXGeCVIQvrTdJxXk3WIGLbEQlL1HjuaHdpaHGLRcDNI m1CWAo0VoBsgLBvMIFyQHkYqsgB/CRPFMPEPYVon8l9x/gOWi+cJUGNUhgAAAABJRU5ErkJggg=='

    bug 
    opened by wemasoe 1
  • 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
  • When front matter parsing fails it's unclear in which file it failed

    When front matter parsing fails it's unclear in which file it failed

    Describe the bug When there is a parsing issue in front matter, it's not clear which file it's related to

    Copying Static assets ...                                             [  OK  ]
    Generating ...
    - index.html                                                          [ FAIL ]
    
    In InvalidFrontMatterException.php line 20:
                                                                                   
      Failed to parse front matter: Unable to parse at line 3 (near "validation_d  
      ate:21 Jun 2022").                                                           
                                                                                   
    
    In Parser.php line 481:
                                                                       
      Unable to parse at line 3 (near "validation_date:21 Jun 2022").  
    

    To Reproduce Steps to reproduce the behavior:

    1. Add front matter to one page
    2. Add some processing to customize some pages
    3. When the processing happens on page 1 and reads the front matter of page 3 and fails, it reports it for page 1

    Expected behavior I expect to know exactly where the error comes from

    Screenshots If applicable, add screenshots to help explain your problem.

    opened by onigoetz 0
  • Dark mode anyone?

    Dark mode anyone?

    Is your feature request related to a problem? Please describe. The default theme burns my eyes, which may become a problem in later stages of life.

    Describe the solution you'd like Github-Dark-Mode-Style-Theme

    Describe alternatives you've considered Doing it myself, hindered mostly by my drastic incompetence and slight color blindness

    Additional context I would love for the default themes to be extended by a github-dark-mode-style theme. Because the documentation usually requires a lot of text read up close, the default colors are just way to aggressive for reading imho. I've already tried my hand and have gotten as far as changing the nav bar to gh-like colors, but when I noticed how much else was missing, I just gave up.

    Thanks in advance!

    enhancement 
    opened by Bockiii 1
Releases(0.19.0)
  • 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)

  • 0.8.1(Oct 1, 2018)

    Highlights

    • Add Italian translation
    • Update league/commonmark to 0.17
    • Translate interface in multilanguage mode
    • Search only in current language when in multilanguage mode
    Source code(tar.gz)
    Source code(zip)
  • 0.8.0(Sep 23, 2018)

    Highlights

    • Many small bugfixes
    • Remove default command #60
    • Add translations of modified_at, using php-intl #24
    • Add translations for search #39
    • Fix single page generation #30

    Bugfixes

    • Allow daux to work from sub-directories, #58
    • Fix TOC template overriding #67

    Other

    • Remove HHVM specific code
    • Add suggestions if the format is incorrect on CLI
    Source code(tar.gz)
    Source code(zip)
  • 0.7.5(Sep 20, 2018)

    Highlights

    • Add caching for compilation, should speed up on identical pages #51
    • Add clear-cache command
    • Fix Call to undefined method Symfony\Component\Process\ ProcessUtils::escapeArgument() (#61, #64)

    Internal improvements

    • call getFrontMatter only once per file (#55)
    Source code(tar.gz)
    Source code(zip)
  • 0.7.4(Jun 5, 2018)

    • Raw files beginning with numbers are kept as-is (For example 22.png was converted to .png, now stays 22.png) #26
    • Folder names can now be changed using front matter from the index page inside. #27
    • Documented how you can use the docker image to serve the documentation. #37
    • Fix breadcrumb when multiple folders have the same name. #54
    Source code(tar.gz)
    Source code(zip)
  • 0.7.3(Jun 5, 2018)

    • Upgrade to Symfony 4.0 #43
    • Removed support for PHP 5.0 and 7.0 (7.1 and 7.2 only now) #43
    • Fixed PHP Notice #47
    • daux -V now correctly displays the version
    • daux -v outputs more verbose information on generation

    Thanks to @eadart and @kalixi for their contributions

    Source code(tar.gz)
    Source code(zip)
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.7k Sep 21, 2022
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 586 Jul 24, 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 Sep 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 Sep 19, 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 184 Sep 14, 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 34 Aug 27, 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 Sep 23, 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 474 Sep 9, 2022
PHP Developer Roadmap

This is PHP Developer Roadmap

TheCodeholic 2k Sep 23, 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 186 Sep 11, 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 Sep 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 Sep 27, 2022
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 Sep 21, 2022
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 Sep 23, 2022
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.3k Sep 27, 2022
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 153 Sep 13, 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 Sep 26, 2022