|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## 0.19.0 - 2023-03-01 |
| 4 | + |
| 5 | +This release brings a number of exciting new features, improvements, and upgrades 🎉 |
| 6 | + |
| 7 | +Full Changelog: [v0.18.1...v0.19.0](https://github.com/executablebooks/MyST-Parser/compare/v0.18.1...v0.19.0) |
| 8 | + |
| 9 | +### 📚 Rewritten documentation |
| 10 | + |
| 11 | +The documentation has been almost completely rewritten, |
| 12 | +with a clearer structure, many more examples, rich hover tips, and a new live preview page ⚡️ (powered by [pyscript](https://pyscript.readthedocs.io/), <gh-pr:717>). |
| 13 | + |
| 14 | +The code base API is also now fully documented by [sphinx-autodoc2](https://sphinx-autodoc2.readthedocs.io/), which even allows for MyST docstrings! (<gh-pr:704>). |
| 15 | + |
| 16 | +### ⬆️ Add Sphinx 6 support, drop Sphinx 4 |
| 17 | + |
| 18 | +The code base has been updated to support sphinx v6, and is no longer tested against sphinx v4 (<gh-pr:664>) |
| 19 | + |
| 20 | +### 📄 Extended docutils (single-page) support |
| 21 | + |
| 22 | +The `docutils` parser now supports many more features, and improvements to support live previews: |
| 23 | + |
| 24 | +- `myst_suppress_warnings` option added, mirroring Sphinx, to suppress MyST warnings (<gh-pr:655>) |
| 25 | +- `myst_meta_html` and `myst_substitutions` options are now supported (<gh-pr:672>) |
| 26 | +- `myst_heading_anchors` option is now supported (<gh-pr:678>) |
| 27 | +- Math block labels syntax is now supported (<gh-pr:668>) |
| 28 | +- Missing directive/role errors errors are now suppressable warnings (<gh-pr:687>) |
| 29 | +- Non-fatal directive parsing errors are now suppressable warnings (<gh-pr:682>) |
| 30 | +- Most of the extended markdown syntax below is also supported |
| 31 | + |
| 32 | +### 🔗 Extended Markdown links |
| 33 | + |
| 34 | +See the [Extended Markdown links](docs/syntax/cross-referencing.md) section for the full guide. |
| 35 | + |
| 36 | +You can now use standard Markdown link syntax to reference many different types of targets, in a more consistent way. |
| 37 | + |
| 38 | +- `[text](relative/path/myfile.md)` work as previously, to link to files, |
| 39 | + but they can also be relative to source directory: `[text](/path/from/srcdir/myfile.md)`. |
| 40 | + You can also use `<project:file.md>` |
| 41 | +- `<path:myfile.txt>` will link specifically to a downloadable file |
| 42 | +- `[text](#target)` or `<project:#target>` will link (in order of priority) to any local target, local heading anchor, target in the same project, or intersphinx (inventory) target |
| 43 | +- `[text](inv:name:domain:type#target)` will link specifically to a Sphinx inventory target, or to any inventory `<inv:#target>`, and can even use `*` wildcards like `<inv:*:*:*#*.target>` |
| 44 | + - This can even be used in docutils, with the new `myst_inventories` config option |
| 45 | + - The `myst-inv` CLI makes it easy to find the correct inventory target |
| 46 | + |
| 47 | +:::{tip} |
| 48 | +It is advised (although not immediately necessary) to prefix all internal references with `#`. |
| 49 | +For example, `[...](my-reference)`, should be changed to `[...](#my-reference)`. |
| 50 | +::: |
| 51 | + |
| 52 | +### `{}` Attributes syntax |
| 53 | + |
| 54 | +The [`attrs_inline` and `attrs_block`](docs/syntax/optional.md#attributes) extensions allow for common Markdown syntaxes to be extended with greater control over the output. |
| 55 | + |
| 56 | +For example, you can now add classes, ids, and other attributes to inline code, images, and links, as well as to code blocks and directives. |
| 57 | + |
| 58 | +- Inline code: `` `a = 1`{#id .class l=python} `` |
| 59 | +- Images: `{#id .class width=100px}` |
| 60 | +- Text spans: `[some text]{#id .class}` |
| 61 | + |
| 62 | +A paragraph block can have attributes too: |
| 63 | + |
| 64 | +```markdown |
| 65 | +{#id .class} |
| 66 | +This is a paragraph with an id and class |
| 67 | +``` |
| 68 | + |
| 69 | +A code fence can be given line numbers and line emphasis: |
| 70 | + |
| 71 | +````markdown |
| 72 | +{#id .class lineno-start=1 emphasize-lines="2,3"} |
| 73 | +```python |
| 74 | +a = 1 |
| 75 | +b = 2 |
| 76 | +c = 3 |
| 77 | +``` |
| 78 | +```` |
| 79 | + |
| 80 | +A definition list can be turned into a glossary, with referenceable terms: |
| 81 | + |
| 82 | +```markdown |
| 83 | +{.glossary} |
| 84 | +term name |
| 85 | +: Definition of the term |
| 86 | +``` |
| 87 | + |
| 88 | +Quote blocks can be given an attribution: |
| 89 | + |
| 90 | +```markdown |
| 91 | +{attribution="Chris Sewell"} |
| 92 | +> My quote |
| 93 | +``` |
| 94 | + |
| 95 | +### 👌 Miscellaneous improvements |
| 96 | + |
| 97 | +- Nested headings (e.g. inside directives) are now allowed in MyST and are correctly rendered in HTML (<gh-pr:711>) |
| 98 | +- The `colon_fence` extension now renders internal content as MyST, rather than as a code block (<gh-pr:713>) |
| 99 | +- The `include` directive in MyST documents now supports a `:heading-offset:` option, to offset the heading levels in the included document |
| 100 | +- The `myst_heading_slug_func` option now supports setting a `str` which points to a fully qualified function name, e.g. `"module.path.func"` (<gh-pr:696>) |
| 101 | +- The `myst_enable_checkboxes` option allows for task list checkboxes to be enabled/disabled (<gh-pr:686>) |
| 102 | + |
| 103 | +### Additional contributions |
| 104 | + |
| 105 | +- 🐛 FIX: Remove unnecessary assert in <gh-pr:659>, thanks to <gh-user:n-peugnet> |
| 106 | +- 🔧 ci(deps): setup dependabot (<gh-pr:669>), thanks to <gh-user:mmorel-35> |
| 107 | +- 🔧: Depend on typing_extensions only on `Python<3.8` in <gh-pr:642>, thanks to <gh-user:hukkin> |
| 108 | + |
3 | 109 | ## 0.18.1 - 2022-27-09 |
4 | 110 |
|
5 | 111 | Full Changelog: [v0.18.0...v0.18.1](https://github.com/executablebooks/MyST-Parser/compare/v0.18.0...v0.18.1) |
|
0 commit comments