mdx --- .. versionadded:: 2.4 MDX is a tool that helps you keep your markdown documentation up-to-date by checking that its code examples are correct. When setting an MDX stanza, the MDX checks are automatically attached to the ``runtest`` alias of the stanza's directory. See `MDX's repository `__ for more details. You can define an MDX stanza to specify which files you want checked. Note that this feature is still experimental and needs to be enabled in your ``dune-project`` with the following ``using`` stanza: .. code:: dune (using mdx 0.4) .. note:: Version ``0.2`` of the stanza requires mdx ``1.9.0``. Version ``0.4`` of the stanza requires mdx ``2.3.0``. The syntax is as follows: .. code:: dune (mdx ) Where ```` are: - ``(files )`` are the files that you want MDX to check, described as a list of globs (see the :ref:`Glob language specification ` ). It defaults to ``*.md *.mld`` as of version ``0.4`` of the stanza and ``*.md`` before. - ``(deps )`` to specify the dependencies of your documentation code blocks. See :doc:`/concepts/dependency-spec` for more details. - ``(preludes )`` are the prelude files you want to pass to MDX. See `MDX's documentation `__ for more details on preludes. - ``(libraries )`` are libraries that should be statically linked in the MDX test executable. - ``(enabled_if )`` is the same as the corresponding field of :doc:`library`. - ``(package )`` specifies which package to attach this stanza to (similarly to when ``(package)`` is attached to a ``(rule)`` stanza). When ``-p`` is passed, ``(mdx)`` stanzas with another package will be ignored. Note that this feature is completely separate from ``(packages)``, which specifies some dependencies. - ``(locks )`` specifies that the action of running the tests holds the specified locks. See :doc:`/concepts/locks` for more details. Upgrading from Version 0.1 ~~~~~~~~~~~~~~~~~~~~~~~~~~ - The 0.2 version of the stanza requires at least MDX 1.9.0. If you encounter an error such as, ``ocaml-mdx: unknown command `dune-gen'``, then you should upgrade MDX. - The field ``(packages )`` is deprecated in version 0.2. You can use package items in the generic ``deps`` field instead: ``(deps (package ) ... (package ))`` - Use the new ``libraries`` field to directly link libraries in the test executable and remove the need for ``#require`` directives in your documentation code blocks.