Registry for custom reStructuredText extensions. Application code can define
any number of instances mixing in this trait and then pass
them to Parse, Render or Transform operations:
object MyExtensions extends RstExtensionRegistry {
val spanDirectives = Seq(...)
val blockDirectives = Seq(...)
val textRoles = Seq(...)
}
object OtherExtensions extends RstExtensionRegistry {
[...]
}
val transformer = Transformer
.from(ReStructuredText)
.to(HTML)
.using(MyDirectives, OtherDirectives)
.build
In contrast to the original Python implementation, this API has been redesigned to be a more
idiomatic, concise and type-safe Scala DSL. See the documentation for the methods of this trait
for concrete examples on how to implement an extension.
Substitution Definitions - an extension hook for adding new span level elements to
reStructuredText markup that can be used by substitution references (like |subst|).
Use the spanDirectives method of this class to
add directive implementations to the parser that can be used as substitution definitions.
Specification entry:
http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#substitution-definitions
Interpreted Text Roles - an extension hook for adding new dynamic span level elements to
reStructuredText markup. In contrast to substitution definitions the implementation of a text
role uses the text from the occurrences in the markup referring to the role as input.
Use the textRoles method of this class to
add custom text role implementations to the parser that can be referred to by interpreted text.
Specification entry:
http://docutils.sourceforge.net/docs/ref/rst/directives.html#custom-interpreted-text-roles
Internal API usually only called by other extension bundles.
Internal API usually only called by other extension bundles.
In some cases a bundle might be an extension of another bundle and needs the opportunity
to process and modify that bundle without requiring a direct reference to it. An example
is a registry for directives which needs to pass all its registered directives to the
bundle which deals with finally creating all the directive parsers.
The partial function should match only on the types of bundles it intends to process
and is then allowed to return a new, modified instance of that bundle.
Specifies the function to use for determining the document type
of the input based on its path.
Specifies the function to use for determining the document type
of the input based on its path.
Any path for which this function is not defined will be processed by the remaining
defined bundles. The documents for paths for which none of the extensions provides
a DocumentType will be treated as static files to be copied over to the target
directory in transformations by default.
Extends the built-in path translator with additional functionality.
Extends the built-in path translator with additional functionality.
The internal path translator deals with aspects like applying the suffix for the output format
or modifying the path for versioned documents and more.
The PathTranslatorExtensionContext provides access to this internal path translator, to the output
format it is going to be used for and the complete user configuration.
In most cases, extensions can simply be created by using either PathTranslator.preTranslate
or PathTranslator.postTranslate to apply additional translation steps either before or after
applying the internal translator.
Alternatively a completely custom implementation of the PathTranslator trait can be provided,
but this will usually not be necessary.
PathTranslator implementations usually do not deal with the fragment part of the path.
Use the slugBuilder extension point for this purpose.
Provides a version of this bundle that can be used in strict mode or None if the entire bundle
should be removed in strict mode.
Provides a version of this bundle that can be used in strict mode or None if the entire bundle
should be removed in strict mode.
When strict mode does not affect a bundle it can return Some(this).
Any bundle to be used in strict mode should be free from any parser extensions that
adds features to markup syntax beyond their respective specifications.
Indicates whether the bundle is a built-in default provided by the library,
a collection of extensions installed by a markup format or user-defined.
Indicates whether the bundle is a built-in default provided by the library,
a collection of extensions installed by a markup format or user-defined.
This is relevant for determining the precedence of installed bundles when merging
them, as user-supplied functionality always overrides library defaults.
Provides a version of this bundle that can be used in the default run mode where raw content in markup
documents (such as embedded HTML) is disabled.
Provides a version of this bundle that can be used in the default run mode where raw content in markup
documents (such as embedded HTML) is disabled.
When a bundle does not add parsers for raw content it can return Some(this).
Any bundle to be used in the default run mode should be free from any parser extensions that
allow raw content in markup.
When the user switches the acceptRawContent flag to true then this method will not be invoked
and the initial instance of the bundle is used.
The overrides for renderers defined by this bundle.
The overrides for renderers defined by this bundle.
An override is always specific to a particular output format like HTML or PDF.
A bundle can contain multiple overrides for the same output format which will be merged before use.
Specifies rewrite rules to be applied to the document tree model between the
parse and render operations.
Specifies rewrite rules to be applied to the document tree model between the
parse and render operations.
The specified functions will be invoked for each document, allowing to capture
information from the entire document tree before returning the actual rule,
which is a partial function from Element to Option[Element] that allows
to remove or replace elements from the tree.
Function that receives the text of a headline, the name of a document
or directory or a manually assigned identifier, and builds a slug from it
that becomes part of the final URL or identifier (depending on output format).
Function that receives the text of a headline, the name of a document
or directory or a manually assigned identifier, and builds a slug from it
that becomes part of the final URL or identifier (depending on output format).