Package org.freeplane.core.util

# Class HtmlUtils

java.lang.Object
org.freeplane.core.util.HtmlUtils

public class HtmlUtils extends Object
Utilities for conversion from/to HTML and XML used in Freeplane: In scripts available as "global variable" `htmlUtils`.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`HtmlUtils.IndexPair`

## Method Summary

Modifier and Type
Method
Description
`static String`
`combineTextWithExceptionInfo(String text, Exception ex)`
`static String`
`element(String name, String content)`
`static String`
`element(String name, Map<String,String> attributes, String content)`
`static int`
`endOfText(String html)`
`static String`
`extractRawBody(String text)`
`static Element`
`getCurrentLinkElement(HTMLDocument doc, int pos)`
`static HtmlUtils`
`getInstance()`
`static int`
`getMaximalOriginalPosition(int pI, ArrayList<HtmlUtils.IndexPair> pListOfIndices)`
`static int`
`getMinimalOriginalPosition(int pI, ArrayList<HtmlUtils.IndexPair> pListOfIndices)`
`static String`
`getReplaceResult(Pattern pattern, String text, String replacement)`
Replaces text in node content without replacing tags.
`static String`
`getURLOfExistingLink(HTMLDocument doc, int pos)`
Gets the string URL of an existing link, or null if none.
`static String`
`htmlToPlain(String text)`
equivalent to htmlToPlain(text, strictHTMLOnly=true, removeNewLines=true)
`static String`
`htmlToPlain(String text, boolean strictHTMLOnly)`
equivalent to htmlToPlain(text, strictHTMLOnly, removeNewLines=true)
`static String`
`htmlToPlain(String text, boolean strictHTMLOnly, boolean removeNewLines)`
removes html markup and entities, partly and where appropriate by replacing it by plaintext equivalents like <li> → '*'.
`static boolean`
`isEmpty(String newText)`
`static boolean`
`isHtmlNode(String text)`
`static String`
`join(String... texts)`
Join arbitrary texts to html.
`static String`
`plainToHTML(String text)`
transforms `&, <, >, \n` and whitespace by their HTML counterpart and encloses the whole text in `<html><body><p>...</p></body></html>`.
`static String`
`removeAllTagsFromString(String text)`
`static String`
`removeHtmlTagsFromString(String text)`
Removes all tags (<..>) from a string if it starts with "<html>..." to make it compareable.
`static String`
`toHtml(String xhtmlText)`
`static String`
`toHTMLEscapedText(String s)`
`static String`
`toXhtml(String htmlText)`
`static String`
`toXMLEscapedText(String text)`
`static String`
`toXMLEscapedTextExpandingWhitespace(String text)`
`static String`
`toXMLUnescapedText(String text)`
`static String`
`unescapeHTMLUnicodeEntity(String text)`
`static String`
`unicodeToHTMLUnicodeEntity(String text)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### getInstance

public static HtmlUtils getInstance()

### htmlToPlain

public static String htmlToPlain(String text)
equivalent to htmlToPlain(text, strictHTMLOnly=true, removeNewLines=true)

See Also:
  - `htmlToPlain(String, boolean, boolean)`

### htmlToPlain

public static String htmlToPlain(String text, boolean strictHTMLOnly)
equivalent to htmlToPlain(text, strictHTMLOnly, removeNewLines=true)

See Also:
  - `htmlToPlain(String, boolean, boolean)`

### htmlToPlain

public static String htmlToPlain(String text, boolean strictHTMLOnly, boolean removeNewLines)
removes html markup and entities, partly and where appropriate by replacing it by plaintext equivalents like <li> → '*'.

Parameters:
  `strictHTMLOnly` - if true does nothing unless the text starts with <html>
  `removeNewLines` - set to false to keep all blank lines.

### isHtmlNode

public static boolean isHtmlNode(String text)

### plainToHTML

public static String plainToHTML(String text)
transforms `&, <, >, \n` and whitespace by their HTML counterpart and encloses the whole text in `<html><body><p>...</p></body></html>`.

### removeAllTagsFromString

public static String removeAllTagsFromString(String text)

### removeHtmlTagsFromString

public static String removeHtmlTagsFromString(String text)
Removes all tags (<..>) from a string if it starts with "<html>..." to make it compareable.

### toXMLEscapedText

public static String toXMLEscapedText(String text)

### toXMLEscapedTextExpandingWhitespace

public static String toXMLEscapedTextExpandingWhitespace(String text)

### toXMLUnescapedText

public static String toXMLUnescapedText(String text)

### unescapeHTMLUnicodeEntity

public static String unescapeHTMLUnicodeEntity(String text)

### unicodeToHTMLUnicodeEntity

public static String unicodeToHTMLUnicodeEntity(String text)

### getMaximalOriginalPosition

public static int getMaximalOriginalPosition(int pI, ArrayList<HtmlUtils.IndexPair> pListOfIndices)

Returns:
  the maximal index i such that pI is mapped to i by removing all tags from the original input.

### getMinimalOriginalPosition

public static int getMinimalOriginalPosition(int pI, ArrayList<HtmlUtils.IndexPair> pListOfIndices)

### getReplaceResult

public static String getReplaceResult(Pattern pattern, String text, String replacement)
Replaces text in node content without replacing tags. fc, 19.12.06: This method is very difficult. If you have a simpler method, please supply it. But look that it complies with FindTextTests!!!

### toHtml

public static String toHtml(String xhtmlText)

### toXhtml

public static String toXhtml(String htmlText)

### endOfText

public static int endOfText(String html)

### combineTextWithExceptionInfo

public static String combineTextWithExceptionInfo(String text, Exception ex)

### element

public static String element(String name, String content)

### element

public static String element(String name, Map<String,String> attributes, String content)

### extractRawBody

public static String extractRawBody(String text)

### getURLOfExistingLink

public static String getURLOfExistingLink(HTMLDocument doc, int pos)
Gets the string URL of an existing link, or null if none.

### getCurrentLinkElement

public static Element getCurrentLinkElement(HTMLDocument doc, int pos)

### isEmpty

public static boolean isEmpty(String newText)

### toHTMLEscapedText

public static String toHTMLEscapedText(String s)

### join

public static String join(String... texts)
Join arbitrary texts to html. Plain text arguments will be transformed via `plainToHTML(String)`, i.e. newlines and other special characters will be translated to their HTML counterpart and wrapped in a paragraph (<p></p>).

       // plain + html -> <html><body><p>text1</p>text2</body></html>
       HtmlUtils.join("text1", "", "<html><body>text2</body></html>");
       // insert an empty paragraph (<p></p>) between two strings:
       HtmlUtils.join("text1", "", "text2");
       // this will insert two paragraphs:
       HtmlUtils.join("text1", "\n", "text2");

Parameters:
  `texts` - either html (starting with <HTML> or <html>) or plain text.
Returns:
  html