Package org.ctan.markup.gfm.ext
Class NamedEntityExtension
java.lang.Object
org.ctan.markup.gfm.ext.NamedEntityExtension
- All Implemented Interfaces:
org.commonmark.Extension,org.commonmark.parser.Parser.ParserExtension,org.commonmark.renderer.html.HtmlRenderer.HtmlRendererExtension
public final class NamedEntityExtension
extends Object
implements org.commonmark.parser.Parser.ParserExtension, org.commonmark.renderer.html.HtmlRenderer.HtmlRendererExtension
CommonMark extension that translates named HTML entities (
&Name;)
into configurable HTML snippets, and optionally replaces the same names when
they appear as plain text (outside code spans and code blocks).
The extension intercepts entity-like tokens at parse time (via an
InlineContentParserFactory) so they become
proper AST nodes (NamedEntityNode) rather than raw text. At render
time a custom NodeRenderer emits the mapped
HTML, or falls back to the original &Name; literal for unknown names.
When replaceLogoText(true) is set a
LogoTextPostProcessor is also registered: after parsing it walks the
AST and replaces plain-text occurrences of logo names (e.g. bare
LaTeX in a sentence) with NamedEntityNodes, so they receive
the same styled HTML. Text inside code spans and code blocks is never
touched.
Usage example:
var ext = NamedEntityExtension.builder()
.entity("TeX",
"<span class=\"t-logo\">T<span class=\"e\">e</span>X</span>")
.entity("LaTeX",
"<span class=\"t-logo\">L<sup>A</sup>T<span class=\"e\">e</span>X</span>")
.replaceLogoText(true)
.build();
var extensions = List.of(ext, TablesExtension.create(), ...);
var parser = Parser.builder().extensions(extensions).build();
var renderer = HtmlRenderer.builder().extensions(extensions).build();
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classThe classBuildercontains the builder. -
Method Summary
Modifier and TypeMethodDescriptionstatic NamedEntityExtension.Builderbuilder()The methodbuilderprovides means to create a static builder.voidextend(org.commonmark.parser.Parser.Builder parserBuilder) voidextend(org.commonmark.renderer.html.HtmlRenderer.Builder rendererBuilder)
-
Method Details
-
builder
The methodbuilderprovides means to create a static builder.- Returns:
- the builder
-
extend
public void extend(org.commonmark.renderer.html.HtmlRenderer.Builder rendererBuilder) - Specified by:
extendin interfaceorg.commonmark.renderer.html.HtmlRenderer.HtmlRendererExtension
-
extend
public void extend(org.commonmark.parser.Parser.Builder parserBuilder) - Specified by:
extendin interfaceorg.commonmark.parser.Parser.ParserExtension
-