Lifecycle of a SyntaxHighlighterAdapter
AsciidoctorJ will create an own instance for every document that it converts.
It will try to instantiate the class by calling a constructor that has three parameters:
name
-
The name of the syntax highlighter as it was referenced by the
:source-highlighter
attribute. In the previous example this was"myhighlightjs"
. backend
-
The name of the backend used to convert the document. This is for example
"html5"
. Note that SyntaxHighlighters can only be used for HTML based backends. options
-
A map containing options for this syntax highlighter. Currently this contains the current
org.asciidoctor.ast.Document
for the key"document"
.
This means the syntax highlighter class could also have this constructor:
public HighlightJsHighlighter(String name, String backend, Map<String, Object> options) {
assertThat("myhighlightjs").isEqualTo(name);
assertThat("html5").isEqualTo(backend);
Document document = (Document) options.get("document");
assertThat("Syntax Highlighter Test").isEqualTo(document.getDoctitle());
}
A constructor with only the first two, or only the first parameter is also allowed. AsciidoctorJ will call the constructor with the most matching parameters.