diff --git a/Logof Client.csproj b/Logof Client.csproj
index a1d80cc..9fa3722 100644
--- a/Logof Client.csproj
+++ b/Logof Client.csproj
@@ -9,25 +9,26 @@
-
-
-
-
-
+
+
+
+
+
None
All
-
-
-
-
+
+
+
+
+
-
-
+
+
@@ -37,15 +38,15 @@
-
+
PreserveNewest
-
+
PreserveNewest
-
+
PreserveNewest
@@ -56,6 +57,6 @@
PreserveNewest
-
+
diff --git a/MainWindow.axaml b/MainWindow.axaml
index c7c2c9c..e9cabf9 100644
--- a/MainWindow.axaml
+++ b/MainWindow.axaml
@@ -2,6 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:md="https://github.com/whistyun/Markdown.Avalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
MinWidth="1000" MinHeight="600" IsVisible="False"
x:Class="Logof_Client.MainWindow" WindowState="Maximized" Icon="assets/icon.ico"
@@ -370,9 +371,7 @@
-
-
-
+
diff --git a/MainWindow.axaml.cs b/MainWindow.axaml.cs
index fa49f68..10d3408 100644
--- a/MainWindow.axaml.cs
+++ b/MainWindow.axaml.cs
@@ -230,18 +230,19 @@ public partial class MainWindow : Window
{
_selectedWikiFilePath = item.Path;
var text = await _wikiService.LoadFileContentAsync(item.Path);
- try
- {
- PreviewPanel.Children.Clear();
- var rendered = MarkdownRenderer.Render(text ?? string.Empty);
- PreviewPanel.Children.Add(rendered);
- }
- catch (Exception ex)
- {
- Logger.Log($"Error while rendering markdown: {ex.Message}", Logger.LogType.Error);
- PreviewPanel.Children.Clear();
- PreviewPanel.Children.Add(new TextBlock { Text = text ?? string.Empty });
- }
+ MsvWikiView.Markdown = text;
+ // try
+ // {
+ // PreviewPanel.Children.Clear();
+ // var rendered = MarkdownRenderer.Render(text ?? string.Empty);
+ // PreviewPanel.Children.Add(rendered);
+ // }
+ // catch (Exception ex)
+ // {
+ // Logger.Log($"Error while rendering markdown: {ex.Message}", Logger.LogType.Error);
+ // PreviewPanel.Children.Clear();
+ // PreviewPanel.Children.Add(new TextBlock { Text = text ?? string.Empty });
+ // }
EditButton.IsEnabled = true;
}
diff --git a/Wiki/MarkdownRenderer.cs b/Wiki/MarkdownRenderer.cs
index 6b20aa0..d34a181 100644
--- a/Wiki/MarkdownRenderer.cs
+++ b/Wiki/MarkdownRenderer.cs
@@ -11,130 +11,130 @@ namespace Logof_Client.Wiki;
public static class MarkdownRenderer
{
- public static Control Render(string markdown)
- {
- try
- {
- var panel = new StackPanel { Spacing = 6 };
- if (string.IsNullOrWhiteSpace(markdown)) return panel;
-
- var doc = Markdown.Parse(markdown);
-
- foreach (var block in doc)
- {
- switch (block)
- {
- case HeadingBlock hb:
- {
- var text = GetInlineText(hb.Inline);
- var tb = new TextBlock
- {
- Text = text,
- FontWeight = FontWeight.Bold,
- Margin = new Avalonia.Thickness(0, hb.Level == 1 ? 6 : 2, 0, 2)
- };
- tb.FontSize = hb.Level switch { 1 => 22, 2 => 18, 3 => 16, _ => 14 };
- panel.Children.Add(tb);
- break;
- }
-
- case ParagraphBlock pb:
- {
- var text = GetInlineText(pb.Inline);
- var tb = new TextBlock { Text = text, TextWrapping = Avalonia.Media.TextWrapping.Wrap };
- panel.Children.Add(tb);
- break;
- }
-
- case FencedCodeBlock cb:
- {
- var sb = new StringBuilder();
- foreach (var line in cb.Lines.Lines)
- {
- sb.Append(line.ToString());
- }
- var codeBox = new TextBox
- {
- Text = sb.ToString(),
- FontFamily = "Consolas, monospace",
- IsReadOnly = true,
- AcceptsReturn = true
- };
- panel.Children.Add(codeBox);
- break;
- }
-
- case ListBlock lb:
- {
- var sp = new StackPanel { Spacing = 2 };
- var number = 1;
- foreach (var item in lb)
- {
- if (item is ListItemBlock lib)
- {
- var itemText = new StringBuilder();
- foreach (var sub in lib)
- {
- if (sub is ParagraphBlock pp)
- itemText.Append(GetInlineText(pp.Inline));
- }
- var tb = new TextBlock { Text = (lb.IsOrdered ? (number++ + ". ") : "• ") + itemText.ToString() };
- sp.Children.Add(tb);
- }
- }
- panel.Children.Add(sp);
- break;
- }
-
- default:
- {
- // fallback: raw text
- panel.Children.Add(new TextBlock { Text = block.ToString() });
- break;
- }
- }
- }
-
- return panel;
- } catch (Exception ex) { Logger.Log($"Error while : {ex.Message}",Logger.LogType.Error);}
-
- return new Panel();
- }
-
- private static string GetInlineText(ContainerInline? container)
- {
- try
- {
- if (container == null) return string.Empty;
- var sb = new StringBuilder();
- foreach (var inline in container)
- {
- switch (inline)
- {
- case LiteralInline li:
- sb.Append(li.Content.ToString());
- break;
- case EmphasisInline ei:
- sb.Append(GetInlineText(ei));
- break;
- case CodeInline ci:
- sb.Append(ci.Content);
- break;
- case LinkInline li:
- sb.Append(GetInlineText(li));
- break;
- case LineBreakInline:
- sb.Append("\n");
- break;
- default:
- sb.Append(inline.ToString());
- break;
- }
- }
-
- return sb.ToString();
- } catch (Exception ex) { Logger.Log($"Error while : {ex.Message}",Logger.LogType.Error);}
-
- return null;
- }
+ // public static Control Render(string markdown)
+ // {
+ // try
+ // {
+ // var panel = new StackPanel { Spacing = 6 };
+ // if (string.IsNullOrWhiteSpace(markdown)) return panel;
+ //
+ // var doc = Markdown.Parse(markdown);
+ //
+ // foreach (var block in doc)
+ // {
+ // switch (block)
+ // {
+ // case HeadingBlock hb:
+ // {
+ // var text = GetInlineText(hb.Inline);
+ // var tb = new TextBlock
+ // {
+ // Text = text,
+ // FontWeight = FontWeight.Bold,
+ // Margin = new Avalonia.Thickness(0, hb.Level == 1 ? 6 : 2, 0, 2)
+ // };
+ // tb.FontSize = hb.Level switch { 1 => 22, 2 => 18, 3 => 16, _ => 14 };
+ // panel.Children.Add(tb);
+ // break;
+ // }
+ //
+ // case ParagraphBlock pb:
+ // {
+ // var text = GetInlineText(pb.Inline);
+ // var tb = new TextBlock { Text = text, TextWrapping = Avalonia.Media.TextWrapping.Wrap };
+ // panel.Children.Add(tb);
+ // break;
+ // }
+ //
+ // case FencedCodeBlock cb:
+ // {
+ // var sb = new StringBuilder();
+ // foreach (var line in cb.Lines.Lines)
+ // {
+ // sb.Append(line.ToString());
+ // }
+ // var codeBox = new TextBox
+ // {
+ // Text = sb.ToString(),
+ // FontFamily = "Consolas, monospace",
+ // IsReadOnly = true,
+ // AcceptsReturn = true
+ // };
+ // panel.Children.Add(codeBox);
+ // break;
+ // }
+ //
+ // case ListBlock lb:
+ // {
+ // var sp = new StackPanel { Spacing = 2 };
+ // var number = 1;
+ // foreach (var item in lb)
+ // {
+ // if (item is ListItemBlock lib)
+ // {
+ // var itemText = new StringBuilder();
+ // foreach (var sub in lib)
+ // {
+ // if (sub is ParagraphBlock pp)
+ // itemText.Append(GetInlineText(pp.Inline));
+ // }
+ // var tb = new TextBlock { Text = (lb.IsOrdered ? (number++ + ". ") : "• ") + itemText.ToString() };
+ // sp.Children.Add(tb);
+ // }
+ // }
+ // panel.Children.Add(sp);
+ // break;
+ // }
+ //
+ // default:
+ // {
+ // // fallback: raw text
+ // panel.Children.Add(new TextBlock { Text = block.ToString() });
+ // break;
+ // }
+ // }
+ // }
+ //
+ // return panel;
+ // } catch (Exception ex) { Logger.Log($"Error while : {ex.Message}",Logger.LogType.Error);}
+ //
+ // return new Panel();
+ // }
+ //
+ // private static string GetInlineText(ContainerInline? container)
+ // {
+ // try
+ // {
+ // if (container == null) return string.Empty;
+ // var sb = new StringBuilder();
+ // foreach (var inline in container)
+ // {
+ // switch (inline)
+ // {
+ // case LiteralInline li:
+ // sb.Append(li.Content.ToString());
+ // break;
+ // case EmphasisInline ei:
+ // sb.Append(GetInlineText(ei));
+ // break;
+ // case CodeInline ci:
+ // sb.Append(ci.Content);
+ // break;
+ // case LinkInline li:
+ // sb.Append(GetInlineText(li));
+ // break;
+ // case LineBreakInline:
+ // sb.Append("\n");
+ // break;
+ // default:
+ // sb.Append(inline.ToString());
+ // break;
+ // }
+ // }
+ //
+ // return sb.ToString();
+ // } catch (Exception ex) { Logger.Log($"Error while : {ex.Message}",Logger.LogType.Error);}
+ //
+ // return null;
+ // }
}