60 lines
1.9 KiB
Markdown
60 lines
1.9 KiB
Markdown
# HtmlParser
|
|
|
|
As markdown supports HTML to be inlined, we need to introduce another entity that does (limited) parsing. Obtain an instance of `SpannableHtmlParser` via one of these factory methods:
|
|
|
|
```java
|
|
SpannableHtmlParser.create(SpannableTheme, AsyncDrawable.Loader)
|
|
SpannableHtmlParser.create(SpannableTheme, AsyncDrawable.Loader, UrlProcessor, LinkSpan.Resolver)
|
|
```
|
|
|
|
Or, if further tweaking is requered builder methods:
|
|
```java
|
|
// creates empty builder
|
|
SpannableHtmlParser.builder();
|
|
|
|
// creates builder that is set-up to default values
|
|
SpannableHtmlParser.builderWithDefaults(
|
|
@NonNull SpannableTheme theme,
|
|
@Nullable AsyncDrawable.Loader asyncDrawableLoader,
|
|
@Nullable UrlProcessor urlProcessor,
|
|
@Nullable LinkSpan.Resolver resolver
|
|
)
|
|
```
|
|
|
|
Builder with defaults additionally handles these HTML tags:
|
|
* `b`, `strong`
|
|
* `i`, `em`, `cite`, `dfn`
|
|
* `sup`
|
|
* `sub`
|
|
* `u`
|
|
* `del`, `s`, `strike`
|
|
* `a`
|
|
* `img` (only if `AsyncDrawable.Loader` was provided)
|
|
|
|
You can add own simple tags handling (or override default) via:
|
|
```java
|
|
SpannableHtmlParser.Builder.simpleTag(String, SpanProvider)
|
|
```
|
|
|
|
Please note, that not all tags are possible to handle via this. These are so called `void` tags ([link](https://www.w3.org/TR/html51/syntax.html#void-elements)) and so-called `html-blocks` ([link](http://spec.commonmark.org/0.18/#html-blocks)). An exception is made only for `img` tag -> it's possible to handle it via `imageProvider` property in `Builder`
|
|
|
|
|
|
|
|
### Contents
|
|
|
|
* [SpannableConfiguration]
|
|
* * [SpannableTheme]
|
|
* * [AsyncDrawableLoader]
|
|
* * [SyntaxHighlight]
|
|
* * [LinkResolver]
|
|
* * [UrlProcessor]
|
|
* * [HtmlParser]
|
|
|
|
|
|
[SpannableConfiguration]: ./SpannableConfiguration.md
|
|
[SpannableTheme]: ./SpannableTheme.md
|
|
[AsyncDrawableLoader]: ./AsyncDrawableLoader.md
|
|
[SyntaxHighlight]: ./SyntaxHighlight.md
|
|
[LinkResolver]: ./LinkResolver.md
|
|
[UrlProcessor]: ./UrlProcessor.md
|
|
[HtmlParser]: ./HtmlParser.md |