Class Escaping

java.lang.Object
com.vladsch.flexmark.util.sequence.Escaping

public class Escaping extends Object
  • Field Details

    • ESCAPABLE_CHARS

      public static final String ESCAPABLE_CHARS
      See Also:
    • ESCAPABLE

      public static final String ESCAPABLE
    • ENTITY

      private static final String ENTITY
      See Also:
    • BACKSLASH_ONLY

      private static final Pattern BACKSLASH_ONLY
    • ESCAPED_CHAR

      private static final Pattern ESCAPED_CHAR
    • BACKSLASH_OR_AMP

      private static final Pattern BACKSLASH_OR_AMP
    • AMP_ONLY

      private static final Pattern AMP_ONLY
    • ENTITY_OR_ESCAPED_CHAR

      private static final Pattern ENTITY_OR_ESCAPED_CHAR
    • ENTITY_ONLY

      private static final Pattern ENTITY_ONLY
    • XML_SPECIAL

      private static final String XML_SPECIAL
      See Also:
    • XML_SPECIAL_RE

      private static final Pattern XML_SPECIAL_RE
    • XML_SPECIAL_OR_ENTITY

      private static final Pattern XML_SPECIAL_OR_ENTITY
    • ESCAPE_IN_URI

      private static final Pattern ESCAPE_IN_URI
    • ESCAPE_URI_DECODE

      private static final Pattern ESCAPE_URI_DECODE
    • HEX_DIGITS

      static final char[] HEX_DIGITS
    • WHITESPACE

      private static final Pattern WHITESPACE
    • COLLAPSE_WHITESPACE

      private static final Pattern COLLAPSE_WHITESPACE
    • UNSAFE_CHAR_REPLACER

      private static final Escaping.Replacer UNSAFE_CHAR_REPLACER
    • COLLAPSE_WHITESPACE_REPLACER

      private static final Escaping.Replacer COLLAPSE_WHITESPACE_REPLACER
    • UNESCAPE_REPLACER

      private static final Escaping.Replacer UNESCAPE_REPLACER
    • REMOVE_REPLACER

      private static final Escaping.Replacer REMOVE_REPLACER
    • ENTITY_REPLACER

      private static final Escaping.Replacer ENTITY_REPLACER
    • URL_ENCODE_REPLACER

      private static final Escaping.Replacer URL_ENCODE_REPLACER
    • URL_DECODE_REPLACER

      private static final Escaping.Replacer URL_DECODE_REPLACER
    • AMP_BACKSLASH_SET

      @NotNull public static final @NotNull CharPredicate AMP_BACKSLASH_SET
    • random

      private static Random random
  • Constructor Details

    • Escaping

      public Escaping()
  • Method Details

    • escapeHtml

      public static String escapeHtml(@NotNull @NotNull CharSequence s, boolean preserveEntities)
    • escapeHtml

      @NotNull public static @NotNull BasedSequence escapeHtml(@NotNull @NotNull BasedSequence s, boolean preserveEntities, @NotNull @NotNull ReplacedTextMapper textMapper)
    • unescapeString

      @NotNull public static @NotNull String unescapeString(@NotNull @NotNull CharSequence s)
      Replace entities and backslash escapes with literal characters.
      Parameters:
      s - string to un-escape
      Returns:
      un-escaped string
    • unescapeString

      @NotNull public static @NotNull String unescapeString(@NotNull @NotNull CharSequence s, boolean unescapeEntities)
      Replace entities and backslash escapes with literal characters.
      Parameters:
      s - string to un-escape
      unescapeEntities - true if HTML entities are to be unescaped
      Returns:
      un-escaped string
    • unescape

      @NotNull public static @NotNull BasedSequence unescape(@NotNull @NotNull BasedSequence s, @NotNull @NotNull ReplacedTextMapper textMapper)
      Replace entities and backslash escapes with literal characters.
      Parameters:
      s - based sequence to un-escape
      textMapper - replaced text mapper to update for the changed text
      Returns:
      un-escaped sequence
    • removeAll

      @NotNull public static @NotNull BasedSequence removeAll(@NotNull @NotNull BasedSequence s, @NotNull @NotNull CharSequence remove, @NotNull @NotNull ReplacedTextMapper textMapper)
      Replace entities and backslash escapes with literal characters.
      Parameters:
      s - sequence being changed
      remove - string to remove
      textMapper - replaced text mapper to update for the changed text
      Returns:
      un-escaped sequence
    • unescapeHtml

      @NotNull public static @NotNull String unescapeHtml(@NotNull @NotNull CharSequence s)
      Replace entities and backslash escapes with literal characters.
      Parameters:
      s - string to un-escape
      Returns:
      un-escaped string
    • unescapeHtml

      @NotNull public static @NotNull BasedSequence unescapeHtml(@NotNull @NotNull BasedSequence s, @NotNull @NotNull ReplacedTextMapper textMapper)
      Replace entities and backslash escapes with literal characters.
      Parameters:
      s - based sequence to un-escape
      textMapper - replaced text mapper to update for the changed text
      Returns:
      un-escaped sequence
    • unescapeHtml

      @NotNull public static @NotNull BasedSequence unescapeHtml(@NotNull @NotNull BasedSequence s, @NotNull @NotNull List<Range> ranges, @NotNull @NotNull ReplacedTextMapper textMapper)
      Replace entities and backslash escapes with literal characters.
      Parameters:
      s - based sequence to un-escape
      textMapper - replaced text mapper to update for the changed text
      Returns:
      un-escaped sequence
    • normalizeEndWithEOL

      @NotNull public static @NotNull String normalizeEndWithEOL(@NotNull @NotNull CharSequence s)
      Normalize eol: embedded \r and \r\n are converted to \n

      Append EOL sequence if sequence does not already end in EOL

      Parameters:
      s - sequence to convert
      Returns:
      converted sequence
    • normalizeEOL

      @NotNull public static @NotNull String normalizeEOL(@NotNull @NotNull CharSequence s)
      Normalize eol: embedded \r and \r\n are converted to \n
      Parameters:
      s - sequence to convert
      Returns:
      converted sequence
    • normalizeEOL

      @NotNull public static @NotNull String normalizeEOL(@NotNull @NotNull CharSequence s, boolean endWithEOL)
      Normalize eol: embedded \r and \r\n are converted to \n
      Parameters:
      s - sequence to convert
      endWithEOL - true if an EOL is to be appended to the end of the sequence if not already ending with one.
      Returns:
      converted sequence
    • normalizeEndWithEOL

      @NotNull public static @NotNull BasedSequence normalizeEndWithEOL(@NotNull @NotNull BasedSequence s, @NotNull @NotNull ReplacedTextMapper textMapper)
      Normalize eol: embedded \r and \r\n are converted to \n

      Append EOL sequence if sequence does not already end in EOL

      Parameters:
      s - sequence to convert
      textMapper - text mapper to update for the replaced text
      Returns:
      converted sequence
    • normalizeEOL

      @NotNull public static @NotNull BasedSequence normalizeEOL(@NotNull @NotNull BasedSequence s, @NotNull @NotNull ReplacedTextMapper textMapper)
      Normalize eol: embedded \r and \r\n are converted to \n
      Parameters:
      s - sequence to convert
      textMapper - text mapper to update for the replaced text
      Returns:
      converted sequence
    • normalizeEOL

      @NotNull public static @NotNull BasedSequence normalizeEOL(@NotNull @NotNull BasedSequence s, @NotNull @NotNull ReplacedTextMapper textMapper, boolean endWithEOL)
      Normalize eol: embedded \r and \r\n are converted to \n

      Append EOL sequence if sequence does not already end in EOL

      Parameters:
      s - sequence to convert
      textMapper - text mapper to update for the replaced text
      endWithEOL - whether an EOL is to be appended to the end of the sequence if it does not already end with one.
      Returns:
      converted sequence
    • percentEncodeUrl

      @NotNull public static @NotNull String percentEncodeUrl(@NotNull @NotNull CharSequence s)
      Parameters:
      s - string to encode
      Returns:
      encoded string
    • percentEncodeUrl

      @NotNull public static @NotNull BasedSequence percentEncodeUrl(@NotNull @NotNull BasedSequence s, @NotNull @NotNull ReplacedTextMapper textMapper)
      Parameters:
      s - string to encode
      textMapper - text mapper to update for the replaced text
      Returns:
      encoded string
    • percentDecodeUrl

      @NotNull public static @NotNull String percentDecodeUrl(@NotNull @NotNull CharSequence s)
      Parameters:
      s - string to encode
      Returns:
      encoded string
    • percentDecodeUrl

      @NotNull public static @NotNull BasedSequence percentDecodeUrl(@NotNull @NotNull BasedSequence s, @NotNull @NotNull ReplacedTextMapper textMapper)
      Parameters:
      s - string to encode
      textMapper - text mapper to update for the replaced text
      Returns:
      encoded string
    • normalizeReference

      @NotNull public static @NotNull String normalizeReference(@NotNull @NotNull CharSequence s, boolean changeCase)
      Normalize the link reference id
      Parameters:
      s - sequence containing the link reference id
      changeCase - if true then reference will be converted to lowercase
      Returns:
      normalized link reference id
    • encode

      @Nullable private static @Nullable String encode(char c)
    • obfuscate

      @NotNull public static @NotNull String obfuscate(@NotNull @NotNull String email, boolean randomize)
      e-mail obfuscation from pegdown
      Parameters:
      email - e-mail url
      randomize - true to randomize, false for testing
      Returns:
      obfuscated e-mail url
    • normalizeReferenceChars

      @NotNull public static @NotNull String normalizeReferenceChars(@NotNull @NotNull CharSequence s, boolean changeCase)
      Get a normalized the link reference id from reference characters

      Will remove leading ![ or [ and trailing ], collapse multiple whitespaces to a space and optionally convert the id to lowercase.

      Parameters:
      s - sequence containing the link reference id
      changeCase - if true then reference will be converted to lowercase
      Returns:
      normalized link reference id
    • collapseWhitespace

      @NotNull public static @NotNull String collapseWhitespace(@NotNull @NotNull CharSequence s, boolean trim)
      Collapse regions of multiple white spaces to a single space
      Parameters:
      s - sequence to process
      trim - true if the sequence should also be trimmed
      Returns:
      processed sequence
    • collapseWhitespace

      @NotNull public static @NotNull BasedSequence collapseWhitespace(@NotNull @NotNull BasedSequence s, @NotNull @NotNull ReplacedTextMapper textMapper)
    • replaceAll

      @NotNull private static @NotNull String replaceAll(@NotNull @NotNull Pattern p, @NotNull @NotNull CharSequence s, @NotNull @NotNull Escaping.Replacer replacer)
    • replaceAll

      @NotNull private static @NotNull BasedSequence replaceAll(@NotNull @NotNull Pattern p, @NotNull @NotNull BasedSequence s, @NotNull @NotNull Escaping.Replacer replacer, @NotNull @NotNull ReplacedTextMapper textMapper)
    • replaceAll

      @NotNull private static @NotNull BasedSequence replaceAll(@NotNull @NotNull Pattern p, @NotNull @NotNull BasedSequence s, int startOffset, int endOffset, @NotNull @NotNull Escaping.Replacer replacer, @NotNull @NotNull ReplacedTextMapper textMapper)
    • replaceAll

      @NotNull private static @NotNull BasedSequence replaceAll(@NotNull @NotNull Pattern p, @NotNull @NotNull BasedSequence s, @NotNull @NotNull List<Range> ranges, @NotNull @NotNull Escaping.Replacer replacer, @NotNull @NotNull ReplacedTextMapper textMapper)