112 lines
35 KiB
HTML
112 lines
35 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>Configuration | Markwon</title>
|
|
<meta name="description" content="Android markdown library based on commonmark specification that renders markdown as system-native Spannables (no WebView)">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/Markwon/apple-touch-icon.png?v=1">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/Markwon/favicon-16x16.png?v=1">
|
|
<link rel="icon" href="/Markwon/favicon.ico?v=1">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/Markwon/favicon-32x32.png?v=1">
|
|
<link rel="manifest" href="/Markwon/manifest.json?v=1">
|
|
<meta name="keywords" content="android,markdown,library,spannable,markwon,commonmark">
|
|
|
|
<link rel="preload" href="/Markwon/assets/css/0.styles.3fbbce9e.css" as="style"><link rel="preload" href="/Markwon/assets/js/app.bdfd2bc6.js" as="script"><link rel="preload" href="/Markwon/assets/js/22.a6ac92c5.js" as="script"><link rel="preload" href="/Markwon/assets/js/3.eaac0903.js" as="script"><link rel="preload" href="/Markwon/assets/js/12.98308542.js" as="script"><link rel="prefetch" href="/Markwon/assets/js/42.d7ca0851.js"><link rel="prefetch" href="/Markwon/assets/js/2.81714ae9.js"><link rel="prefetch" href="/Markwon/assets/js/4.31fa5321.js"><link rel="prefetch" href="/Markwon/assets/js/5.6234b6a3.js"><link rel="prefetch" href="/Markwon/assets/js/6.ef59e46d.js"><link rel="prefetch" href="/Markwon/assets/js/7.e9b37c71.js"><link rel="prefetch" href="/Markwon/assets/js/8.9dff76ac.js"><link rel="prefetch" href="/Markwon/assets/js/9.7d018a47.js"><link rel="prefetch" href="/Markwon/assets/js/10.99fc608c.js"><link rel="prefetch" href="/Markwon/assets/js/11.cdc173e9.js"><link rel="prefetch" href="/Markwon/assets/js/13.83b81b01.js"><link rel="prefetch" href="/Markwon/assets/js/14.0e5fe31e.js"><link rel="prefetch" href="/Markwon/assets/js/15.724f3dc4.js"><link rel="prefetch" href="/Markwon/assets/js/16.076204be.js"><link rel="prefetch" href="/Markwon/assets/js/17.9412daf3.js"><link rel="prefetch" href="/Markwon/assets/js/18.187f0167.js"><link rel="prefetch" href="/Markwon/assets/js/19.af3507a7.js"><link rel="prefetch" href="/Markwon/assets/js/20.dc11e22f.js"><link rel="prefetch" href="/Markwon/assets/js/21.393a507f.js"><link rel="prefetch" href="/Markwon/assets/js/23.9edcc0b3.js"><link rel="prefetch" href="/Markwon/assets/js/24.073942b3.js"><link rel="prefetch" href="/Markwon/assets/js/25.507307eb.js"><link rel="prefetch" href="/Markwon/assets/js/26.87c7e366.js"><link rel="prefetch" href="/Markwon/assets/js/27.a6f7a96f.js"><link rel="prefetch" href="/Markwon/assets/js/28.c0caacb4.js"><link rel="prefetch" href="/Markwon/assets/js/29.230c7321.js"><link rel="prefetch" href="/Markwon/assets/js/30.45e92827.js"><link rel="prefetch" href="/Markwon/assets/js/31.3a2ff699.js"><link rel="prefetch" href="/Markwon/assets/js/32.662e2ab9.js"><link rel="prefetch" href="/Markwon/assets/js/33.d83b2cb7.js"><link rel="prefetch" href="/Markwon/assets/js/34.4b19ef85.js"><link rel="prefetch" href="/Markwon/assets/js/35.1684da38.js"><link rel="prefetch" href="/Markwon/assets/js/36.9852715d.js"><link rel="prefetch" href="/Markwon/assets/js/37.e98b3352.js"><link rel="prefetch" href="/Markwon/assets/js/38.09771599.js"><link rel="prefetch" href="/Markwon/assets/js/39.37003a65.js"><link rel="prefetch" href="/Markwon/assets/js/40.bf595a01.js"><link rel="prefetch" href="/Markwon/assets/js/41.db50f781.js"><link rel="prefetch" href="/Markwon/assets/js/43.78500964.js"><link rel="prefetch" href="/Markwon/assets/js/44.60fec7f9.js"><link rel="prefetch" href="/Markwon/assets/js/45.78224b99.js"><link rel="prefetch" href="/Markwon/assets/js/46.9a7f306b.js"><link rel="prefetch" href="/Markwon/assets/js/47.42b56911.js"><link rel="prefetch" href="/Markwon/assets/js/48.cceb75d4.js"><link rel="prefetch" href="/Markwon/assets/js/49.20507df8.js"><link rel="prefetch" href="/Markwon/assets/js/50.f89d88b1.js"><link rel="prefetch" href="/Markwon/assets/js/51.d7ac54ce.js"><link rel="prefetch" href="/Markwon/assets/js/52.394ded4e.js"><link rel="prefetch" href="/Markwon/assets/js/53.144cf408.js"><link rel="prefetch" href="/Markwon/assets/js/54.0f936c4f.js"><link rel="prefetch" href="/Markwon/assets/js/55.5b7382a9.js"><link rel="prefetch" href="/Markwon/assets/js/56.1cf2f788.js"><link rel="prefetch" href="/Markwon/assets/js/57.1b7dddc1.js"><link rel="prefetch" href="/Markwon/assets/js/58.5271aaaf.js"><link rel="prefetch" href="/Markwon/assets/js/59.7ef6ac9a.js"><link rel="prefetch" href="/Markwon/assets/js/60.9bbfa80f.js"><link rel="prefetch" href="/Markwon/assets/js/61.628c1500.js"><link rel="prefetch" href="/Markwon/assets/js/62.d4d206d7.js"><link rel="prefetch" href="/Markwon/assets/js/63.8ccf8bfc.js"><link rel="prefetch" href="/Markwon/assets/js/64.7672a52b.js"><link rel="prefetch" href="/Markwon/assets/js/65.c4f000dc.js"><link rel="prefetch" href="/Markwon/assets/js/66.4a29728a.js"><link rel="prefetch" href="/Markwon/assets/js/67.7331c7c7.js"><link rel="prefetch" href="/Markwon/assets/js/68.9d1d2ae1.js"><link rel="prefetch" href="/Markwon/assets/js/69.fd31295a.js"><link rel="prefetch" href="/Markwon/assets/js/70.fac8f892.js"><link rel="prefetch" href="/Markwon/assets/js/71.c3fcfb65.js"><link rel="prefetch" href="/Markwon/assets/js/72.d2389fc9.js"><link rel="prefetch" href="/Markwon/assets/js/73.6ce21170.js"><link rel="prefetch" href="/Markwon/assets/js/74.2ad91074.js"><link rel="prefetch" href="/Markwon/assets/js/75.1d59d27c.js"><link rel="prefetch" href="/Markwon/assets/js/76.f3844391.js"><link rel="prefetch" href="/Markwon/assets/js/77.4e5a82c3.js"><link rel="prefetch" href="/Markwon/assets/js/78.ff7203ee.js"><link rel="prefetch" href="/Markwon/assets/js/79.b1718a0d.js"><link rel="prefetch" href="/Markwon/assets/js/80.802db0eb.js"><link rel="prefetch" href="/Markwon/assets/js/81.9edd3cd9.js"><link rel="prefetch" href="/Markwon/assets/js/82.52f04a34.js"><link rel="prefetch" href="/Markwon/assets/js/83.3bd397c0.js"><link rel="prefetch" href="/Markwon/assets/js/84.a9af8a34.js"><link rel="prefetch" href="/Markwon/assets/js/85.2a0d8d40.js">
|
|
<link rel="stylesheet" href="/Markwon/assets/css/0.styles.3fbbce9e.css">
|
|
</head>
|
|
<body>
|
|
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/Markwon/" class="home-link router-link-active"><!----> <span class="site-name">Markwon</span></a> <div class="links" style="max-width:nullpx;"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/Markwon/docs/v4/install.html" class="nav-link">Install</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">API Version</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>Latest</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/Markwon/" class="nav-link">4.x.x</a></li></ul></li><li class="dropdown-item"><h4>Legacy</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/Markwon/docs/v3/install.html" class="nav-link">3.x.x</a></li><li class="dropdown-subitem"><a href="/Markwon/docs/v2/" class="nav-link router-link-active">2.x.x</a></li></ul></li></ul></div></div><div class="nav-item"><a href="https://github.com/noties/Markwon/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Changelog
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="nav-item"><a href="https://github.com/noties/Markwon" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Github
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <div class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/Markwon/docs/v4/install.html" class="nav-link">Install</a></div><div class="nav-item"><div class="dropdown-wrapper"><a class="dropdown-title"><span class="title">API Version</span> <span class="arrow right"></span></a> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>Latest</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/Markwon/" class="nav-link">4.x.x</a></li></ul></li><li class="dropdown-item"><h4>Legacy</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/Markwon/docs/v3/install.html" class="nav-link">3.x.x</a></li><li class="dropdown-subitem"><a href="/Markwon/docs/v2/" class="nav-link router-link-active">2.x.x</a></li></ul></li></ul></div></div><div class="nav-item"><a href="https://github.com/noties/Markwon/blob/master/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Changelog
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div><div class="nav-item"><a href="https://github.com/noties/Markwon" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
|
Github
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/Markwon/docs/v2/getting-started.html" class="sidebar-link">Getting started</a></li><li><a href="/Markwon/docs/v2/install.html" class="sidebar-link">Installation</a></li><li><a href="/Markwon/docs/v2/configure.html" class="active sidebar-link">Configuration</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#theme" class="sidebar-link">Theme</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#images" class="sidebar-link">Images</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#async-loader" class="sidebar-link">Async loader</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#size-resolver" class="sidebar-link">Size resolver</a></li></ul></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#syntax-highlight" class="sidebar-link">Syntax highlight</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#link-resolver" class="sidebar-link">Link resolver</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#url-processor" class="sidebar-link">URL processor</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#urlprocessorrelativetoabsolute" class="sidebar-link">UrlProcessorRelativeToAbsolute</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#urlprocessorandroidassets" class="sidebar-link">UrlProcessorAndroidAssets</a></li></ul></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#factory" class="sidebar-link">Factory</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#soft-line-break" class="sidebar-link">Soft line break</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#html" class="sidebar-link">HTML</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#parser" class="sidebar-link">Parser</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#renderer" class="sidebar-link">Renderer</a></li><li class="sidebar-sub-header"><a href="/Markwon/docs/v2/configure.html#html-allow-non-closed-tags" class="sidebar-link">HTML allow non-closed tags</a></li></ul></li></ul></li><li><a href="/Markwon/docs/v2/theme.html" class="sidebar-link">Theme</a></li><li><a href="/Markwon/docs/v2/factory.html" class="sidebar-link">Factory</a></li><li><a href="/Markwon/docs/v2/image-loader.html" class="sidebar-link">Images</a></li><li><a href="/Markwon/docs/v2/syntax-highlight.html" class="sidebar-link">Syntax highlight</a></li><li><a href="/Markwon/docs/v2/html.html" class="sidebar-link">HTML</a></li><li><a href="/Markwon/docs/v2/view.html" class="sidebar-link">MarkwonView</a></li></ul> </div> <div class="page"> <div class="content"><h1 id="configuration"><a href="#configuration" aria-hidden="true" class="header-anchor">#</a> Configuration</h1> <div class="warning custom-block"><p class="custom-block-title">WARNING</p> <p>This is documentation for <u>legacy</u> versions. For the most current version <a href="/Markwon/">click here.</a></p></div> <p><code>SpannableConfiguration</code> is the core component that controls how markdown is parsed and rendered.
|
|
It can be obtained via factory methods:</p> <div class="language-java extra-class"><pre class="language-java"><code><span class="token comment">// creates default implementation</span>
|
|
<span class="token keyword">final</span> SpannableConfiguration configuration <span class="token operator">=</span> SpannableConfiguration<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><div class="language-java extra-class"><pre class="language-java"><code><span class="token comment">// creates configurablable instance via `#builder` method</span>
|
|
<span class="token keyword">final</span> SpannableConfiguration configuration <span class="token operator">=</span> SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">asyncDrawableLoader</span><span class="token punctuation">(</span>AsyncDrawableLoader<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><div class="tip custom-block"><p class="custom-block-title">Note</p> <p>If <code>#builder</code> factory method is used, you do not need to specify default
|
|
values as they will be applied automatically</p></div> <div class="warning custom-block"><p class="custom-block-title">Images</p> <p>If you plan on using images inside your markdown/HTML, you will have to <strong>explicitly</strong>
|
|
register an implementation of <code>AsyncDrawable.Loader</code> via <code>#asyncDrawableLoader</code> builder method.
|
|
<code>Markwon</code> comes with ready implementation for that and it can be found in
|
|
<code>markwon-image-loader</code> module. Refer to module <a href="/Markwon/docs/v2/image-loader.html">documentation</a></p></div> <h2 id="theme"><a href="#theme" aria-hidden="true" class="header-anchor">#</a> Theme</h2> <p><code>SpannableTheme</code> controls how markdown is rendered. It has pretty extensive number of
|
|
options that can be found <a href="/Markwon/docs/v2/theme.html">here</a></p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">theme</span><span class="token punctuation">(</span>SpannableTheme<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>If <code>SpannableTheme</code> is not provided explicitly, <code>SpannableTheme.create(context)</code> will be used</p> <h2 id="images"><a href="#images" aria-hidden="true" class="header-anchor">#</a> Images</h2> <h3 id="async-loader"><a href="#async-loader" aria-hidden="true" class="header-anchor">#</a> Async loader</h3> <p><code>AsyncDrawable.Loader</code> handles images in your markdown and HTML</p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">asyncDrawableLoader</span><span class="token punctuation">(</span>AsyncDrawable<span class="token punctuation">.</span>Loader<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>If <code>AsyncDrawable.Loader</code> is not provided explicitly, default <strong>no-op</strong> implementation will be used.</p> <div class="tip custom-block"><p class="custom-block-title">Implementation</p> <p>There are no restrictions on what implementation to use, but <code>Markwon</code> has artifact that can
|
|
answer the most common needs of displaying SVG, GIF and other image formats. It can be found <a href="/Markwon/docs/v2/image-loader.html">here</a></p></div> <h3 id="size-resolver"><a href="#size-resolver" aria-hidden="true" class="header-anchor">#</a> Size resolver <span class="badge tip top" data-v-099ab69c>1.0.1</span></h3> <p><code>ImageSizeResolver</code> controls the size of an image to be displayed. Currently it
|
|
handles only HTML images (specified via <code>img</code> tag).</p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">imageSizeResolver</span><span class="token punctuation">(</span>ImageSizeResolver<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>If not provided explicitly, default <code>ImageSizeResolverDef</code> implementation will be used.
|
|
It handles 3 dimention units:</p> <ul><li><code>%</code> (percent)</li> <li><code>em</code> (relative to text size)</li> <li><code>px</code> (absolute size, every dimention that is not <code>%</code> or <code>em</code> is considered to be <em>absolute</em>)</li></ul> <div class="language-html extra-class"><pre class="language-html"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">width</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>100%<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
|
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span> <span class="token attr-name">width</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>2em<span class="token punctuation">"</span></span> <span class="token attr-name">height</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>10px<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
|
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>img</span><span class="token style-attr language-css"><span class="token attr-name"> <span class="token attr-name">style</span></span><span class="token punctuation">="</span><span class="token attr-value"><span class="token punctuation">{</span><span class="token property">width</span><span class="token punctuation">:</span> 100%<span class="token punctuation">;</span> <span class="token property">height</span><span class="token punctuation">:</span> 8em<span class="token punctuation">;</span><span class="token punctuation">}</span></span><span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
|
|
</code></pre></div><p><code>ImageSizeResolverDef</code> keeps the ratio of original image if one of the dimentions is missing.</p> <div class="warning custom-block"><p class="custom-block-title">Height%</p> <p>There is no support for <code>%</code> units for <code>height</code> dimention. This is due to the fact that
|
|
height of an TextView in which markdown is displayed is non-stable and changes with time
|
|
(for example when image is loaded and applied to a TextView it will <em>increase</em> TextView's height),
|
|
so we will have no point-of-refence from which to <em>calculate</em> image height.</p></div> <h2 id="syntax-highlight"><a href="#syntax-highlight" aria-hidden="true" class="header-anchor">#</a> Syntax highlight</h2> <p><code>SyntaxHighlight</code> controls the syntax highlight for code blocks (in markdown).</p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">syntaxHighlight</span><span class="token punctuation">(</span>SyntaxHighlight<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>If not provided explicitly, default <strong>no-op</strong> implementation will be used.</p> <div class="tip custom-block"><p class="custom-block-title">Syntax highlight</p> <p>Although <code>SyntaxHighlight</code> interface was included with the very first version
|
|
of <code>Markwon</code> there were no ready-to-use implementations. But starting with <span class="badge tip top" data-v-099ab69c>1.1.0</span> <code>Markwon</code> provides one. It can be found in <code>markwon-syntax-highlight</code> artifact. Refer
|
|
to module <a href="/Markwon/docs/v2/syntax-highlight.html">documentation</a></p></div> <h2 id="link-resolver"><a href="#link-resolver" aria-hidden="true" class="header-anchor">#</a> Link resolver</h2> <p><code>LinkSpan.Resolver</code> is triggered when a link is clicked in markdown/HTML.</p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">linkResolver</span><span class="token punctuation">(</span>LinkSpan<span class="token punctuation">.</span>Resolver<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>If not provided explicitly, default <code>LinkResolverDef</code> implementation will be used.
|
|
Underneath it constructs an <code>Intent</code> and <em>tries</em> to start an Activity associated with it.
|
|
It no Activity is found, it will silently fail (no runtime exceptions)</p> <h2 id="url-processor"><a href="#url-processor" aria-hidden="true" class="header-anchor">#</a> URL processor</h2> <p><code>UrlProcessor</code> is used to process found URLs in markdown/HTML.</p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">urlProcessor</span><span class="token punctuation">(</span>UrlProcessor<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>If not provided explicitly, default <strong>no-op</strong> implementation will be used.</p> <p><code>Markwon</code> provides 2 implementations of <code>UrlProcessor</code>:</p> <ul><li><code>UrlProcessorRelativeToAbsolute</code></li> <li><code>UrlProcessorAndroidAssets</code></li></ul> <h3 id="urlprocessorrelativetoabsolute"><a href="#urlprocessorrelativetoabsolute" aria-hidden="true" class="header-anchor">#</a> UrlProcessorRelativeToAbsolute</h3> <p><code>UrlProcessorRelativeToAbsolute</code> can be used to make relative URL absolute. For example if an image is
|
|
defined like this: <code></code> and <code>UrlProcessorRelativeToAbsolute</code>
|
|
is created with <code>https://github.com/noties/Markwon/raw/master/</code> as the base:
|
|
<code>new UrlProcessorRelativeToAbsolute("https://github.com/noties/Markwon/raw/master/")</code>,
|
|
then final image will have <code>https://github.com/noties/Markwon/raw/master/art/image.JPG</code>
|
|
as the destination.</p> <h3 id="urlprocessorandroidassets"><a href="#urlprocessorandroidassets" aria-hidden="true" class="header-anchor">#</a> UrlProcessorAndroidAssets</h3> <p><code>UrlProcessorAndroidAssets</code> can be used to make processed links to point to Android assets folder.
|
|
So an image: <code></code> will have <code>file:///android_asset/art/image.JPG</code> as the
|
|
destination</p> <h2 id="factory"><a href="#factory" aria-hidden="true" class="header-anchor">#</a> Factory <span class="badge tip top" data-v-099ab69c>1.1.0</span></h2> <p><code>SpannableFactory</code> is used to control <em>what</em> span implementations to be used</p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">factory</span><span class="token punctuation">(</span>SpannableFactory<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>If not provided explicitly, default <code>SpannableFactoryDef</code> implementation will be used. It is documented
|
|
in <a href="/Markwon/docs/v2/factory.html">this section</a></p> <h2 id="soft-line-break"><a href="#soft-line-break" aria-hidden="true" class="header-anchor">#</a> Soft line break <span class="badge tip top" data-v-099ab69c>1.1.1</span></h2> <p><code>softBreakAddsNewLine</code> option controls how <em>soft breaks</em> are treated in the final result.
|
|
If <code>true</code> -> soft break will add a new line, else it will add a <code></code> (space) char.</p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">softBreakAddsNewLine</span><span class="token punctuation">(</span><span class="token keyword">boolean</span><span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>If not provided explicitly, default <code>false</code> value will be used.</p> <a href="https://spec.commonmark.org/0.28/#soft-line-breaks" target="_blank" rel="noopener noreferrer">
|
|
Commonmark specification
|
|
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> <h2 id="html"><a href="#html" aria-hidden="true" class="header-anchor">#</a> HTML <span class="badge tip top" data-v-099ab69c>2.0.0</span></h2> <h3 id="parser"><a href="#parser" aria-hidden="true" class="header-anchor">#</a> Parser</h3> <p><code>MarkwonHtmlParser</code> is used to parse HTML content</p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">htmlParser</span><span class="token punctuation">(</span>MarkwonHtmlParser<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>if not provided explicitly, default <code>MarkwonHtmlParserImpl</code> will be used
|
|
<strong>if</strong> it can be found in classpath, otherwise default <strong>no-op</strong> implementation
|
|
wiil be used. Refer to <a href="/Markwon/docs/v2/html.html#parser">HTML</a> document for more information about this behavior.</p> <h3 id="renderer"><a href="#renderer" aria-hidden="true" class="header-anchor">#</a> Renderer</h3> <p><code>MarkwonHtmlRenderer</code> controls how parsed HTML content will be rendered.</p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">htmlRenderer</span><span class="token punctuation">(</span>MarkwonHtmlRenderer<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>If not provided explicitly, default <code>MarkwonHtmlRenderer</code> implementation will be used.
|
|
It is documented <a href="/Markwon/docs/v2/html.html#renderer">here</a></p> <h3 id="html-allow-non-closed-tags"><a href="#html-allow-non-closed-tags" aria-hidden="true" class="header-anchor">#</a> HTML allow non-closed tags</h3> <p><code>htmlAllowNonClosedTags</code> option is used to control whether or not to
|
|
render non-closed HTML tags</p> <div class="language-java extra-class"><pre class="language-java"><code>SpannableConfiguration<span class="token punctuation">.</span><span class="token function">builder</span><span class="token punctuation">(</span>context<span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">htmlAllowNonClosedTags</span><span class="token punctuation">(</span><span class="token keyword">boolean</span><span class="token punctuation">)</span>
|
|
<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
|
</code></pre></div><p>If not provided explicitly, default value <code>false</code> will be used (non-closed tags <strong>won't</strong> be rendered).</p></div> <div class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated: </span> <span class="time">6/17/2019, 2:08:33 PM</span></div></div> <div class="page-nav"><p class="inner"><span class="prev">
|
|
←
|
|
<a href="/Markwon/docs/v2/install.html" class="prev">
|
|
Installation
|
|
</a></span> <span class="next"><a href="/Markwon/docs/v2/theme.html">
|
|
Theme
|
|
</a>
|
|
→
|
|
</span></p></div> </div> <!----></div></div>
|
|
<script src="/Markwon/assets/js/22.a6ac92c5.js" defer></script><script src="/Markwon/assets/js/3.eaac0903.js" defer></script><script src="/Markwon/assets/js/12.98308542.js" defer></script><script src="/Markwon/assets/js/app.bdfd2bc6.js" defer></script>
|
|
</body>
|
|
</html>
|