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();
 
  • Method Details

    • builder

      public static NamedEntityExtension.Builder builder()
      The method builder provides means to create a static builder.
      Returns:
      the builder
    • extend

      public void extend(org.commonmark.renderer.html.HtmlRenderer.Builder rendererBuilder)
      Specified by:
      extend in interface org.commonmark.renderer.html.HtmlRenderer.HtmlRendererExtension
    • extend

      public void extend(org.commonmark.parser.Parser.Builder parserBuilder)
      Specified by:
      extend in interface org.commonmark.parser.Parser.ParserExtension