Skip to content

Releases: noties/Markwon

v4.6.2

08 Feb 23:07
Compare
Choose a tag to compare

Added

  • image - DefaultDownScalingMediaDecoder which scales displayed images down (#329)

v4.6.1

28 Dec 13:26
Compare
Choose a tag to compare

Changed

  • core - CustomTypefaceSpan new mergeStyles functionality and new factory method(#298)
    Thanks @c-b-h
  • image-coil - update Coil to 0.13.0 (#303)
    Thanks @ubuntudroid

Deprecated

  • core - CustomTypefaceSpan(Typeface) constructor, use CustomTypefaceSpan.create(Typeface)
    or CustomTypefaceSpan.create(Typeface, boolean) factory methods instead

v4.6.0

18 Sep 21:01
Compare
Choose a tag to compare

Added

  • ext-tables - TableAwareMovementMethod a special movement method to handle clicks inside tables (#289)

Changed

  • ext-tasklist - changed implementation to be in line with GFM (Github flavored markdown),
    task list item is a regular list item (BulletList and OrderedList can contain it).
    Internal implementation changed from block parsing to node post processing (#291)
  • image-glide - update to 4.11.0 version
  • inline-parser - revert parsing index when InlineProcessor returns null as result
  • image-coil - update Coil to 0.12.0 (Coil changelog) (#284)
    Thanks @magnusvs

v4.5.1

13 Aug 16:40
Compare
Choose a tag to compare

Changed

  • image-coil - use coil-base as api dependency (would require explicit coil dependency) (#274)

Fixed

  • image-coil - deliver image result if it loaded before request disposable is created (#272)
  • ext-tables - fix column width rounding issue

v4.5.0

05 Aug 09:34
Compare
Choose a tag to compare

Added

  • core - MovementMethodPlugin.none(), MovementMethodPlugin.link() factory methods
  • core - CorePlugin hasExplicitMovementMethod configuration method to not add implicit LinkMovementMethod in afterSetText
  • core - MarkwonTheme isLinkedUnderlined attribute for links(#270)
    Thanks to @dallasgutauckis
  • ext-latex - JLatexMathTheme.Padding.of(int,int,int,int) factory method
  • app-sample - example application

Changed

  • html - SimpleTagHandler visits children tags if supplied tag is block one (#235)
  • inline-parser - BangInlineProcessor properly returns null if no image node is found (possible to define other inline parsers that use ! as special character)
  • image - AsyncDrawable won't trigger loading if it has result (aim: RecyclerView due to multiple attach/detach events of a View)
  • image - AsyncDrawable will resume result if it is Animatable and was playing before detach event (aim: RecyclerView) (#241)
  • core - MarkwonReducer filter out LinkReferenceDefinition nodes

Fixed

  • image-glide cache RequestManager in GlideImagesPlugin#create(Context) factory method (#259)

Deprecated

  • core - MovementMethodPlugin.create() use explicit MovementMethodPlugin.link() instead

Removed

  • image - AsyncDrawable#hasKnownDimentions (deprecated in 4.2.1)
  • app and sample applications (merged together in a app-sample single app)

v4.4.0

19 May 07:48
3ab0151
Compare
Choose a tag to compare
  • TextViewSpan to obtain TextView in which markdown is displayed (applied by CorePlugin)
  • TextLayoutSpan to obtain Layout in which markdown is displayed (applied by TablePlugin, more specifically TableRowSpan to propagate layout in which cell content is displayed)
  • HtmlEmptyTagReplacement now is configurable by HtmlPlugin, iframe handling (#235)
  • AsyncDrawable now uses TextView width without padding instead of width of canvas
  • Support for images inside table cells (ext-tables module)
  • Expose enabledBlockTypes in CorePlugin
  • Update jlatexmath-android dependency (#225)
  • Update image-coil module (Coil version 0.10.1) (#244)
    Thanks to @tylerbwong
  • Rename UrlProcessor to ImageDestinationProcessor (io.noties.markwon.urlprocessor -> io.noties.markwon.image.destination) and limit its usage to process only destination URL of images (was used to also process links before)
  • fallbackToRawInputWhenEmpty Markwon.Builder configuration to fallback to raw input if rendered markdown is empty (#242)

v4.3.1

01 Apr 08:14
a26c13c
Compare
Choose a tag to compare
  • Fix DexGuard optimization issue (#216)
    Thanks @francescocervone
  • module images: GifSupport and SvgSupport use Class.forName instead access to full qualified class name
  • ext-table: fix links in tables (#224)
  • ext-table: proper borders (equal for all sides)
  • module core: Add PrecomputedFutureTextSetterCompat
    Thanks @KirkBushman

v4.3.0

18 Mar 12:35
924abae
Compare
Choose a tag to compare
  • add MarkwonInlineParserPlugin in inline-parser module
  • JLatexMathPlugin now supports inline LaTeX structures via MarkwonInlineParserPlugin
    dependency (must be explicitly added to Markwon whilst configuring)
  • JLatexMathPlugin: add theme (to customize both inlines and blocks)
  • add JLatexMathPlugin.ErrorHandler to catch latex rendering errors and (optionally) display error drawable (#204)
  • JLatexMathPlugin add text color customization (#207)
  • JLatexMathPlugin will use text color of widget in which it is displayed if color is not set explicitly
  • add SoftBreakAddsNewLinePlugin plugin (core module)
  • LinkResolverDef defaults to https when a link does not have scheme information (#75)
  • add option abstraction for sample module allowing switching of multiple cases in runtime via menu
  • non-empty bounds for AsyncDrawable when no dimensions are not yet available (#189)
  • linkify - option to use LinkifyCompat in LinkifyPlugin (#201)
    Thanks to @drakeet
  • MarkwonVisitor.BlockHandler and BlockHandlerDef implementation to control how blocks insert new lines after them
// default usage: new blocks parser, no inlines
final Markwon markwon = Markwon.builder(this)
    .usePlugin(JLatexMathPlugin.create(textSize))
    .build();
// legacy blocks (pre `4.3.0`) parsing, no inlines
final Markwon markwon =  Markwon.builder(this)
        .usePlugin(JLatexMathPlugin.create(textView.getTextSize(), builder -> builder.blocksLegacy(true)))
        .build();
// new blocks parsing and inline parsing
final Markwon markwon =  Markwon.builder(this)
        .usePlugin(JLatexMathPlugin.create(textView.getTextSize(), builder -> {
            // blocksEnabled and blocksLegacy can be omitted
            builder
                    .blocksEnabled(true)
                    .blocksLegacy(false)
                    .inlinesEnabled(true);
        }))
        .build();

v4.2.2

26 Feb 13:59
8d3f0e9
Compare
Choose a tag to compare
  • Fixed AsyncDrawable display when it has placeholder with empty bounds (#189)
  • Fixed syntax-highlight where code input is empty string (#192)
  • Add appendFactory/prependFactory in MarkwonSpansFactory.Builder for more explicit SpanFactory ordering (#193)

v4.2.1

02 Feb 17:03
c939c0f
Compare
Choose a tag to compare
  • Fix SpannableBuilder subSequence method
  • Introduce Nougat check in BulletListItemSpan to position bullet (for bullets to be
    positioned correctly when nested inside other LeadingMarginSpans)
  • Reduced number of invalidations in AsyncDrawable when result is ready
  • AsyncDrawable#hasKnownDimentions -> AsyncDrawable#hasKnownDimensions typo fix