Update documentation web-site
This commit is contained in:
		
							parent
							
								
									3fe514aeea
								
							
						
					
					
						commit
						6c8f1c04bb
					
				| @ -10,6 +10,7 @@ import androidx.annotation.NonNull; | ||||
| import androidx.annotation.Nullable; | ||||
| 
 | ||||
| import java.util.concurrent.ExecutorService; | ||||
| import java.util.concurrent.Executors; | ||||
| import java.util.concurrent.Future; | ||||
| 
 | ||||
| import javax.inject.Inject; | ||||
| @ -18,6 +19,7 @@ import io.noties.debug.Debug; | ||||
| import io.noties.markwon.AbstractMarkwonPlugin; | ||||
| import io.noties.markwon.Markwon; | ||||
| import io.noties.markwon.MarkwonConfiguration; | ||||
| import io.noties.markwon.PrecomputedTextSetterCompat; | ||||
| import io.noties.markwon.app.gif.GifAwarePlugin; | ||||
| import io.noties.markwon.ext.strikethrough.StrikethroughPlugin; | ||||
| import io.noties.markwon.ext.tables.TablePlugin; | ||||
| @ -73,6 +75,11 @@ public class MarkdownRenderer { | ||||
| 
 | ||||
|         cancel(); | ||||
| 
 | ||||
| final Markwon markwon = Markwon.builder(context) | ||||
|         .usePlugin(/**/) | ||||
|         .textSetter(PrecomputedTextSetterCompat.create(Executors.newCachedThreadPool())) | ||||
|         .build(); | ||||
| 
 | ||||
|         task = service.submit(new Runnable() { | ||||
| 
 | ||||
|             @Override | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| <template> | ||||
|     <div class="warning custom-block"> | ||||
|         <p class="custom-block-title">WARNING</p> | ||||
|         <p>This is documentation for <u>legacy 2.x.x</u> versions. For the most current version <a :href="$withBase('/')">click here.</a></p> | ||||
|         <p>This is documentation for <u>legacy</u> versions. For the most current version <a :href="$withBase('/')">click here.</a></p> | ||||
|     </div> | ||||
| </template> | ||||
| 
 | ||||
|  | ||||
| @ -16,9 +16,17 @@ module.exports = { | ||||
|             { | ||||
|                 text: 'API Version', | ||||
|                 items: [ | ||||
|                     { text: 'Current (4.x.x)', link: '/' }, | ||||
|                     { text: 'Legacy (3.x.x)', link: '/docs/v3/install.md' }, | ||||
|                     { text: 'Legacy (2.x.x)', link: '/docs/v2/' } | ||||
|                     { | ||||
|                         text: 'Latest', items: [ | ||||
|                             { text: '4.x.x', link: '/' }, | ||||
|                         ] | ||||
|                     }, | ||||
|                     { | ||||
|                         text: 'Legacy', items: [ | ||||
|                             { text: '3.x.x', link: '/docs/v3/install.md' }, | ||||
|                             { text: '2.x.x', link: '/docs/v2/' } | ||||
|                         ] | ||||
|                     } | ||||
|                 ] | ||||
|             }, | ||||
|             { text: 'Changelog', link: 'https://github.com/noties/Markwon/blob/master/CHANGELOG.md' }, | ||||
| @ -83,7 +91,8 @@ module.exports = { | ||||
|                         '/docs/v4/core/spans-factory.md', | ||||
|                         '/docs/v4/core/core-plugin.md', | ||||
|                         '/docs/v4/core/movement-method-plugin.md', | ||||
|                         '/docs/v4/core/render-props.md' | ||||
|                         '/docs/v4/core/render-props.md', | ||||
|                         '/docs/v4/core/text-setter.md' | ||||
|                     ] | ||||
|                 }, | ||||
|                 '/docs/v4/ext-latex/', | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Configuration | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| `MarkwonConfiguration` class holds common Markwon functionality. | ||||
| These are _configurable_ properties: | ||||
| * `SyntaxHighlight` | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Core plugin <Badge text="3.0.0" /> | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| Since <Badge text="3.0.0" /> with introduction of _plugins_, Markwon | ||||
| **core** functionality was moved to a dedicated plugin. | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Getting started | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| :::tip Installation | ||||
| Please follow [installation](/docs/v3/install.md) instructions | ||||
| to learn how to add `Markwon` to your project | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # HTML Renderer | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| Starting with <Badge text="3.0.0" /> `MarkwonHtmlRenderer` controls how HTML | ||||
| is rendered: | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Images | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| Starting with <Badge text="3.0.0" /> `Markwon` comes with `ImagesPlugin` | ||||
| which supports `http(s)`, `file` and `data` schemes and default media | ||||
| decoder (for simple images, no [SVG](/docs/v3/image/svg.md) or [GIF](/docs/v3/image/gif.md) which | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Movement method plugin | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| `MovementMethodPlugin` can be used to apply a `MovementMethod` to a TextView | ||||
| (important if you have links inside your markdown). By default `CorePlugin` | ||||
| will set a `LinkMovementMethod` on a TextView if one is missing. If you have | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Plugins <Badge text="3.0.0" /> | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| Since <Badge text="3.0.0" /> `MarkwonPlugin` takes the key role in | ||||
| processing and rendering markdown. Even **core** functionaly is abstracted | ||||
| into a `CorePlugin`. So it's still possible to use `Markwon` with a completely | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # RenderProps <Badge text="3.0.0" /> | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| `RenderProps` encapsulates passing arguments from a node visitor to a node renderer. | ||||
| Without hardcoding arguments into an API method calls. | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Spans Factory | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| Starting with <Badge text="3.0.0" /> `MarkwonSpansFactory` controls what spans are displayed | ||||
| for markdown nodes. | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Theme | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| Here is the list of properties that can be configured via `MarkwonTheme.Builder` class.  | ||||
| 
 | ||||
| :::tip | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Visitor | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| Starting with <Badge text="3.0.0" /> _visiting_ of parsed markdown | ||||
| nodes does not require creating own instance of commonmark-java `Visitor`, | ||||
| instead a composable/configurable `MarkwonVisitor` is used. | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # LaTeX extension | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| <MavenBadge :artifact="'ext-latex'" /> | ||||
| 
 | ||||
| This is an extension that will help you display LaTeX formulas in your markdown. | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Strikethrough extension | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| <MavenBadge :artifact="'ext-strikethrough'" /> | ||||
| 
 | ||||
| This module adds `strikethrough` functionality to `Markwon` via `StrikethroughPlugin`: | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Tables extension | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| <MavenBadge :artifact="'ext-tables'" /> | ||||
| 
 | ||||
| This extension adds support for GFM tables. | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Task list extension | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| <MavenBadge :artifact="'ext-tasklist'" /> | ||||
| 
 | ||||
| Adds support for GFM (Github-flavored markdown) task-lists: | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # HTML | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| This artifact encapsulates HTML parsing from the core artifact and provides | ||||
| few predefined `TagHandlers` | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Image GIF | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| <MavenBadge :artifact="'image-gif'" /> | ||||
| 
 | ||||
| Adds support for GIF images inside markdown.  | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Image OkHttp | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| <MavenBadge :artifact="'image-okhttp'" /> | ||||
| 
 | ||||
| Uses [okhttp library](https://github.com/square/okhttp) as the network transport fro images. Since <Badge text="3.0.0" /> | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Image SVG | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| <MavenBadge :artifact="'image-svg'" /> | ||||
| 
 | ||||
| Adds support for SVG images inside markdown.  | ||||
|  | ||||
| @ -3,6 +3,8 @@ prev: false | ||||
| next: /docs/v3/core/getting-started.md | ||||
| --- | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| # Installation | ||||
| 
 | ||||
|  | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Migration 2.x.x -> 3.x.x | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| * strikethrough moved to standalone module | ||||
| * tables moved to standalone module | ||||
| * core functionality of `AsyncDrawableLoader` moved to `core` module | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Recycler Table <Badge text="3.0.0" /> | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| <MavenBadge :artifact="'recycler-table'" /> | ||||
| 
 | ||||
| Artifact that provides [MarkwonAdapter.Entry](/docs/v3/recycler/) to render `TableBlock` inside  | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Recycler <Badge text="3.0.0" /> | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| <MavenBadge :artifact="'recycler'" /> | ||||
| 
 | ||||
| This artifact allows displaying markdown in a set of Android widgets | ||||
|  | ||||
| @ -1,5 +1,7 @@ | ||||
| # Syntax highlight | ||||
| 
 | ||||
| <LegacyWarning /> | ||||
| 
 | ||||
| <MavenBadge :artifact="'syntax-highlight'" /> | ||||
| 
 | ||||
| This is a simple module to add **syntax highlight** functionality to your markdown rendered with `Markwon` library. It is based on [Prism4j](https://github.com/noties/Prism4j) so lead there to understand how to configure `Prism4j` instance. | ||||
|  | ||||
							
								
								
									
										40
									
								
								docs/docs/v4/core/text-setter.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								docs/docs/v4/core/text-setter.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,40 @@ | ||||
| # TextSetter <Badge text="4.1.0" /> | ||||
| 
 | ||||
| Since <Badge text="4.1.0" /> it is possible to control how text is applied to a `TextView`. | ||||
| This is done via `Markwon.TextSetter` interface. | ||||
| 
 | ||||
| ```java | ||||
| final Markwon markwon = Markwon.builder(context) | ||||
|         .usePlugin(/**/) | ||||
|         .textSetter(PrecomputedTextSetterCompat.create(Executors.newCachedThreadPool())) | ||||
|         .build(); | ||||
| ``` | ||||
| 
 | ||||
| ```java | ||||
| public interface TextSetter { | ||||
|     /** | ||||
|      * @param textView   TextView | ||||
|      * @param markdown   prepared markdown | ||||
|      * @param bufferType BufferType specified when building {@link Markwon} instance | ||||
|      *                   via {@link Builder#bufferType(TextView.BufferType)} | ||||
|      * @param onComplete action to run when set-text is finished (required to call in order | ||||
|      *                   to execute {@link MarkwonPlugin#afterSetText(TextView)}) | ||||
|      */ | ||||
|     void setText( | ||||
|             @NonNull TextView textView, | ||||
|             @NonNull Spanned markdown, | ||||
|             @NonNull TextView.BufferType bufferType, | ||||
|             @NonNull Runnable onComplete); | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| Primary target for this functionality is to use [PrecomputedText] and [PrecomputedTextCompat]. | ||||
| `Markwon` comes with `PrecomputedTextSetterCompat` implementation. | ||||
| 
 | ||||
| :::tip Note | ||||
| Please note that `PrecomputedTextCompat` belongs to the `androidx.core:core` artifact. Make | ||||
| sure that you have it in your project's dependencies (explicitly or implicitly) | ||||
| ::: | ||||
| 
 | ||||
| [PrecomputedText]: https://developer.android.com/reference/android/text/PrecomputedText | ||||
| [PrecomputedTextCompat]: https://developer.android.com/reference/androidx/core/text/PrecomputedTextCompat | ||||
| @ -141,21 +141,21 @@ public abstract class Markwon { | ||||
|      * @see PrecomputedTextSetterCompat | ||||
|      * @since 4.1.0 | ||||
|      */ | ||||
|     public interface TextSetter { | ||||
|         /** | ||||
|          * @param textView   TextView | ||||
|          * @param markdown   prepared markdown | ||||
|          * @param bufferType BufferType specified when building {@link Markwon} instance | ||||
|          *                   via {@link Builder#bufferType(TextView.BufferType)} | ||||
|          * @param onComplete action to run when set-text is finished (required to call in order | ||||
|          *                   to execute {@link MarkwonPlugin#afterSetText(TextView)}) | ||||
|          */ | ||||
|         void setText( | ||||
|                 @NonNull TextView textView, | ||||
|                 @NonNull Spanned markdown, | ||||
|                 @NonNull TextView.BufferType bufferType, | ||||
|                 @NonNull Runnable onComplete); | ||||
|     } | ||||
| public interface TextSetter { | ||||
|     /** | ||||
|      * @param textView   TextView | ||||
|      * @param markdown   prepared markdown | ||||
|      * @param bufferType BufferType specified when building {@link Markwon} instance | ||||
|      *                   via {@link Builder#bufferType(TextView.BufferType)} | ||||
|      * @param onComplete action to run when set-text is finished (required to call in order | ||||
|      *                   to execute {@link MarkwonPlugin#afterSetText(TextView)}) | ||||
|      */ | ||||
|     void setText( | ||||
|             @NonNull TextView textView, | ||||
|             @NonNull Spanned markdown, | ||||
|             @NonNull TextView.BufferType bufferType, | ||||
|             @NonNull Runnable onComplete); | ||||
| } | ||||
| 
 | ||||
|     /** | ||||
|      * Builder for {@link Markwon}. | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dimitry Ivanov
						Dimitry Ivanov