Class HtmlRenderer.MainNodeRenderer

    • Method Detail

      • resolveLink

        @NotNull
        public @NotNull ResolvedLink resolveLink​(@NotNull
                                                 @NotNull LinkType linkType,
                                                 @NotNull
                                                 @NotNull java.lang.CharSequence url,
                                                 Attributes attributes,
                                                 java.lang.Boolean urlEncode)
        Description copied from interface: LinkResolverContext
        Resolve link for rendering. Link Resolvers are going to be called until one returns ResolvedLink with getStatus() != LinkStatus.Unknown

        A resolver can replace the url but not change the status letting downstream resolvers handle the rest. This is useful when a resolver does partial processing like macro expansion but does not know how to handle the rest.

        Core processing will simply pass the link as is. It is up to extension LinkResolvers and AttributeProviders to make sense of the link and applicable attributes based on status.

        Specified by:
        resolveLink in interface LinkResolverContext
        Parameters:
        linkType - type of link being rendered. Core defined links are Link, Image. Extensions can define their own
        url - link url text
        attributes - link attributes
        urlEncode - whether the link should be url encoded, if null then the value of HtmlRenderer.PERCENT_ENCODE_URLS will be used to determine whether the resolved URL is to be encoded.
        Returns:
        resolved link url for this link and its resolved status
      • getNodeId

        public java.lang.String getNodeId​(@NotNull
                                          @NotNull Node node)
        Description copied from interface: NodeRendererContext
        Get the id attribute for the given node.
        Specified by:
        getNodeId in interface NodeRendererContext
        Parameters:
        node - node for which to get an id, depends on the HtmlIdGenerator assigned for the context. Default generator only creates ids for Heading nodes or custom nodes that implement AnchorRefTarget interface.
        Returns:
        id string or null
      • encodeUrl

        @NotNull
        public @NotNull java.lang.String encodeUrl​(@NotNull
                                                   @NotNull java.lang.CharSequence url)
        Specified by:
        encodeUrl in interface LinkResolverContext
        Parameters:
        url - to be encoded
        Returns:
        an encoded URL (depending on the configuration)
      • extendRenderingNodeAttributes

        @NotNull
        public @NotNull MutableAttributes extendRenderingNodeAttributes​(@NotNull
                                                                        @NotNull AttributablePart part,
                                                                        Attributes attributes)
        Description copied from interface: NodeRendererContext
        Extend the attributes by extensions for the node being currently rendered.
        Specified by:
        extendRenderingNodeAttributes in interface NodeRendererContext
        Parameters:
        part - the tag of the node being rendered, some nodes render multiple tags with attributes
        attributes - the attributes that were calculated by the renderer or null, these may be modified. To preserve originals pass a copy.
        Returns:
        the extended attributes with added/updated/removed entries
      • extendRenderingNodeAttributes

        @NotNull
        public @NotNull MutableAttributes extendRenderingNodeAttributes​(@NotNull
                                                                        @NotNull Node node,
                                                                        @NotNull
                                                                        @NotNull AttributablePart part,
                                                                        Attributes attributes)
        Description copied from interface: NodeRendererContext
        Extend the attributes by extensions for the node being currently rendered.
        Specified by:
        extendRenderingNodeAttributes in interface NodeRendererContext
        Parameters:
        node - node for which to get attributes
        part - the tag of the node being rendered, some nodes render multiple tags with attributes
        attributes - the attributes that were calculated by the renderer or null, these may be modified. To preserve originals pass a copy.
        Returns:
        the extended attributes with added/updated/removed entries
      • render

        public void render​(@NotNull
                           @NotNull Node node)
        Description copied from interface: LinkResolverContext
        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
      • getSubContext

        @NotNull
        public @NotNull NodeRendererContext getSubContext​(boolean inheritIndent)
        Description copied from interface: NodeRendererContext
        Creates a child rendering context that can be used to collect rendered html text. The child context inherits everything but the HtmlRenderer, renderedNode, renderingHandler and doNotRenderLinksNesting from the parent.
        Specified by:
        getSubContext in interface NodeRendererContext
        Parameters:
        inheritIndent - whether the html writer of the sub-context should inherit the current context's indentation level or start with 0 indentation
        Returns:
        a new rendering context with a given appendable for its output
      • getDelegatedSubContext

        @NotNull
        public @NotNull NodeRendererContext getDelegatedSubContext​(boolean inheritIndent)
        Description copied from interface: NodeRendererContext
        Creates a child rendering context that can be used to collect rendered html text of the previously registered node renderer. The child context inherits everything but the HtmlRenderer and doNotRenderLinksNesting from the parent.
        Specified by:
        getDelegatedSubContext in interface NodeRendererContext
        Parameters:
        inheritIndent - whether the html writer of the sub-context should inherit the current context's indentation level or start with 0 indentation
        Returns:
        a new rendering context with a given appendable for its output
      • renderChildren

        public void renderChildren​(@NotNull
                                   @NotNull Node parent)
        Description copied from interface: LinkResolverContext
        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