All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.greenpepper.shaded.com.vladsch.flexmark.html.AttributeProvider Maven / Gradle / Ivy

The newest version!
package com.greenpepper.shaded.com.vladsch.flexmark.html;

import com.greenpepper.shaded.com.vladsch.flexmark.ast.Node;
import com.greenpepper.shaded.com.vladsch.flexmark.html.renderer.AttributablePart;
import com.greenpepper.shaded.com.vladsch.flexmark.util.html.Attributes;

/**
 * Extension point for adding/changing attributes on the primary HTML tag for a node.
 */
public interface AttributeProvider {

    /**
     * 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. * * @param node the node to set attributes for * @param 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 * @param attributes the attributes, with any default attributes already set in the map */ void setAttributes(Node node, AttributablePart part, Attributes attributes); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy