From aa6ec067005eeefe333e7fd18e66c72e4445b472 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 23 Nov 2023 03:31:04 +0100 Subject: [PATCH] Add Target Framework netstandard2.0 Add support for .NET Framework and .NET Core - Add Target Framework netstandard2.0 - Upgrade package DocumentFormat.OpenXml to 2.18.0 - Upgrade package Markdig to 0.33.0 --- .../Markdig.Renderers.Docx.Tests.csproj | 2 +- .../DocxDocumentRenderer.cs | 2 +- .../Markdig.Renderers.Docx.csproj | 9 ++--- .../Polyfills/NetStandard20Polyfills.cs | 34 +++++++++++++++++++ 4 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 src/Markdig.Renderers.Docx/Polyfills/NetStandard20Polyfills.cs diff --git a/src/Markdig.Renderers.Docx.Tests/Markdig.Renderers.Docx.Tests.csproj b/src/Markdig.Renderers.Docx.Tests/Markdig.Renderers.Docx.Tests.csproj index 9f3c620..0e1aed3 100644 --- a/src/Markdig.Renderers.Docx.Tests/Markdig.Renderers.Docx.Tests.csproj +++ b/src/Markdig.Renderers.Docx.Tests/Markdig.Renderers.Docx.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/Markdig.Renderers.Docx/DocxDocumentRenderer.cs b/src/Markdig.Renderers.Docx/DocxDocumentRenderer.cs index 3d8f162..06b05bf 100644 --- a/src/Markdig.Renderers.Docx/DocxDocumentRenderer.cs +++ b/src/Markdig.Renderers.Docx/DocxDocumentRenderer.cs @@ -90,7 +90,7 @@ public void ForceCloseParagraph() } } - public override DocxDocumentRenderer Render(MarkdownObject markdownObject) + public override object Render(MarkdownObject markdownObject) { if (markdownObject is MarkdownDocument) { diff --git a/src/Markdig.Renderers.Docx/Markdig.Renderers.Docx.csproj b/src/Markdig.Renderers.Docx/Markdig.Renderers.Docx.csproj index ecb7508..c6c63df 100644 --- a/src/Markdig.Renderers.Docx/Markdig.Renderers.Docx.csproj +++ b/src/Markdig.Renderers.Docx/Markdig.Renderers.Docx.csproj @@ -1,7 +1,8 @@ - + - net6.0 + net6.0;netstandard2.0 + Latest enable enable true @@ -20,8 +21,8 @@ - - + + diff --git a/src/Markdig.Renderers.Docx/Polyfills/NetStandard20Polyfills.cs b/src/Markdig.Renderers.Docx/Polyfills/NetStandard20Polyfills.cs new file mode 100644 index 0000000..4b3ebfc --- /dev/null +++ b/src/Markdig.Renderers.Docx/Polyfills/NetStandard20Polyfills.cs @@ -0,0 +1,34 @@ +namespace Markdig.Renderers.Docx; + +internal static class NetStandard20Polyfills +{ + public static TValue GetValueOrDefault( + this IReadOnlyDictionary target, + TKey key, + TValue defaultValue = default!) + { + if (target.TryGetValue(key, out var result)) + { + return result!; + } + + return defaultValue; + } + + public static bool TryPeek(this Stack stack, out T result) + { + if (stack.Count == 0) + { + result = default!; + return false; + } + + result = stack.Peek(); + return true; + } + + public static string[] Split(this string str, string separator, StringSplitOptions options = StringSplitOptions.None) + { + return str.Split(separator.ToCharArray(), options); + } +}