Interface AttributeProvider

  • All Known Implementing Classes:
    EmbeddedAttributeProvider

    public interface AttributeProvider
    Extension point for adding/changing attributes on the primary HTML tag for a node.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void setAttributes​(@NotNull com.vladsch.flexmark.util.ast.Node node, @NotNull AttributablePart part, @NotNull com.vladsch.flexmark.util.html.MutableAttributes attributes)
      Set the attributes for the node by modifying the provided map.
    • Method Detail

      • setAttributes

        void setAttributes​(@NotNull
                           @NotNull com.vladsch.flexmark.util.ast.Node node,
                           @NotNull
                           @NotNull AttributablePart part,
                           @NotNull
                           @NotNull com.vladsch.flexmark.util.html.MutableAttributes attributes)
        Set the attributes for the node by modifying the provided map.

        This allows to change or even removeIndex default attributes. With great power comes great responsibility.

        The attribute key and values will be escaped (preserving character entities), so don't escape them here, otherwise they will be double-escaped.

        Also used to get the id attribute for the node. Specifically for heading nodes. When the part parameter is AttributablePart.ID only need to check and provide an id attribute.

        When part is AttributablePart.LINK then attributes are being requested for a Link or Image link, link status after link resolution will be found under the Attribute.LINK_STATUS. Core defines LinkStatus.UNKNOWN,LinkStatus.VALID,LinkStatus.NOT_FOUND. Extensions can define more.

        AttributablePart.NODE is a generic placeholder when the node did not provide a specific part for attribution.

        Parameters:
        node - the node to set attributes for
        part - attributes for the specific part of the node being generated, Core defines AttributablePart.LINK, AttributablePart.ID and generic AttributablePart.NODE, extensions are free to define more
        attributes - the attributes, with any default attributes already set in the map