From fe3d5676196d4c93c85f0d8646d9b3796d6960fb Mon Sep 17 00:00:00 2001 From: Dimitry Ivanov Date: Wed, 18 Mar 2020 14:20:58 +0300 Subject: [PATCH] Prepare 4.3.0 release --- docs/docs/v4/core/visitor.md | 29 +++++++++++ docs/docs/v4/inline-parser/README.md | 10 ++++ gradle.properties | 2 +- .../io/noties/markwon/BlockHandlerDef.java | 2 +- .../io/noties/markwon/LinkResolverDef.java | 4 +- .../io/noties/markwon/MarkwonVisitor.java | 8 +-- .../io/noties/markwon/MarkwonVisitorImpl.java | 4 +- .../markwon/SoftBreakAddsNewLinePlugin.java | 2 +- .../noties/markwon/image/AsyncDrawable.java | 2 +- .../ext/latex/JLatexAsyncDrawableSpan.java | 2 +- .../latex/JLatexInlineAsyncDrawableSpan.java | 2 +- .../ext/latex/JLatexMathBlockParser.java | 2 +- .../latex/JLatexMathBlockParserLegacy.java | 2 +- .../ext/latex/JLatexMathInlineProcessor.java | 2 +- .../markwon/ext/latex/JLatexMathNode.java | 2 +- .../markwon/ext/latex/JLatexMathPlugin.java | 36 ++++++------- .../markwon/ext/latex/JLatexMathTheme.java | 4 +- .../ext/latex/JLatextAsyncDrawable.java | 2 +- .../MarkwonInlineParserPlugin.java | 2 +- .../noties/markwon/linkify/LinkifyPlugin.java | 8 +-- release-management.md | 6 ++- .../basicplugins/BasicPluginsActivity.java | 34 ++++++------- .../inlineparser/InlineParserActivity.java | 51 ++++++++++++++++++- .../markwon/sample/latex/LatexActivity.java | 2 +- 24 files changed, 156 insertions(+), 64 deletions(-) diff --git a/docs/docs/v4/core/visitor.md b/docs/docs/v4/core/visitor.md index d03ff848..6a0591ce 100644 --- a/docs/docs/v4/core/visitor.md +++ b/docs/docs/v4/core/visitor.md @@ -70,4 +70,33 @@ public void configureVisitor(@NonNull MarkwonVisitor.Builder builder) { } }); } +``` + +### BlockHandler + +Since there is class to control insertions of new lines after markdown blocks +`BlockHandler` (`MarkwonVisitor.BlockHandler`) and its default implementation `BlockHandlerDef`. For example, +to disable an empty new line after `Heading`: + +```java +final Markwon markwon = Markwon.builder(this) + .usePlugin(new AbstractMarkwonPlugin() { + @Override + public void configureVisitor(@NonNull MarkwonVisitor.Builder builder) { + builder.blockHandler(new BlockHandlerDef() { + @Override + public void blockEnd(@NonNull MarkwonVisitor visitor, @NonNull Node node) { + if (node instanceof Heading) { + if (visitor.hasNext(node)) { + visitor.ensureNewLine(); + // ensure new line but do not force insert one + } + } else { + super.blockEnd(visitor, node); + } + } + }); + } + }) + .build(); ``` \ No newline at end of file diff --git a/docs/docs/v4/inline-parser/README.md b/docs/docs/v4/inline-parser/README.md index e9638832..67fa4de4 100644 --- a/docs/docs/v4/inline-parser/README.md +++ b/docs/docs/v4/inline-parser/README.md @@ -3,6 +3,16 @@ **Experimental** commonmark-java inline parser that allows customizing core features and/or extend with own. +:::tip +Since there is also `MarkwonInlineParserPlugin` which can be used +to allow other plugins to customize inline parser +```java +final Markwon markwon = Markwon.builder(this) + .usePlugin(MarkwonInlineParserPlugin.create()) + .build(); +``` +::: + Usage of _internal_ classes: ```java import org.commonmark.internal.Bracket; diff --git a/gradle.properties b/gradle.properties index a1dd08b9..f74f7775 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ android.enableJetifier=true android.enableBuildCache=true android.buildCacheDir=build/pre-dex-cache -VERSION_NAME=4.3.0-SNAPSHOT +VERSION_NAME=4.3.0 GROUP=io.noties.markwon POM_DESCRIPTION=Markwon markdown for Android diff --git a/markwon-core/src/main/java/io/noties/markwon/BlockHandlerDef.java b/markwon-core/src/main/java/io/noties/markwon/BlockHandlerDef.java index 0c5b3b49..58567f43 100644 --- a/markwon-core/src/main/java/io/noties/markwon/BlockHandlerDef.java +++ b/markwon-core/src/main/java/io/noties/markwon/BlockHandlerDef.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; import org.commonmark.node.Node; /** - * @since $nap; + * @since 4.3.0 */ public class BlockHandlerDef implements MarkwonVisitor.BlockHandler { @Override diff --git a/markwon-core/src/main/java/io/noties/markwon/LinkResolverDef.java b/markwon-core/src/main/java/io/noties/markwon/LinkResolverDef.java index 44c5da9c..5882613f 100644 --- a/markwon-core/src/main/java/io/noties/markwon/LinkResolverDef.java +++ b/markwon-core/src/main/java/io/noties/markwon/LinkResolverDef.java @@ -13,7 +13,7 @@ import androidx.annotation.NonNull; public class LinkResolverDef implements LinkResolver { - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 private static final String DEFAULT_SCHEME = "https"; @Override @@ -30,7 +30,7 @@ public class LinkResolverDef implements LinkResolver { } /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ @NonNull private static Uri parseLink(@NonNull String link) { diff --git a/markwon-core/src/main/java/io/noties/markwon/MarkwonVisitor.java b/markwon-core/src/main/java/io/noties/markwon/MarkwonVisitor.java index f9c4554c..2f69acf6 100644 --- a/markwon-core/src/main/java/io/noties/markwon/MarkwonVisitor.java +++ b/markwon-core/src/main/java/io/noties/markwon/MarkwonVisitor.java @@ -27,7 +27,7 @@ public interface MarkwonVisitor extends Visitor { * Primary purpose is to control the spacing applied before/after certain blocks, which * visitors are created elsewhere * - * @since $nap; + * @since 4.3.0 */ interface BlockHandler { @@ -50,7 +50,7 @@ public interface MarkwonVisitor extends Visitor { * @param blockHandler to handle block start/end * @see BlockHandler * @see BlockHandlerDef - * @since $nap; + * @since 4.3.0 */ @SuppressWarnings("UnusedReturnValue") @NonNull @@ -158,12 +158,12 @@ public interface MarkwonVisitor extends Visitor { void setSpansForNodeOptional(@NonNull Class node, int start); /** - * @since $nap; + * @since 4.3.0 */ void blockStart(@NonNull Node node); /** - * @since $nap; + * @since 4.3.0 */ void blockEnd(@NonNull Node node); } diff --git a/markwon-core/src/main/java/io/noties/markwon/MarkwonVisitorImpl.java b/markwon-core/src/main/java/io/noties/markwon/MarkwonVisitorImpl.java index bd32352e..ce116111 100644 --- a/markwon-core/src/main/java/io/noties/markwon/MarkwonVisitorImpl.java +++ b/markwon-core/src/main/java/io/noties/markwon/MarkwonVisitorImpl.java @@ -45,7 +45,7 @@ class MarkwonVisitorImpl implements MarkwonVisitor { private final Map, NodeVisitor> nodes; - // @since $nap; + // @since 4.3.0 private final BlockHandler blockHandler; MarkwonVisitorImpl( @@ -316,7 +316,7 @@ class MarkwonVisitorImpl implements MarkwonVisitor { @NonNull @Override public MarkwonVisitor build(@NonNull MarkwonConfiguration configuration, @NonNull RenderProps renderProps) { - // @since $nap; + // @since 4.3.0 BlockHandler blockHandler = this.blockHandler; if (blockHandler == null) { blockHandler = new BlockHandlerDef(); diff --git a/markwon-core/src/main/java/io/noties/markwon/SoftBreakAddsNewLinePlugin.java b/markwon-core/src/main/java/io/noties/markwon/SoftBreakAddsNewLinePlugin.java index f1aff45d..9c7572fb 100644 --- a/markwon-core/src/main/java/io/noties/markwon/SoftBreakAddsNewLinePlugin.java +++ b/markwon-core/src/main/java/io/noties/markwon/SoftBreakAddsNewLinePlugin.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; import org.commonmark.node.SoftLineBreak; /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ public class SoftBreakAddsNewLinePlugin extends AbstractMarkwonPlugin { diff --git a/markwon-core/src/main/java/io/noties/markwon/image/AsyncDrawable.java b/markwon-core/src/main/java/io/noties/markwon/image/AsyncDrawable.java index 935313d5..8447110a 100644 --- a/markwon-core/src/main/java/io/noties/markwon/image/AsyncDrawable.java +++ b/markwon-core/src/main/java/io/noties/markwon/image/AsyncDrawable.java @@ -274,7 +274,7 @@ public class AsyncDrawable extends Drawable { } /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ @NonNull private static Rect noDimensionsBounds(@Nullable Drawable result) { diff --git a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexAsyncDrawableSpan.java b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexAsyncDrawableSpan.java index 799aaf37..fa08ba0c 100644 --- a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexAsyncDrawableSpan.java +++ b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexAsyncDrawableSpan.java @@ -15,7 +15,7 @@ import ru.noties.jlatexmath.JLatexMathDrawable; import ru.noties.jlatexmath.awt.Color; /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ public class JLatexAsyncDrawableSpan extends AsyncDrawableSpan { diff --git a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexInlineAsyncDrawableSpan.java b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexInlineAsyncDrawableSpan.java index 09fdd553..0edda9d3 100644 --- a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexInlineAsyncDrawableSpan.java +++ b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexInlineAsyncDrawableSpan.java @@ -12,7 +12,7 @@ import io.noties.markwon.core.MarkwonTheme; import io.noties.markwon.image.AsyncDrawable; /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ class JLatexInlineAsyncDrawableSpan extends JLatexAsyncDrawableSpan { diff --git a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathBlockParser.java b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathBlockParser.java index 0d1653c6..cf212e32 100644 --- a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathBlockParser.java +++ b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathBlockParser.java @@ -12,7 +12,7 @@ import org.commonmark.parser.block.MatchedBlockParser; import org.commonmark.parser.block.ParserState; /** - * @since 4.3.0-SNAPSHOT (although there was a class with the same name, + * @since 4.3.0 (although there was a class with the same name, * which is renamed now to {@link JLatexMathBlockParserLegacy}) */ class JLatexMathBlockParser extends AbstractBlockParser { diff --git a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathBlockParserLegacy.java b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathBlockParserLegacy.java index 2506ca21..9b4565bc 100644 --- a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathBlockParserLegacy.java +++ b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathBlockParserLegacy.java @@ -9,7 +9,7 @@ import org.commonmark.parser.block.MatchedBlockParser; import org.commonmark.parser.block.ParserState; /** - * @since 4.3.0-SNAPSHOT (although it is just renamed parser from previous versions) + * @since 4.3.0 (although it is just renamed parser from previous versions) */ class JLatexMathBlockParserLegacy extends AbstractBlockParser { diff --git a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathInlineProcessor.java b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathInlineProcessor.java index 364e8d54..d368778c 100644 --- a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathInlineProcessor.java +++ b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathInlineProcessor.java @@ -9,7 +9,7 @@ import java.util.regex.Pattern; import io.noties.markwon.inlineparser.InlineProcessor; /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ class JLatexMathInlineProcessor extends InlineProcessor { diff --git a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathNode.java b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathNode.java index db7029a9..46948cc5 100644 --- a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathNode.java +++ b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathNode.java @@ -3,7 +3,7 @@ package io.noties.markwon.ext.latex; import org.commonmark.node.CustomNode; /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ public class JLatexMathNode extends CustomNode { diff --git a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathPlugin.java b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathPlugin.java index f39b53af..87456358 100644 --- a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathPlugin.java +++ b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathPlugin.java @@ -40,7 +40,7 @@ import ru.noties.jlatexmath.JLatexMathDrawable; public class JLatexMathPlugin extends AbstractMarkwonPlugin { /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ public interface ErrorHandler { @@ -64,7 +64,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { } /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ @NonNull public static JLatexMathPlugin create(@Px float inlineTextSize, @Px float blockTextSize) { @@ -84,7 +84,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { } /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ @NonNull public static JLatexMathPlugin create( @@ -102,7 +102,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { } /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ @NonNull public static JLatexMathPlugin.Builder builder(@Px float inlineTextSize, @Px float blockTextSize) { @@ -112,15 +112,15 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { @VisibleForTesting static class Config { - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 final JLatexMathTheme theme; - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 final boolean blocksEnabled; final boolean blocksLegacy; final boolean inlinesEnabled; - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 final ErrorHandler errorHandler; final ExecutorService executorService; @@ -166,7 +166,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { @Override public void configureParser(@NonNull Parser.Builder builder) { - // @since $nap; + // @since 4.3.0 if (config.blocksEnabled) { if (config.blocksLegacy) { builder.customBlockParserFactory(new JLatexMathBlockParserLegacy.Factory()); @@ -278,15 +278,15 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { @SuppressWarnings({"unused", "UnusedReturnValue"}) public static class Builder { - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 private final JLatexMathTheme.Builder theme; - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 private boolean blocksEnabled = true; private boolean blocksLegacy; private boolean inlinesEnabled; - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 private ErrorHandler errorHandler; // @since 4.0.0 @@ -302,7 +302,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { } /** - * @since $nap; + * @since 4.3.0 */ @NonNull public Builder blocksEnabled(boolean blocksEnabled) { @@ -312,7 +312,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { /** * @param blocksLegacy indicates if blocks should be handled in legacy mode ({@code pre 4.3.0}) - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ @NonNull public Builder blocksLegacy(boolean blocksLegacy) { @@ -323,7 +323,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { /** * @param inlinesEnabled indicates if inline parsing should be enabled. * NB, this requires `MarkwonInlineParserPlugin` to be used when creating `MarkwonInstance` - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ @NonNull public Builder inlinesEnabled(boolean inlinesEnabled) { @@ -384,7 +384,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { try { execute(); } catch (Throwable t) { - // @since 4.3.0-SNAPSHOT add error handling + // @since 4.3.0 add error handling final ErrorHandler errorHandler = config.errorHandler; if (errorHandler == null) { // as before @@ -444,7 +444,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { return null; } - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 @NonNull private JLatexMathDrawable createBlockDrawable(@NonNull JLatextAsyncDrawable drawable) { @@ -476,7 +476,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { return builder.build(); } - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 @NonNull private JLatexMathDrawable createInlineDrawable(@NonNull JLatextAsyncDrawable drawable) { @@ -507,7 +507,7 @@ public class JLatexMathPlugin extends AbstractMarkwonPlugin { return builder.build(); } - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 private void setResult(@NonNull final AsyncDrawable drawable, @NonNull final Drawable result) { // we must post to handler, but also have a way to identify the drawable // for which we are posting (in case of cancellation) diff --git a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathTheme.java b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathTheme.java index e729060b..d882e9c1 100644 --- a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathTheme.java +++ b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatexMathTheme.java @@ -10,7 +10,7 @@ import androidx.annotation.Px; import ru.noties.jlatexmath.JLatexMathDrawable; /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ public abstract class JLatexMathTheme { @@ -35,7 +35,7 @@ public abstract class JLatexMathTheme { } /** - * Moved from {@link JLatexMathPlugin} in {@code 4.3.0-SNAPSHOT} version + * Moved from {@link JLatexMathPlugin} in {@code 4.3.0} version * * @since 4.0.0 */ diff --git a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatextAsyncDrawable.java b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatextAsyncDrawable.java index 4376d636..25c67262 100644 --- a/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatextAsyncDrawable.java +++ b/markwon-ext-latex/src/main/java/io/noties/markwon/ext/latex/JLatextAsyncDrawable.java @@ -9,7 +9,7 @@ import io.noties.markwon.image.ImageSize; import io.noties.markwon.image.ImageSizeResolver; /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ class JLatextAsyncDrawable extends AsyncDrawable { diff --git a/markwon-inline-parser/src/main/java/io/noties/markwon/inlineparser/MarkwonInlineParserPlugin.java b/markwon-inline-parser/src/main/java/io/noties/markwon/inlineparser/MarkwonInlineParserPlugin.java index ce80501b..470e2fb8 100644 --- a/markwon-inline-parser/src/main/java/io/noties/markwon/inlineparser/MarkwonInlineParserPlugin.java +++ b/markwon-inline-parser/src/main/java/io/noties/markwon/inlineparser/MarkwonInlineParserPlugin.java @@ -7,7 +7,7 @@ import org.commonmark.parser.Parser; import io.noties.markwon.AbstractMarkwonPlugin; /** - * @since 4.3.0-SNAPSHOT + * @since 4.3.0 */ public class MarkwonInlineParserPlugin extends AbstractMarkwonPlugin { diff --git a/markwon-linkify/src/main/java/io/noties/markwon/linkify/LinkifyPlugin.java b/markwon-linkify/src/main/java/io/noties/markwon/linkify/LinkifyPlugin.java index ec087741..ded176f6 100644 --- a/markwon-linkify/src/main/java/io/noties/markwon/linkify/LinkifyPlugin.java +++ b/markwon-linkify/src/main/java/io/noties/markwon/linkify/LinkifyPlugin.java @@ -42,7 +42,7 @@ public class LinkifyPlugin extends AbstractMarkwonPlugin { * @param useCompat If true, use {@link LinkifyCompat} to handle links. * Note that the {@link LinkifyCompat} depends on androidx.core:core, * the dependency must be added on a client side explicitly. - * @since 4.3.0-SNAPSHOT `useCompat` argument + * @since 4.3.0 `useCompat` argument */ @NonNull public static LinkifyPlugin create(boolean useCompat) { @@ -58,7 +58,7 @@ public class LinkifyPlugin extends AbstractMarkwonPlugin { * @param useCompat If true, use {@link LinkifyCompat} to handle links. * Note that the {@link LinkifyCompat} depends on androidx.core:core, * the dependency must be added on a client side explicitly. - * @since 4.3.0-SNAPSHOT `useCompat` argument + * @since 4.3.0 `useCompat` argument */ @NonNull public static LinkifyPlugin create(@LinkifyMask int mask, boolean useCompat) { @@ -80,7 +80,7 @@ public class LinkifyPlugin extends AbstractMarkwonPlugin { @Override public void apply(@NonNull CorePlugin corePlugin) { final LinkifyTextAddedListener listener; - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 if (useCompat) { listener = new LinkifyCompatTextAddedListener(mask); } else { @@ -140,7 +140,7 @@ public class LinkifyPlugin extends AbstractMarkwonPlugin { } } - // @since 4.3.0-SNAPSHOT + // @since 4.3.0 private static class LinkifyCompatTextAddedListener extends LinkifyTextAddedListener { LinkifyCompatTextAddedListener(int mask) { diff --git a/release-management.md b/release-management.md index 7338d9fc..ce66bb97 100644 --- a/release-management.md +++ b/release-management.md @@ -41,4 +41,8 @@ whenever a new API method/field/functionality-change is introduced (`snc`): @since $nap; ``` -This live template would be possible to use in both inline comment and javadoc comment. \ No newline at end of file +This live template would be possible to use in both inline comment and javadoc comment. + +## documentation + +If there are updates to documentation web site, do not forget to publish it \ No newline at end of file diff --git a/sample/src/main/java/io/noties/markwon/sample/basicplugins/BasicPluginsActivity.java b/sample/src/main/java/io/noties/markwon/sample/basicplugins/BasicPluginsActivity.java index db509be9..e8bb4761 100644 --- a/sample/src/main/java/io/noties/markwon/sample/basicplugins/BasicPluginsActivity.java +++ b/sample/src/main/java/io/noties/markwon/sample/basicplugins/BasicPluginsActivity.java @@ -323,26 +323,26 @@ public class BasicPluginsActivity extends ActivityWithMenuOptions { } private void headingNoSpaceBlockHandler() { - final Markwon markwon = Markwon.builder(this) - .usePlugin(new AbstractMarkwonPlugin() { +final Markwon markwon = Markwon.builder(this) + .usePlugin(new AbstractMarkwonPlugin() { + @Override + public void configureVisitor(@NonNull MarkwonVisitor.Builder builder) { + builder.blockHandler(new BlockHandlerDef() { @Override - public void configureVisitor(@NonNull MarkwonVisitor.Builder builder) { - builder.blockHandler(new BlockHandlerDef() { - @Override - public void blockEnd(@NonNull MarkwonVisitor visitor, @NonNull Node node) { - if (node instanceof Heading) { - if (visitor.hasNext(node)) { - visitor.ensureNewLine(); - // ensure new line but do not force insert one - } - } else { - super.blockEnd(visitor, node); - } + public void blockEnd(@NonNull MarkwonVisitor visitor, @NonNull Node node) { + if (node instanceof Heading) { + if (visitor.hasNext(node)) { + visitor.ensureNewLine(); + // ensure new line but do not force insert one } - }); + } else { + super.blockEnd(visitor, node); + } } - }) - .build(); + }); + } + }) + .build(); final String md = "" + "# Title title title title title title title title title title \n\ntext text text text"; diff --git a/sample/src/main/java/io/noties/markwon/sample/inlineparser/InlineParserActivity.java b/sample/src/main/java/io/noties/markwon/sample/inlineparser/InlineParserActivity.java index 833a63b1..4e7c87da 100644 --- a/sample/src/main/java/io/noties/markwon/sample/inlineparser/InlineParserActivity.java +++ b/sample/src/main/java/io/noties/markwon/sample/inlineparser/InlineParserActivity.java @@ -24,6 +24,7 @@ import io.noties.markwon.Markwon; import io.noties.markwon.inlineparser.BackticksInlineProcessor; import io.noties.markwon.inlineparser.CloseBracketInlineProcessor; import io.noties.markwon.inlineparser.MarkwonInlineParser; +import io.noties.markwon.inlineparser.MarkwonInlineParserPlugin; import io.noties.markwon.inlineparser.OpenBracketInlineProcessor; import io.noties.markwon.sample.ActivityWithMenuOptions; import io.noties.markwon.sample.MenuOptions; @@ -38,7 +39,9 @@ public class InlineParserActivity extends ActivityWithMenuOptions { public MenuOptions menuOptions() { return MenuOptions.create() .add("links_only", this::links_only) - .add("disable_code", this::disable_code); + .add("disable_code", this::disable_code) + .add("pluginWithDefaults", this::pluginWithDefaults) + .add("pluginNoDefaults", this::pluginNoDefaults); } @Override @@ -124,4 +127,50 @@ public class InlineParserActivity extends ActivityWithMenuOptions { "**Good day!**"; markwon.setMarkdown(textView, md); } + + private void pluginWithDefaults() { + // a plugin with defaults registered + + final String md = "no [links](#) for **you** `code`!"; + + final Markwon markwon = Markwon.builder(this) + .usePlugin(MarkwonInlineParserPlugin.create()) + // the same as: +// .usePlugin(MarkwonInlineParserPlugin.create(MarkwonInlineParser.factoryBuilder())) + .usePlugin(new AbstractMarkwonPlugin() { + @Override + public void configure(@NonNull Registry registry) { + registry.require(MarkwonInlineParserPlugin.class, plugin -> { + plugin.factoryBuilder() + .excludeInlineProcessor(OpenBracketInlineProcessor.class); + }); + } + }) + .build(); + + markwon.setMarkdown(textView, md); + } + + private void pluginNoDefaults() { + // a plugin with NO defaults registered + + final String md = "no [links](#) for **you** `code`!"; + + final Markwon markwon = Markwon.builder(this) + // pass `MarkwonInlineParser.factoryBuilderNoDefaults()` no disable all + .usePlugin(MarkwonInlineParserPlugin.create(MarkwonInlineParser.factoryBuilderNoDefaults())) + .usePlugin(new AbstractMarkwonPlugin() { + @Override + public void configure(@NonNull Registry registry) { + registry.require(MarkwonInlineParserPlugin.class, plugin -> { + plugin.factoryBuilder() + .addInlineProcessor(new BackticksInlineProcessor()); + }); + } + }) + .build(); + + markwon.setMarkdown(textView, md); + } + } diff --git a/sample/src/main/java/io/noties/markwon/sample/latex/LatexActivity.java b/sample/src/main/java/io/noties/markwon/sample/latex/LatexActivity.java index 62e54c15..b8a7d9e3 100644 --- a/sample/src/main/java/io/noties/markwon/sample/latex/LatexActivity.java +++ b/sample/src/main/java/io/noties/markwon/sample/latex/LatexActivity.java @@ -173,7 +173,7 @@ public class LatexActivity extends ActivityWithMenuOptions { } private void defaultTextColor() { - // @since 4.3.0-SNAPSHOT text color is automatically taken from textView + // @since 4.3.0 text color is automatically taken from textView // (if it's not specified explicitly via configuration) textView.setTextColor(0xFFff0000);