Interface NodeFormatterContext

All Superinterfaces:
ExplicitAttributeIdProvider, LinkResolverBasicContext, LinkResolverContext, NodeContext<Node,NodeFormatterContext>, TranslationContext
All Known Implementing Classes:
Formatter.MainNodeFormatter, Formatter.MainNodeFormatter.SubNodeFormatter, NodeFormatterSubContext

The context for node rendering, including configuration and functionality for the node renderer to use.
  • Method Details

    • getMarkdown

      @NotNull @NotNull MarkdownWriter getMarkdown()
      Returns:
      the HTML writer to use
    • render

      void render(@NotNull @NotNull Node node)
      Render the specified node and its children using the configured renderers. This should be used to render child nodes; be careful not to pass the node that is being rendered, that would result in an endless loop.
      Specified by:
      render in interface LinkResolverContext
      Parameters:
      node - the node to render
    • renderChildren

      void renderChildren(@NotNull @NotNull Node parent)
      Render the children of the node, used by custom renderers
      Specified by:
      renderChildren in interface LinkResolverContext
      Parameters:
      parent - node the children of which are to be rendered
    • getFormattingPhase

      @NotNull @NotNull FormattingPhase getFormattingPhase()
      Returns:
      current rendering phase
    • delegateRender

      void delegateRender()
      pass node rendering to previously registered handler
    • getOptions

      @NotNull @NotNull DataHolder getOptions()
      Get the current rendering context DataHolder. These are the options passed or set on the Formatter.builder() or passed to Formatter.builder(DataHolder). To get the document options you should use getDocument() as the data holder.
      Specified by:
      getOptions in interface LinkResolverBasicContext
      Specified by:
      getOptions in interface LinkResolverContext
      Specified by:
      getOptions in interface NodeContext<Node,NodeFormatterContext>
      Returns:
      the current renderer options DataHolder
    • getFormatterOptions

      @NotNull @NotNull FormatterOptions getFormatterOptions()
      Returns:
      the FormatterOptions for the context.
    • getDocument

      @NotNull @NotNull Document getDocument()
      Specified by:
      getDocument in interface LinkResolverBasicContext
      Specified by:
      getDocument in interface LinkResolverContext
      Returns:
      the Document node of the current context
    • getBlockQuoteLikePrefixPredicate

      @NotNull @NotNull CharPredicate getBlockQuoteLikePrefixPredicate()
      Returns:
      predicate for prefix chars which compact like block quote prefix char
    • getBlockQuoteLikePrefixChars

      @NotNull @NotNull BasedSequence getBlockQuoteLikePrefixChars()
      Returns:
      char sequence of all prefix chars which compact like block quote prefix char
    • getTrackedOffsets

      @NotNull @NotNull TrackedOffsetList getTrackedOffsets()
      Returns:
      tracked offset list
    • isRestoreTrackedSpaces

      boolean isRestoreTrackedSpaces()
    • getTrackedSequence

      @NotNull @NotNull BasedSequence getTrackedSequence()
      NOTE: parser can only use a contiguous sequence, not segmented. Therefore, the AST offsets and base sequence from AST nodes has always an index into sequence equal to the offset. This sequence is set to not BasedSequence.NULL when the format sequence used for tracked offsets is not contiguous and TrackedOffset.offset is an offset from this sequence and need to be converted to index into this sequence to be used as an offset into AST sequence for offset conversion
      Returns:
      original sequence used for tracked offsets.
    • nodesOfType

      @NotNull @NotNull Iterable<? extends Node> nodesOfType(@NotNull @NotNull Class<?>[] classes)
      Get iterable of nodes of given types, in order of their appearance in the document tree, depth first traversal. Only node classes returned by NodeFormatter.getNodeClasses() of all loaded extensions will be available to formatters.

      CoreNodeFormatter registers RefNode if Formatter.REFERENCE_SORT is set to ElementPlacementSort.SORT_UNUSED_LAST so that

      Parameters:
      classes - node classes to return
      Returns:
      iterable
    • nodesOfType

      @NotNull @NotNull Iterable<? extends Node> nodesOfType(@NotNull @NotNull Collection<Class<?>> classes)
    • reversedNodesOfType

      @NotNull @NotNull Iterable<? extends Node> reversedNodesOfType(@NotNull @NotNull Class<?>[] classes)
      Get iterable of nodes of given types, in reverse order of their appearance in the document tree, depth first traversal. Only node classes returned by NodeFormatter.getNodeClasses() of all loaded extensions will be available to formatters.

      CoreNodeFormatter registers RefNode if Formatter.REFERENCE_SORT is set to ElementPlacementSort.SORT_UNUSED_LAST so that

      Parameters:
      classes - node classes to return
      Returns:
      iterable
    • reversedNodesOfType

      @NotNull @NotNull Iterable<? extends Node> reversedNodesOfType(@NotNull @NotNull Collection<Class<?>> classes)