diff --git a/build.gradle b/build.gradle index c1df183c..08aeb0b6 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:3.3.1' classpath 'com.github.ben-manes:gradle-versions-plugin:0.20.0' } } diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index aa08ea90..50b76e0d 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -17,62 +17,61 @@ module.exports = { { text: 'API Version', items: [ - { text: 'Current (3.x.x)', link: '/' }, - { text: 'Legacy (2.x.x)', link: '/docs/v2/' } + { text: 'Current (2.x.x)', link: '/' }, + { text: 'BETA (3.x.x)', link: '/docs/v3/' } ] }, { text: 'Sandbox', link: '/sandbox.md' }, - { text: 'Donate', link: '/donate.md' }, { text: 'Github', link: 'https://github.com/noties/Markwon' } ], sidebar: { - '/docs/v2/': [ - '', - 'getting-started.md', - 'configure.md', - 'theme.md', - 'factory.md', - 'image-loader.md', - 'syntax-highlight.md', - 'html.md', - 'view.md' - ], - '/': [ + '/docs/v3/': [ '', { title: 'Core', collapsable: false, children: [ - '/docs/core/getting-started.md', - '/docs/core/plugins.md', - '/docs/core/theme.md', - '/docs/core/images.md', - '/docs/core/configuration.md', - '/docs/core/visitor.md', - '/docs/core/spans-factory.md', - '/docs/core/html-renderer.md', - '/docs/core/core-plugin.md', - '/docs/core/movement-method-plugin.md' + '/docs/v3/core/getting-started.md', + '/docs/v3/core/plugins.md', + '/docs/v3/core/theme.md', + '/docs/v3/core/images.md', + '/docs/v3/core/configuration.md', + '/docs/v3/core/visitor.md', + '/docs/v3/core/spans-factory.md', + '/docs/v3/core/html-renderer.md', + '/docs/v3/core/core-plugin.md', + '/docs/v3/core/movement-method-plugin.md' ] }, - '/docs/ext-latex/', - '/docs/ext-strikethrough/', - '/docs/ext-tables/', - '/docs/ext-tasklist/', + '/docs/v3/ext-latex/', + '/docs/v3/ext-strikethrough/', + '/docs/v3/ext-tables/', + '/docs/v3/ext-tasklist/', { title: 'HTML', collapsable: false, children: [ - '/docs/html/', - '/docs/html/custom-tag-handler.md' + '/docs/v3/html/', + '/docs/v3/html/custom-tag-handler.md' ] }, - '/docs/image/gif.md', - '/docs/image/okhttp.md', - '/docs/image/svg.md', - '/docs/recycler/', - '/docs/syntax-highlight/', - '/docs/migration-2-3.md' + '/docs/v3/image/gif.md', + '/docs/v3/image/okhttp.md', + '/docs/v3/image/svg.md', + '/docs/v3/recycler/', + '/docs/v3/syntax-highlight/', + '/docs/v3/migration-2-3.md' + ], + '/': [ + '', + '/docs/getting-started.md', + '/docs/configure.md', + '/docs/theme.md', + '/docs/factory.md', + '/docs/image-loader.md', + '/docs/syntax-highlight.md', + '/docs/html.md', + '/docs/view.md' ] }, sidebarDepth: 2, diff --git a/docs/README.md b/docs/README.md index e930c4bf..0dce1917 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,12 +1,11 @@ --- -title: 'Introduction' +title: 'Overview' --- Markwon Logo

-[![markwon](https://img.shields.io/maven-central/v/ru.noties.markwon/core.svg?label=markwon)](http://search.maven.org/#search|ga|1|g%3A%22ru.noties.markwon%22%20) -[![Build Status](https://travis-ci.org/noties/Markwon.svg?branch=master)](https://travis-ci.org/noties/Markwon) + **Markwon** is a markdown library for Android. It parses markdown following with the help of amazing library @@ -21,23 +20,22 @@ but also gives all the means to tweak the appearance if desired. All markdown fe listed in are supported (including support for **inlined/block HTML code**, **markdown tables**, **images** and **syntax highlight**). -## Supported markdown features +## Supported markdown features: * Emphasis (`*`, `_`) * Strong emphasis (`**`, `__`) +* Strike-through (`~~`) * Headers (`#{1,6}`) * Links (`[]()` && `[][]`) -* [Images](/docs/core/images.md) +* [Images](/docs/image-loader.md) * Thematic break (`---`, `***`, `___`) * Quotes & nested quotes (`>{1,}`) * Ordered & non-ordered lists & nested ones * Inline code * Code blocks -* [Strike-through](/docs/ext-strikethrough/) (`~~`) -* [Tables](/docs/ext-tables/) (*with limitations*) -* [Syntax highlight](/docs/syntax-highlight/) -* [LaTeX](/docs/ext-latex/) formulas -* [HTML](/docs/html/) +* Tables (*with limitations*) +* [Syntax highlight](/docs/syntax-highlight.md) +* [HTML](/docs/html.md) * Emphasis (``, ``, ``, ``) * Strong emphasis (``, ``) * SuperScript (``) @@ -50,8 +48,8 @@ listed in are supported (including support for * * Blockquote (`blockquote`) * Heading (`h1`, `h2`, `h3`, `h4`, `h5`, `h6`) * there is support to render any HTML tag, but it will require to create a special `TagHandler`, - more information can be found in [HTML section](/docs/html/custom-tag-handler.md) -* [Task lists](/docs/ext-tasklist/): + more information can be found in [HTML section](/docs/html.md#custom-tag-handler) +* Task lists: - [ ] Not _done_ - [X] **Done** with `X` - [x] ~~and~~ **or** small `x` diff --git a/docs/docs/v2/configure.md b/docs/docs/configure.md similarity index 94% rename from docs/docs/v2/configure.md rename to docs/docs/configure.md index c8274988..1d09e5fc 100644 --- a/docs/docs/v2/configure.md +++ b/docs/docs/configure.md @@ -1,5 +1,3 @@ - - # Configuration `SpannableConfiguration` is the core component that controls how markdown is parsed and rendered. @@ -26,13 +24,13 @@ values as they will be applied automatically If you plan on using images inside your markdown/HTML, you will have to **explicitly** register an implementation of `AsyncDrawable.Loader` via `#asyncDrawableLoader` builder method. `Markwon` comes with ready implementation for that and it can be found in -`markwon-image-loader` module. Refer to module [documentation](/docs/v2/image-loader.md) +`markwon-image-loader` module. Refer to module [documentation](/docs/image-loader.md) ::: ## Theme `SpannableTheme` controls how markdown is rendered. It has pretty extensive number of -options that can be found [here](/docs/v2/theme.md) +options that can be found [here](/docs/theme.md) ```java SpannableConfiguration.builder(context) @@ -58,7 +56,7 @@ If `AsyncDrawable.Loader` is not provided explicitly, default **no-op** implemen :::tip Implementation There are no restrictions on what implementation to use, but `Markwon` has artifact that can -answer the most common needs of displaying SVG, GIF and other image formats. It can be found [here](/docs/v2/image-loader.md) +answer the most common needs of displaying SVG, GIF and other image formats. It can be found [here](/docs/image-loader.md) ::: ### Size resolver @@ -109,7 +107,7 @@ If not provided explicitly, default **no-op** implementation will be used. Although `SyntaxHighlight` interface was included with the very first version of `Markwon` there were no ready-to-use implementations. But starting with `Markwon` provides one. It can be found in `markwon-syntax-highlight` artifact. Refer -to module [documentation](/docs/v2/syntax-highlight.md) +to module [documentation](/docs/syntax-highlight.md) ::: ## Link resolver @@ -168,7 +166,7 @@ SpannableConfiguration.builder(context) ``` If not provided explicitly, default `SpannableFactoryDef` implementation will be used. It is documented -in [this section](/docs/v2/factory.md) +in [this section](/docs/factory.md) ## Soft line break @@ -199,7 +197,7 @@ SpannableConfiguration.builder(context) if not provided explicitly, default `MarkwonHtmlParserImpl` will be used **if** it can be found in classpath, otherwise default **no-op** implementation -wiil be used. Refer to [HTML](/docs/v2/html.md#parser) document for more information about this behavior. +wiil be used. Refer to [HTML](/docs/html.md#parser) document for more information about this behavior. ### Renderer @@ -212,7 +210,7 @@ SpannableConfiguration.builder(context) ``` If not provided explicitly, default `MarkwonHtmlRenderer` implementation will be used. -It is documented [here](/docs/v2/html.md#renderer) +It is documented [here](/docs/html.md#renderer) ### HTML allow non-closed tags diff --git a/docs/docs/v2/factory.md b/docs/docs/factory.md similarity index 98% rename from docs/docs/v2/factory.md rename to docs/docs/factory.md index 186dcf3c..edf4a018 100644 --- a/docs/docs/v2/factory.md +++ b/docs/docs/factory.md @@ -1,5 +1,3 @@ - - # Factory `SpannableFactory` is used to create Span implementations. diff --git a/docs/docs/v2/getting-started.md b/docs/docs/getting-started.md similarity index 98% rename from docs/docs/v2/getting-started.md rename to docs/docs/getting-started.md index cb622232..bed30085 100644 --- a/docs/docs/v2/getting-started.md +++ b/docs/docs/getting-started.md @@ -1,5 +1,3 @@ - - # Getting started ## Quick one @@ -22,7 +20,7 @@ Toast.makeText(context, markdown, Toast.LENGTH_LONG).show(); ## Longer one -When you need to customize markdown parsing/rendering you can use [SpannableConfiguration](/docs/v2/configure.md): +When you need to customize markdown parsing/rendering you can use [SpannableConfiguration](/docs/configure.md): ```java final SpannableConfiguration configuration = SpannableConfiguration.builder(context) diff --git a/docs/docs/v2/html.md b/docs/docs/html.md similarity index 99% rename from docs/docs/v2/html.md rename to docs/docs/html.md index bb5e8e59..6130db36 100644 --- a/docs/docs/v2/html.md +++ b/docs/docs/html.md @@ -1,5 +1,3 @@ - - # HTML Starting with version `2.0.0` `Markwon` brings the whole HTML parsing/rendering diff --git a/docs/docs/v2/image-loader.md b/docs/docs/image-loader.md similarity index 98% rename from docs/docs/v2/image-loader.md rename to docs/docs/image-loader.md index c64bbe36..ca79337e 100644 --- a/docs/docs/v2/image-loader.md +++ b/docs/docs/image-loader.md @@ -1,5 +1,3 @@ - - # Images By default `Markwon` doesn't handle images. Although `AsyncDrawable.Loader` is @@ -23,7 +21,7 @@ public interface Loader { `AsyncDrawableLoader` from `markwon-image-loader` artifact can be used. :::tip Install -[Learn how to add](/docs/v2/README.md#image-loader) `markwon-image-loader` to your project +[Learn how to add](/docs/install.md#image-loader) `markwon-image-loader` to your project ::: Default instance of `AsyncDrawableLoader` can be obtain like this: diff --git a/docs/docs/install.md b/docs/docs/install.md index d1bf8593..3b4c735c 100644 --- a/docs/docs/install.md +++ b/docs/docs/install.md @@ -1,73 +1,89 @@ --- prev: false -next: /docs/core/getting-started.md +next: /docs/getting-started.md --- # Installation -![release](https://img.shields.io/maven-central/v/ru.noties.markwon/core.svg?label=release) -![snapshot](https://img.shields.io/nexus/s/https/oss.sonatype.org/ru.noties.markwon/core.svg?label=snapshot) + - - -# Bundle -If you wish to include all Markwon artifacts or add specific artifacts -in a different manner than explicit gradle dependency definition, you can -use `markwon-bundle.gradle` gradle script: - -*(in your `build.gradle`)* -```groovy -apply plugin: 'com.android.application' -apply from: 'https://raw.githubusercontent.com/noties/Markwon/master/markwon-bundle.gradle' - -android { /* */ } - -ext.markwon = [ - 'version': '3.0.0', - 'includeAll': true -] - -dependencies { /* */ } -``` - -`markwon` object can have these properties: -* `version` - (required) version of `Markwon` -* `includeAll` - if _true_ will add all known Markwon artifacts. Can be used with `exclude` -* * `exclude` - an array of artifacts to _exclude_ (cannot exclude `core`) -* `artifacts` - an array of artifacts (can omit `core`, as it will be added implicitly anyway) - -If `includeAll` property is present and is `true`, then `artifacts` property won't be used. -If there is no `includeAll` property or if it is `false`, `exclude` property won't be used. - -These 2 markwon objects are equal: +In order to start using `Markwon` add this to your dependencies block +in your projects `build.gradle`: ```groovy -// #1 -ext.markwon = [ - 'version': '3.0.0', - 'artifacts': [ - 'ext-latex', - 'ext-strikethrough', - 'ext-tables', - 'ext-tasklist', - 'html', - 'image-gif', - 'image-okhttp', - 'image-svg', - 'recycler', - 'syntax-highlight' - ] -] - -// #2 -ext.markwon = [ - 'version': '3.0.0', - 'includeAll': true -] +implementation "ru.noties:markwon:${markwonVersion}" ``` +This is core artifact that is sufficient to start displaying markdown in your Android applications. + +`Markwon` comes with more artifacts that cover additional functionality, but they are +**not** required to be used, as most of them provide implementations for functionality +that is _interfaced_ in the core artifact + +```groovy +implementation "ru.noties:markwon-image-loader:${markwonVersion}" +implementation "ru.noties:markwon-syntax-highlight:${markwonVersion}" +implementation "ru.noties:markwon-view:${markwonVersion}" +``` + +These artifacts share the same _version_ as the core artifact + +### Image loader + +```groovy +implementation "ru.noties:markwon-image-loader:${markwonVersion}" +``` + +Provides implementation of `AsyncDrawable.Loader` and comes with support for: +* SVG +* GIF +* Other image formats + +Please refer to documentation for [image loader](/docs/image-loader.md) module + +### Syntax highlight + +```groovy +implementation "ru.noties:markwon-syntax-highlight:${markwonVersion}" +``` + +Provides implementation of `SyntaxHighlight` and allows various syntax highlighting +in your markdown based Android applications. Comes with 2 ready-to-be-used themes: `light` and `dark`. +Please refer to documentation for [syntax highlight](/docs/syntax-highlight.md) module + +### View + +```groovy +implementation "ru.noties:markwon-view:${markwonVersion}" +``` + +Provides 2 widgets to display markdown: `MarkwonView` and `MarkwonViewCompat` (subclasses +of `TextView` and `AppCompatTextView` respectively). +Please refer to documentation for [view](/docs/view.md) module + +## Proguard + +When using `markwon-image-loader` artifact and Proguard is enabled, add these rules +to your proguard configuration: + +```proguard +-dontwarn okhttp3.** +-dontwarn okio.** + +-keep class com.caverock.androidsvg.** { *; } +-dontwarn com.caverock.androidsvg.** +``` + +They come from dependencies that `markwon-image-loader` is using. + +:::tip Other artifacts +Other artifacts do not require special Proguard rules +::: + ## Snapshot +![markwon-snapshot](https://img.shields.io/nexus/s/https/oss.sonatype.org/ru.noties/markwon.svg?label=markwon) + In order to use latest `SNAPSHOT` version add snapshot repository to your root project's `build.gradle` file: @@ -76,13 +92,18 @@ allprojects { repositories { jcenter() google() - maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } // <- this one + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } } ``` -:::tip Info -All official artifacts share the same version number and all -are uploaded to **release** and **snapshot** repositories -::: +and then in your module `build.gradle`: + +```groovy +implementation "ru.noties:markwon:${markwonSnapshotVersion}" +``` + +Please note that `markwon-image-loader`, `markwon-syntax-highlight` +and `markwon-view` are also present in `SNAPSHOT` repository and +share the same version as main `markwon` artifact. diff --git a/docs/docs/v2/syntax-highlight.md b/docs/docs/syntax-highlight.md similarity index 98% rename from docs/docs/v2/syntax-highlight.md rename to docs/docs/syntax-highlight.md index 4aa1795e..854b82b0 100644 --- a/docs/docs/v2/syntax-highlight.md +++ b/docs/docs/syntax-highlight.md @@ -1,5 +1,3 @@ - - # Syntax highlight diff --git a/docs/docs/v2/theme.md b/docs/docs/theme.md similarity index 98% rename from docs/docs/v2/theme.md rename to docs/docs/theme.md index b0cdbe8a..4612a63d 100644 --- a/docs/docs/v2/theme.md +++ b/docs/docs/theme.md @@ -1,9 +1,7 @@ - - # Theme Here is the list of properties that can be configured via `SpannableTheme`. If you wish to control what -is out of this list, you can use [SpannableFactory](/docs/v2/factory.md) +is out of this list, you can use [SpannableFactory](/docs/factory.md) abstraction which lets you to gather full control of Spans that are used to display markdown. * `SpannableTheme#create(Context)` - creates a **default** instance of `SpannableBuilder (with _defaults_ registered) diff --git a/docs/docs/v2/README.md b/docs/docs/v2/README.md deleted file mode 100644 index eab25066..00000000 --- a/docs/docs/v2/README.md +++ /dev/null @@ -1,79 +0,0 @@ - - -# Installation - - - -In order to start using `Markwon` add this to your dependencies block -in your projects `build.gradle`: - -```groovy -implementation "ru.noties:markwon:${markwonVersion}" -``` - -This is core artifact that is sufficient to start displaying markdown in your Android applications. - -`Markwon` comes with more artifacts that cover additional functionality, but they are -**not** required to be used, as most of them provide implementations for functionality -that is _interfaced_ in the core artifact - -```groovy -implementation "ru.noties:markwon-image-loader:${markwonVersion}" -implementation "ru.noties:markwon-syntax-highlight:${markwonVersion}" -implementation "ru.noties:markwon-view:${markwonVersion}" -``` - -These artifacts share the same _version_ as the core artifact - -### Image loader - -```groovy -implementation "ru.noties:markwon-image-loader:${markwonVersion}" -``` - -Provides implementation of `AsyncDrawable.Loader` and comes with support for: -* SVG -* GIF -* Other image formats - -Please refer to documentation for [image loader](/docs/v2/image-loader.md) module - -### Syntax highlight - -```groovy -implementation "ru.noties:markwon-syntax-highlight:${markwonVersion}" -``` - -Provides implementation of `SyntaxHighlight` and allows various syntax highlighting -in your markdown based Android applications. Comes with 2 ready-to-be-used themes: `light` and `dark`. -Please refer to documentation for [syntax highlight](/docs/v2/syntax-highlight.md) module - -### View - -```groovy -implementation "ru.noties:markwon-view:${markwonVersion}" -``` - -Provides 2 widgets to display markdown: `MarkwonView` and `MarkwonViewCompat` (subclasses -of `TextView` and `AppCompatTextView` respectively). -Please refer to documentation for [view](/docs/v2/view.md) module - -## Proguard - -When using `markwon-image-loader` artifact and Proguard is enabled, add these rules -to your proguard configuration: - -```proguard --dontwarn okhttp3.** --dontwarn okio.** - --keep class com.caverock.androidsvg.** { *; } --dontwarn com.caverock.androidsvg.** -``` - -They come from dependencies that `markwon-image-loader` is using. - -:::tip Other artifacts -Other artifacts do not require special Proguard rules -::: - diff --git a/docs/docs/v3/README.md b/docs/docs/v3/README.md new file mode 100644 index 00000000..a406b6e1 --- /dev/null +++ b/docs/docs/v3/README.md @@ -0,0 +1,72 @@ +--- +title: 'Introduction' +--- + +Markwon Logo + +

+[![markwon](https://img.shields.io/maven-central/v/ru.noties.markwon/core.svg?label=markwon)](http://search.maven.org/#search|ga|1|g%3A%22ru.noties.markwon%22%20) +[![Build Status](https://travis-ci.org/noties/Markwon.svg?branch=master)](https://travis-ci.org/noties/Markwon) + +**Markwon** is a markdown library for Android. It parses markdown following + with the help of amazing library +and renders result as _Android-native_ Spannables. **No HTML** is involved +as an intermediate step. **No WebView** is required. It's extremely fast, +feature-rich and extensible. + +It gives ability to display markdown in all TextView widgets (**TextView**, +**Button**, **Switch**, **CheckBox**, etc), **Toasts** and all other places that accept +**Spanned content**. Library provides reasonable defaults to display style of a markdown content +but also gives all the means to tweak the appearance if desired. All markdown features +listed in are supported (including support for **inlined/block HTML code**, +**markdown tables**, **images** and **syntax highlight**). + +## Supported markdown features + +* Emphasis (`*`, `_`) +* Strong emphasis (`**`, `__`) +* Headers (`#{1,6}`) +* Links (`[]()` && `[][]`) +* [Images](/docs/v3/core/images.md) +* Thematic break (`---`, `***`, `___`) +* Quotes & nested quotes (`>{1,}`) +* Ordered & non-ordered lists & nested ones +* Inline code +* Code blocks +* [Strike-through](/docs/v3/ext-strikethrough/) (`~~`) +* [Tables](/docs/v3/ext-tables/) (*with limitations*) +* [Syntax highlight](/docs/v3/syntax-highlight/) +* [LaTeX](/docs/v3/ext-latex/) formulas +* [HTML](/docs/v3/html/) + * Emphasis (``, ``, ``, ``) + * Strong emphasis (``, ``) + * SuperScript (``) + * SubScript (``) + * Underline (``, `ins`) + * Strike-through (``, ``, ``) + * Link (`a`) + * Lists (`ul`, `ol`) + * Images (`img` will require configured image loader) + * Blockquote (`blockquote`) + * Heading (`h1`, `h2`, `h3`, `h4`, `h5`, `h6`) + * there is support to render any HTML tag, but it will require to create a special `TagHandler`, + more information can be found in [HTML section](/docs/v3/html/custom-tag-handler.md) +* [Task lists](/docs/v3/ext-tasklist/): +- [ ] Not _done_ + - [X] **Done** with `X` + - [x] ~~and~~ **or** small `x` + +## Screenshots + +screenshot light #1 +screenshot light #2 +screenshot light #3 +screenshot dark #2 + +By default configuration uses TextView textColor for styling, so changing textColor changes style + +:::tip Sample application +Screenshots are taken from sample application. It is a generic markdown viewer +with support to display markdown content via `http`, `https` & `file` schemes +and 2 themes included: Light & Dark. It can be downloaded from [releases](https://github.com/noties/Markwon/releases) +::: diff --git a/docs/docs/core/configuration.md b/docs/docs/v3/core/configuration.md similarity index 100% rename from docs/docs/core/configuration.md rename to docs/docs/v3/core/configuration.md diff --git a/docs/docs/core/core-plugin.md b/docs/docs/v3/core/core-plugin.md similarity index 97% rename from docs/docs/core/core-plugin.md rename to docs/docs/v3/core/core-plugin.md index 13802825..e6da8eab 100644 --- a/docs/docs/core/core-plugin.md +++ b/docs/docs/v3/core/core-plugin.md @@ -98,6 +98,6 @@ final Markwon markwon = Markwon.builder(this) :::warning Please note that `CorePlugin` will implicitly set a `LinkMovementMethod` on a TextView if one is not present. If you wish to customize a MovementMethod that is used, apply -one manually to a TextView (before applying markdown) or use the [MovementMethodPlugin](/docs/core/movement-method-plugin.md) +one manually to a TextView (before applying markdown) or use the [MovementMethodPlugin](/docs/v3/core/movement-method-plugin.md) which accepts a MovementMethod as an argument. ::: \ No newline at end of file diff --git a/docs/docs/core/getting-started.md b/docs/docs/v3/core/getting-started.md similarity index 89% rename from docs/docs/core/getting-started.md rename to docs/docs/v3/core/getting-started.md index 26bc5137..652cfb7c 100644 --- a/docs/docs/core/getting-started.md +++ b/docs/docs/v3/core/getting-started.md @@ -1,7 +1,7 @@ # Getting started :::tip Installation -Please follow [installation](/docs/install.md) instructions +Please follow [installation](/docs/v3/install.md) instructions to learn how to add `Markwon` to your project ::: @@ -33,7 +33,7 @@ Toast.makeText(context, markdown, Toast.LENGTH_LONG).show(); :::warning 3.x.x migration Starting with version Markwon no longer relies on static utility methods. To learn more about migrating existing applications -refer to [migration](/docs/migration-2-3.md) section. +refer to [migration](/docs/v3/migration-2-3.md) section. ::: ## Longer one @@ -62,4 +62,4 @@ Toast.makeText(context, markdown, Toast.LENGTH_LONG).show(); This section is kept due to historical reasons. Starting with version the amount of magic is reduced. To leverage your `Markwon` usage a concept of `Plugin` is introduced which helps to extend default behavior in a simple and _no-breaking-the-flow_ manner. -Head to the [next section](/docs/core/plugins.md) to know more. +Head to the [next section](/docs/v3/core/plugins.md) to know more. diff --git a/docs/docs/core/html-renderer.md b/docs/docs/v3/core/html-renderer.md similarity index 100% rename from docs/docs/core/html-renderer.md rename to docs/docs/v3/core/html-renderer.md diff --git a/docs/docs/core/images.md b/docs/docs/v3/core/images.md similarity index 95% rename from docs/docs/core/images.md rename to docs/docs/v3/core/images.md index 4450f6ad..b2f93c05 100644 --- a/docs/docs/core/images.md +++ b/docs/docs/v3/core/images.md @@ -2,7 +2,7 @@ Starting with `Markwon` comes with `ImagesPlugin` which supports `http(s)`, `file` and `data` schemes and default media -decoder (for simple images, no [SVG](/docs/image/svg.md) or [GIF](/docs/image/gif.md) which +decoder (for simple images, no [SVG](/docs/v3/image/svg.md) or [GIF](/docs/v3/image/gif.md) which are defined in standalone modules). ## ImagesPlugin @@ -114,7 +114,7 @@ be used. ## MediaDecoder :::tip -If you are using [html](/docs/html/) you do not have to additionally setup +If you are using [html](/docs/v3/html/) you do not have to additionally setup images displayed via `` tag, as `HtmlPlugin` automatically uses configured image loader. But images referenced in HTML come with additional support for sizes, which is not supported natively by markdown, allowing absolute or relative sizes: diff --git a/docs/docs/core/movement-method-plugin.md b/docs/docs/v3/core/movement-method-plugin.md similarity index 100% rename from docs/docs/core/movement-method-plugin.md rename to docs/docs/v3/core/movement-method-plugin.md diff --git a/docs/docs/core/plugins.md b/docs/docs/v3/core/plugins.md similarity index 98% rename from docs/docs/core/plugins.md rename to docs/docs/v3/core/plugins.md index e054d108..32e4c51b 100644 --- a/docs/docs/core/plugins.md +++ b/docs/docs/v3/core/plugins.md @@ -87,7 +87,7 @@ added CorePlugin _explicitly_ as `AbstractMarkwonPlugin` declares a dependency o If it's not desireable override `AbstractMarkwonPlugin#priority` method to specify own rules. ::: -More information about `MarkwonTheme` can be found [here](/docs/core/theme.md). +More information about `MarkwonTheme` can be found [here](/docs/v3/core/theme.md). ## Images @@ -126,7 +126,7 @@ Markwon.builder(context) Without explicit usage of `ImagesPlugin` all image configuration will be ignored (no-op'ed) ::: -More information about dealing with images can be found [here](/docs/core/images.md) +More information about dealing with images can be found [here](/docs/v3/core/images.md) ## Configuration @@ -152,7 +152,7 @@ final Markwon markwon = Markwon.builder(context) .build(); ``` -More information about `MarkwonConfiguration` can be found [here](/docs/core/configuration.md) +More information about `MarkwonConfiguration` can be found [here](/docs/v3/core/configuration.md) ## Visitor @@ -196,7 +196,7 @@ Please note that `Priority` plays nicely here to ensure that your custom Node override/disable happens _after_ some plugin defines it. ::: -More information about `MarkwonVisitor` can be found [here](/docs/core/visitor.md) +More information about `MarkwonVisitor` can be found [here](/docs/v3/core/visitor.md) ## Spans Factory @@ -237,7 +237,7 @@ public Object getSpans(@NonNull MarkwonConfiguration configuration, @NonNull Ren ``` ::: -More information about spans factory can be found [here](/docs/core/spans-factory.md) +More information about spans factory can be found [here](/docs/v3/core/spans-factory.md) ## HTML Renderer @@ -276,7 +276,7 @@ project **explicitly** and then registered via `Markwon.Builder#usePlugin(HtmlPl If not done so, no HTML will be parsed nor rendered. ::: -More information about HTML rendering can be found [here](/docs/core/html-renderer.md) +More information about HTML rendering can be found [here](/docs/v3/core/html-renderer.md) ## Priority diff --git a/docs/docs/core/spans-factory.md b/docs/docs/v3/core/spans-factory.md similarity index 100% rename from docs/docs/core/spans-factory.md rename to docs/docs/v3/core/spans-factory.md diff --git a/docs/docs/core/theme.md b/docs/docs/v3/core/theme.md similarity index 100% rename from docs/docs/core/theme.md rename to docs/docs/v3/core/theme.md diff --git a/docs/docs/core/visitor.md b/docs/docs/v3/core/visitor.md similarity index 100% rename from docs/docs/core/visitor.md rename to docs/docs/v3/core/visitor.md diff --git a/docs/docs/ext-latex/README.md b/docs/docs/v3/ext-latex/README.md similarity index 100% rename from docs/docs/ext-latex/README.md rename to docs/docs/v3/ext-latex/README.md diff --git a/docs/docs/ext-strikethrough/README.md b/docs/docs/v3/ext-strikethrough/README.md similarity index 100% rename from docs/docs/ext-strikethrough/README.md rename to docs/docs/v3/ext-strikethrough/README.md diff --git a/docs/docs/ext-tables/README.md b/docs/docs/v3/ext-tables/README.md similarity index 100% rename from docs/docs/ext-tables/README.md rename to docs/docs/v3/ext-tables/README.md diff --git a/docs/docs/ext-tasklist/README.md b/docs/docs/v3/ext-tasklist/README.md similarity index 100% rename from docs/docs/ext-tasklist/README.md rename to docs/docs/v3/ext-tasklist/README.md diff --git a/docs/docs/html/README.md b/docs/docs/v3/html/README.md similarity index 100% rename from docs/docs/html/README.md rename to docs/docs/v3/html/README.md diff --git a/docs/docs/html/custom-tag-handler.md b/docs/docs/v3/html/custom-tag-handler.md similarity index 100% rename from docs/docs/html/custom-tag-handler.md rename to docs/docs/v3/html/custom-tag-handler.md diff --git a/docs/docs/image/gif.md b/docs/docs/v3/image/gif.md similarity index 100% rename from docs/docs/image/gif.md rename to docs/docs/v3/image/gif.md diff --git a/docs/docs/image/okhttp.md b/docs/docs/v3/image/okhttp.md similarity index 100% rename from docs/docs/image/okhttp.md rename to docs/docs/v3/image/okhttp.md diff --git a/docs/docs/image/svg.md b/docs/docs/v3/image/svg.md similarity index 100% rename from docs/docs/image/svg.md rename to docs/docs/v3/image/svg.md diff --git a/docs/docs/v3/install.md b/docs/docs/v3/install.md new file mode 100644 index 00000000..93b6de88 --- /dev/null +++ b/docs/docs/v3/install.md @@ -0,0 +1,90 @@ +--- +prev: false +next: /docs/v3/core/getting-started.md +--- + +# Installation + +![release](https://img.shields.io/maven-central/v/ru.noties.markwon/core.svg?label=release) +![snapshot](https://img.shields.io/nexus/s/https/oss.sonatype.org/ru.noties.markwon/core.svg?label=snapshot) + + + +# Bundle +If you wish to include all Markwon artifacts or add specific artifacts +in a different manner than explicit gradle dependency definition, you can +use `markwon-bundle.gradle` gradle script: + +*(in your `build.gradle`)* +```groovy +apply plugin: 'com.android.application' +apply from: 'https://raw.githubusercontent.com/noties/Markwon/master/markwon-bundle.gradle' + +android { /* */ } + +ext.markwon = [ + 'version': '3.0.0', + 'includeAll': true +] + +dependencies { /* */ } +``` + +`markwon` object can have these properties: +* `version` - (required) version of `Markwon` +* `includeAll` - if _true_ will add all known Markwon artifacts. Can be used with `exclude` +* * `exclude` - an array of artifacts to _exclude_ (cannot exclude `core`) +* `artifacts` - an array of artifacts (can omit `core`, as it will be added implicitly anyway) + +If `includeAll` property is present and is `true`, then `artifacts` property won't be used. +If there is no `includeAll` property or if it is `false`, `exclude` property won't be used. + +These 2 markwon objects are equal: + +```groovy +// #1 +ext.markwon = [ + 'version': '3.0.0', + 'artifacts': [ + 'ext-latex', + 'ext-strikethrough', + 'ext-tables', + 'ext-tasklist', + 'html', + 'image-gif', + 'image-okhttp', + 'image-svg', + 'recycler', + 'syntax-highlight' + ] +] + +// #2 +ext.markwon = [ + 'version': '3.0.0', + 'includeAll': true +] +``` + +## Snapshot + +In order to use latest `SNAPSHOT` version add snapshot repository +to your root project's `build.gradle` file: + +```groovy +allprojects { + repositories { + jcenter() + google() + // this one 👇 + maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } // 👈 this one + // this one 👆 + } +} +``` + +:::tip Info +All official artifacts share the same version number and all +are uploaded to **release** and **snapshot** repositories +::: + diff --git a/docs/docs/migration-2-3.md b/docs/docs/v3/migration-2-3.md similarity index 74% rename from docs/docs/migration-2-3.md rename to docs/docs/v3/migration-2-3.md index 8ca12b36..fbaacba7 100644 --- a/docs/docs/migration-2-3.md +++ b/docs/docs/v3/migration-2-3.md @@ -5,4 +5,6 @@ * core functionality of `AsyncDrawableLoader` moved to `core` module * * Handling of GIF and SVG media moved to standalone modules (`gif` and `svg` respectively) * * OkHttpClient to download images moved to standalone module -* HTML no longer _implicitly_ added to core functionality, it must be specified __explicitly__ (as an artifact) \ No newline at end of file +* HTML no longer _implicitly_ added to core functionality, it must be specified __explicitly__ (as an artifact) +* removed `markwon-view` module +* changed Maven artifacts group to `ru.noties.markwon` \ No newline at end of file diff --git a/docs/docs/recycler/README.md b/docs/docs/v3/recycler/README.md similarity index 100% rename from docs/docs/recycler/README.md rename to docs/docs/v3/recycler/README.md diff --git a/docs/docs/syntax-highlight/README.md b/docs/docs/v3/syntax-highlight/README.md similarity index 100% rename from docs/docs/syntax-highlight/README.md rename to docs/docs/v3/syntax-highlight/README.md diff --git a/docs/docs/v2/view.md b/docs/docs/view.md similarity index 98% rename from docs/docs/v2/view.md rename to docs/docs/view.md index c365fd42..bd610344 100644 --- a/docs/docs/v2/view.md +++ b/docs/docs/view.md @@ -1,5 +1,3 @@ - - # MarkwonView diff --git a/docs/donate.md b/docs/donate.md deleted file mode 100644 index 12b79839..00000000 --- a/docs/donate.md +++ /dev/null @@ -1,7 +0,0 @@ -# Donations - -If you find this library useful consider making a donation -to your local [environmental](https://en.wikipedia.org/wiki/List_of_environmental_organizations) -or [human rights](https://en.wikipedia.org/wiki/List_of_human_rights_organisations) organization. - -Thank you \ No newline at end of file