typelevel / Laika

Site and E-book Generator and Customizable Text Markup Transformer for sbt, Scala and Scala.js
https://typelevel.org/Laika/
Apache License 2.0
410 stars 44 forks source link

shrink public API surface in markup parsers #475

Closed jenshalm closed 1 year ago

jenshalm commented 1 year ago

This is the final PR for #452.

It covers the packages laika.markdown (Markdown parser) and laika.rst (reStructuredText parser) and all their sub-packages.

Both parsers are completely removed from public API, as it is unlikely that user code will need to reference the internals directly. Only two aspects are worth mentioning explicitly:

The GitHubFlavor extension which needs to be enabled explicitly by user code remains public for this purpose. It will move to a different package in a later milestone (e.g. laika.bundle which could host all built-in extensions).

And secondly, removing the reStructuredText parser from public API means that this also includes the APIs for builing "rst-native" directives, which have a different syntax than Laika's own directives. These APIs have never been documented in the manual and it is generally recommended that developers use the more versatile Laika syntax which can be used for any markup format. The implementation must be kept simply to support the existing directives as defined in the rst spec.