Add new Raw Content view

This commit is contained in:
Stone_Red
2024-06-03 17:44:33 +02:00
parent 8d50d759c9
commit 2d75a1070b
10 changed files with 12 additions and 70 deletions
@@ -90,7 +90,10 @@ internal partial class HtmlProcessor : IContentProcessor
_ = finalMarkdown.AppendLine(trimmedLine); _ = finalMarkdown.AppendLine(trimmedLine);
} }
return new MarkdownContentViewModel(title, finalMarkdown.ToString()); return new MarkdownContentViewModel(title, finalMarkdown.ToString())
{
RawContent = html.ToString()
};
} }
[GeneratedRegex("!\\[(.*?)\\]\\((.*?)\\)")] [GeneratedRegex("!\\[(.*?)\\]\\((.*?)\\)")]
@@ -8,5 +8,7 @@ public abstract class ContentViewModelBase(string title)
{ {
public string Title { get; } = title; public string Title { get; } = title;
public Logger Logger { get; } = GlobalState.Logger; public string RawContent { get; init; } = string.Empty;
public Logger Logger => GlobalState.Logger;
} }
@@ -84,9 +84,12 @@ public partial class MainWindowViewModel : ViewModelBase
{ {
CurrentTabState.Content = value; CurrentTabState.Content = value;
this.RaisePropertyChanged(); this.RaisePropertyChanged();
this.RaisePropertyChanged(nameof(RawContent));
} }
} }
public string RawContent => string.IsNullOrWhiteSpace(Content.RawContent) ? "No raw content." : Content.RawContent;
public string Url public string Url
{ {
get => CurrentTabState.Url; get => CurrentTabState.Url;
@@ -116,8 +119,6 @@ public partial class MainWindowViewModel : ViewModelBase
} }
public SettingsViewModel SettingsViewModel => new SettingsViewModel(); public SettingsViewModel SettingsViewModel => new SettingsViewModel();
public RawHtmlViewModel RawHtmlViewModel => new RawHtmlViewModel(new());
public RawMarkdownViewModel RawMarkdownViewModel => new RawMarkdownViewModel(() => new());
public bool CloseTabEnabled => Tabs.Count > 1; public bool CloseTabEnabled => Tabs.Count > 1;
public bool BackEnabled => CurrentTabState.BackHistory.Count > 0; public bool BackEnabled => CurrentTabState.BackHistory.Count > 0;
public bool ForwardEnabled => CurrentTabState.ForwardHistory.Count > 0; public bool ForwardEnabled => CurrentTabState.ForwardHistory.Count > 0;
@@ -1,8 +0,0 @@
using System.Text;
namespace Markdowser.ViewModels;
public class RawHtmlViewModel(StringBuilder html) : ViewModelBase
{
public StringBuilder Html => html;
}
@@ -1,9 +0,0 @@
using System;
using System.Text;
namespace Markdowser.ViewModels;
public class RawMarkdownViewModel(Func<StringBuilder> markdown) : ViewModelBase
{
public StringBuilder Markdown => markdown();
}
+2 -7
View File
@@ -73,14 +73,9 @@
<ContentControl Margin="0 10 0 0" Content="{Binding SettingsViewModel}" /> <ContentControl Margin="0 10 0 0" Content="{Binding SettingsViewModel}" />
</ScrollViewer> </ScrollViewer>
</TabItem> </TabItem>
<TabItem Header="Markdown"> <TabItem Header="Raw Content">
<ScrollViewer> <ScrollViewer>
<ContentControl Margin="0 10 0 0" Content="{Binding RawMarkdownViewModel}" /> <SelectableTextBlock Margin="0 10 0 0" Text="{Binding RawContent}" TextWrapping="Wrap" />
</ScrollViewer>
</TabItem>
<TabItem Header="HTML">
<ScrollViewer>
<ContentControl Margin="0 10 0 0" Content="{Binding RawHtmlViewModel}" />
</ScrollViewer> </ScrollViewer>
</TabItem> </TabItem>
</TabControl> </TabControl>
-10
View File
@@ -1,10 +0,0 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:Markdowser.ViewModels"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:DataType="vm:RawHtmlViewModel"
x:Class="Markdowser.Views.RawHtmlView">
<SelectableTextBlock Text="{Binding Html}" TextWrapping="Wrap" />
</UserControl>
-11
View File
@@ -1,11 +0,0 @@
using Avalonia.Controls;
namespace Markdowser.Views;
public partial class RawHtmlView : UserControl
{
public RawHtmlView()
{
InitializeComponent();
}
}
@@ -1,10 +0,0 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:Markdowser.ViewModels"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:DataType="vm:RawMarkdownViewModel"
x:Class="Markdowser.Views.RawMarkdownView">
<SelectableTextBlock Text="{Binding Markdown}" TextWrapping="Wrap" />
</UserControl>
@@ -1,11 +0,0 @@
using Avalonia.Controls;
namespace Markdowser.Views;
public partial class RawMarkdownView : UserControl
{
public RawMarkdownView()
{
InitializeComponent();
}
}