package mdx
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=f94e414d38d306e4f23e017f93ac96ca75cbefedd3800414a1cbaab1f6a59eab
sha512=71dcb1ed6188994f4ad2cdd3dbf8006318f6a7ec88683c46c9df5ef73c677542e89e1e7e2ba8ab99ea69be1b43db66f33489490b8a18835e5decceafecf9ca80
CHANGES.md.html
1.9.0
Added
Add a new
dune-gen
subcommand that generates testing code for Dune to build and run with the newmdx
stanza. (#305, @voodoos)
1.8.1
Changed
Dropped OMP dependency and use handwritten compat layers instead (#317, @NathanReb)
1.8.0
Added
Allow to explicitly set the kind of blocks in labels:
ocaml
,cram
,toplevel
orinclude
. (#237, @gpetiot)Include blocks do not require an empty block anymore (#286, @gpetiot)
Support for OCaml 4.12 (#298, @kit-ty-kate)
Changed
Improve error message of cram test exceptions due to empty lines in a block (#270, @pitag-ha)
Fixed
Report
#require
directive errors (#276, @gpetiot)Handle no such file exception: the input file and the values of options
--root
and--prelude
are checked (#292, @gpetiot)Keep locations from parsing instead of recomputing the lines, providing better error messages (#241, @gpetiot)
Use
create_process
instead ofexecvp
to callmdx-test
frommdx
. This fixes running mdx from dune on Windows (#299, @emillon)
1.7.0
Added
HTML comments can carry block labels (#234, @gpetiot) The syntax is:
<!-- $MDX labels -->
, wherelabels
is a list of valid labels separated by a comma. This line has to immediately precede the block it is attached to. The legacy syntax is preserved and will be deprecated in a later release.Add support for toplevel blocks in
.mli
files' doc comments (#206, @jsomers)Add support for OCaml 4.11 (#261, @kit-ty-kate)
Changed
Apply unnamed preludes to all environments (#271, @gpetiot) New behavior:
env_and_file "a:f"
associatesf
to the environment nameda
env_and_file " :f"
associatesf
to the default environmentenv_and_file "f"
associatesf
to all environments.
Errors in non toplevel OCaml blocks are now printed to a seperate
mdx-error
code block following the ocaml block instead of crashing the mdx process. Thosemdx-error
blocks are recognized and checked by mdx and can be intentionally used to show case specific compile errors. (#238, @gpetiot)Improve error reporting for invalid
(* $MDX part-... *)
delimiters (#250, @gpetiot)
Deprecated
The command 'mdx rule' is deprecated and will be removed in 2.0.0 (#251, @gpetiot)
Fixed
Fix the environment selection for preludes and slightly improve quality of type names in evaluations of toplevel phrases in certain cases. (#225, @gpetiot)
Fix toplevel parsing when phrases contain tabs (#240, @gpetiot)
Avoid adding newlines to empty blocks (#253, @gpetiot)
Preserve the indentation of included files (#259, @gpetiot)
Preserve the header in shell blocks (#249, @craigfe)
Support underscores in environment variables in
set-
andunset-
labels (#257, @shonfeder)Fix mdx on Windows which was looking for the ocaml-mdx-test binary at the wrong place (#263, @hcarty)
Properly report mdx parsing errors instead of crashing with an uncaught exception (#267, @gpetiot)
1.6.0
Added
Add a
--duniverse-mode
toocaml-mdx rule
so that the generated rules work within a duniverseAllow to import arbitrary files (not only .ml/.mli ones) into code blocks using the
file
label. (#203, #207, @voodoos)Allow to set the
--non-deterministic
option through theMDX_RUN_NON_DETERMINISTIC
env variables (#208, @NathanReb)Add support for OCaml 4.10 (#204, @kit-ty-kate)
Infer syntax kind when
--syntax
is not set, and add 'markdown' as an alias to 'normal' (#222, @gpetiot)Add
ocaml-mdx deps
command to be used by dune to compute file and dir dependencies of an mdx file. (#217, @voodoos)Add new delimiters syntax using comments for partial OCaml files include (#212, @voodoos).
Changed
Do not unset
INSIDE_DUNE
when executing shell commands by default (#224, @NathanReb)
Fixed
Fix a bug that could cause
ocaml-mdx test
to crash on someinclude
in toplevel code blocks (#202, @trefis)
Removed
Remove the
direction
option, only synchronize from .ml to .md files (#214, @gpetiot)
1.5.0 (2019-11-29)
Added
Add a
--output
/-o
option to thetest
subcommand to allow specifying a different output file to write the corrected to, or to write it to the standard output (#194, @NathanReb)Migrate to OCaml 4.08 AST to add support for
let*
bindings (#190, @gpetiot)Add
--syntax
option torule
subcommand to allow generating rules for cram tests (#177, @craigfe)Add a
require-package
label to explicitly declare dunepackage
dependencies of a code block (#149, @Julow)Add an
unset-
label to unset env variables in shell blocks (#132, @clecat)
Changed
Format rules generated by
ocaml-mdx rule
usingdune format-dune-file
(#184, @NathanReb)Run promotion of markdown files before
.ml
files in generated dune rules (#140, @clecat)
Fixed
Use module_presence information on Env.summary to prevent fetching absent modules from the toplevel env (#186, @clecat)
Remove trailing whitespaces at the end of toplevel or bash evaluation lines (#166, @clecat)
Improve error reporting of ocaml-mdx test (#172, @Julow)
Rule: Pass the --section option to
test
(#176, @Julow)Remove trailing whitespaces from shell outputs and toplevel evals (#166, @clecat)
Remove inappropriate empty lines in generated dune rules (#163, @Julow)
Fix ignored
skip
label inocaml-mdx pp
(#1561, @CraigFe)Fix synchronization of new parts from markdown to
.ml
(#156, @Julow)Fix ignored
[@@@parts ...]
markers within module definitions (#155, @Julow)Fix a bug in internal OCaml version comparison that lead to crashes in some cases (#145, @gpetiot)
Promote to empty
.ml
file when usingto-ml
direction (#139, @clecat)Apply
--force-output
to.ml
file as well (#137, @clecat)Fix a bug preventing
.corrected
files to be written in some cases (#136, @clecat)Add compatibility with
4.09.0
(#133, @xclerc)
Removed
Remove the
output
subcommand as it was very specific to RealWorldOCaml needs (#195, @NathanReb)Remove the
infer-timestamp
direction (#171 @Julow)
1.4.0 (2019-06-11)
Add
--force-output
option to force generation of diff file (#118 @clecat)Support OCaml 4.08.0 (#121 @xclerc)
README and documentation fixes (#122 #118 @andreypopp @clecat @samoht)
Use latest ocaml-migrate-parsetree interfaces (@avsm)
1.3.0 (2019-03-01)
Updated readme file with the new features: dune rules, named environment and ocaml versions, Some grammar correction too (@gpetiot, #101, aantron, #102)
Better lexer error messages (@avsm, #103)
Added cram syntax parsing (@trefis, #106)
Renamed mdx to ocaml-mdx to avoid conflicts/for more precision (@clecat, #110, #115)
Fix blank spaces causing parsing errors (@gpetiot, #97)
Fix empty lines causing a String.sub (@clecat, #107)
1.2.0 (2018-01-03)
Support end-of-line ellipsis (@dra27, #85)
Support OCaml 4.02.3 (@gpetiot, #86)
Support
version=..
,version<=..
andversion>=..
keywords to run a code-block depending on the currently installed OCaml version (@gpetiot, #87, #90)Upgrade Travis tests to use opam 2.0.2 (@avsm, #89)
Do not depend on
ppx_tools
for toplevel (@avsm, #89)Fix embedding in a larger Dune project with a cppo override (@avsm, #89)
mdx output
: escape HTML entities in code blocks (#91, @samoht)
1.1.0 (2018-11-16)
Add a mechanism to promote files to blocks and blocks to file (@gpetiot, #37)
Support multiple toplevel environments (@gpetiot, #38)
Use ocaml-migrate-parsetree to compile in 4.06.1 & 4.07.0 (@gpetiot, #41)
Add a
mdx rule
command to generate dune rules (@gpetiot, #44)Add a
mdx output
command to generate an HTML document (@samoht, #45)Support empty code blocks (@samoht, #46)
Fix detection of OCaml code/toplevel (@samoht, #47)
Better handling of multi-line shell scripts (@samoht, #48)
Fix regression in toplevel blocks when creating newtype (@samoht, #49)
Fix evaluation of non-determinitic test (@samoht, #50)
Improve mdx rules to take into account more precise dependencies (@samoht, #51)
Fix promotion of blocks to complete ML files (@samoht, #52)
mdx does not use the
cppo
library, just the binary (@samoht, #53)fix ellipsis in code blocks (@samoht, #57)
Fix relative paths for promoted blocks to files (@samoht, #58)
Fix location of errors for multi-line commands (@samoht, #60)
improve the parser for shell blocks (@samoht, #61)
Allow to load preludes in specific environments (@samoht, #63)
Fix evaluation of code after directives in prelude (@samoht, #64)
Improve promotion to ml files (@samoht, #66)
mdx rule: generates (source_tree) dependencies for directory metadata (@samoht, #67)
Fix handling of 'module type' in multiple toplevel environment (@samoht, #68)
Add an eval=false label to skip the evaluation of a code block (@samoht, #69)
Fix parsing of shell blocks with multiple exit codes (@samoht, #71)
Support source-tree as extra block metadata (@samoht, #72)
Better formatting of non-compiling promoted contents (@samoht, #73)
Be sure to remove the .corrected files if the promotion to ML file works (mdx74)
Add missing dependency in test/dune (@samoht, #75)
Support
dir=..
labels in ml code blocks (@samoht, #76)Allow to promote to mli files too (@samoht, #77)
Support multi-line strings (@samoht, #78)
fail (and exit 1) if prelude and ml blocks cannot be evaluated properly (@samoht, #80, @samoht, #83)
Allow to pass --root to
mdx rule
(@samoht, #81)mdx rule: do not add (package mdx) in the dependencies (@samoht, #82)
1.0.0 (2018-09-23)
Initial release