MarkdownView 0.7.2
dotnet add package MarkdownView --version 0.7.2
NuGet\Install-Package MarkdownView -Version 0.7.2
<PackageReference Include="MarkdownView" Version="0.7.2" />
paket add MarkdownView --version 0.7.2
#r "nuget: MarkdownView, 0.7.2"
// Install MarkdownView as a Cake Addin
#addin nuget:?package=MarkdownView&version=0.7.2
// Install MarkdownView as a Cake Tool
#tool nuget:?package=MarkdownView&version=0.7.2
MarkdownView for Xamarin.Forms
A native Xamarin.Forms Markdown renderer.
Gallery
Introduction
Compared to a majority of solutions, MarkdownView will render every component as a native Xamarin.Forms view instead of via an HTML backend. The Markdown is directly translated from a syntax tree to a hierarchy of Xamarin.Forms views, : no HTML is being produced at all (hurray)!
This will produce a more reactive user interface, at the cost of rendering functionalities (at the moment though!).
Install
Available on NuGet.
Quickstart
var view = new MarkdownView();
view.Markdown = "# Hello world\n\nThis is my first native markdown rendering";
view.Theme = new DarkMarkdownTheme(); // Default is white, you also modify various values
this.Content = view;
Limitations
Unfortunately, Xamarin.Forms string rendering has some limitations ...
- Inlined images aren't supported (Xamarin.Forms formatted strings doesn't support inlined views) : They will be displayed after the block they are referenced from.
- Links are only clickable at a leaf block level (Xamarin.Forms formatted strings doesn't support span user interactions) : if a leaf block contains more than one link, the user is prompted. This is almost a feature since text may be too small to be enough precise! 😉
- SVG rendering is very limited (The SVG rendering is based on SkiaSharp which doesn't seem to manage well all svg renderings)
Roadmap
- Customization _ Styles _ Themes
- Leaf blocks _ Headings _ Paragraphs _ HTML Blocks (maybe partial and specific support) _ Link reference definitions _ Code blocks _ Thematic breaks
- Container blocks _ Block quote _ Lists _ Numbers bullet formats _ Custom bullets
- Inlines _ Textual content _ Emphasis and string emphasis _ Code spans _ Links (partial, no interaction) _ Image blocks (partial, not inlined) _ SVG Rendering (Skia)
- Extensions _ Table blocks _ Emojis (ascii) * Task lists
Thanks
- lunet-io/markdig : used for Markdown parsing
- mono/SkiaSharp : used for SVG rendering
Contributions
Contributions are welcome! If you find a bug please report it and if you want a feature please report it.
If you want to contribute code please file an issue and create a branch off of the current dev branch and file a pull request.
License
MIT © Aloïs Deniel, Bartosz Jędrecki
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Markdig (>= 0.18.1)
- SkiaSharp.Svg (>= 1.60.0)
- Xamarin.Essentials (>= 1.3.1)
- Xamarin.Forms (>= 4.4.0.991537)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.7.2 | 4,430 | 1/23/2020 |