using web::WebOutStream
** Directives allow you to define pluggable bits of functionality for your fandocs. See the bundled
** `IncludeDirective` for an example.
**
** Admonitions [#Admonitions]
** ==========================
** Fandoc [admonitions]`fandoc::Para.admonition` are little undocumented feature whereby if you
** prefix a paragraph with a word ending in a colon ':' that word becomes a css class name for
** the resulting html.
**
** NOTE: This is an admonition
**
** is rendered as
**
** <p class="NOTE">This is an admonition</p>
**
** 'FandocViewer' extends admonitions to give you Directives.
**
** Directives [#directives]
** ========================
** Directives are defined as [index properties]`docLang::Env#index` in the following format:
**
** '"afFandocViewer.directive.{directive}" : "{qname}"'
**
** Where '{directive}' is the lowercase directive name and '{qname}' is the qualified type name of
** the directive subclass.
**
** Directive names in the fandoc are case insensitive. Either of the following will invoke the
** `IncludeDirective`.
**
** INCLUDE: wotever.html
**
** IncLudE: wotever.html
**
** If a directive is not found, then behaviour defaults back to the standard admonition.
**
** Note all directive subclasses need a public no-args ctor as per `sys::Type.make`.
**
** @since 1.0.4
mixin Directive {
abstract Void invoke(WebOutStream out, Uri? fandocUri, Str text)
}