Interface AttributeProvider

All Known Implementing Classes:
AttributesAttributeProvider, EmbeddedAttributeProvider, ZzzzzzAttributeProvider

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

    Modifier and Type
    Method
    Description
    void
    setAttributes(@NotNull Node node, @NotNull AttributablePart part, @NotNull MutableAttributes attributes)
    Set the attributes for the node by modifying the provided map.
  • Method Details

    • setAttributes

      void setAttributes(@NotNull @NotNull Node node, @NotNull @NotNull AttributablePart part, @NotNull @NotNull 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