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

com.vladsch.flexmark.parser.LinkRefProcessorFactory Maven / Gradle / Ivy

package com.vladsch.flexmark.parser;

import com.vladsch.flexmark.util.ast.Document;
import com.vladsch.flexmark.util.data.DataHolder;
import org.jetbrains.annotations.NotNull;

import java.util.function.Function;

/**
 * Processing of elements which are based on a link ref: [] or ![]
 * This includes footnote references [^...] and wiki links [[...]]
 */
public interface LinkRefProcessorFactory extends Function {
    /**
     * Whether the image ref is desired, if not then ! will be stripped off the prefix and treated as plain text
     *
     * @param options options
     * @return true if ! is part of the desired element, false otherwise
     */
    boolean getWantExclamationPrefix(@NotNull DataHolder options);

    /**
     * Whether the element consists of nested [] inside the link ref. For example Wiki link [[]] processor would return 1
     * Only immediately nested [] are considered. [[  ]] is nesting 1, [ [ ]] is not considered
     * 

* When {@code >0} then preview of next characters is used and if they will match then inner reference will not be created to * allow outer one to match the desired element * * @param options options * @return nesting level for references, {@code >0} for nesting */ int getBracketNestingLevel(@NotNull DataHolder options); /** * Create a link ref processor for the document * * @param document on which the processor will work * @return link ref processor */ @Override @NotNull LinkRefProcessor apply(@NotNull Document document); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy