mirror of
https://github.com/Stone-Red-Code/Markdowser.git
synced 2026-09-04 00:56:13 +02:00
Add new Raw Content view
This commit is contained in:
@@ -90,7 +90,10 @@ internal partial class HtmlProcessor : IContentProcessor
|
||||
_ = finalMarkdown.AppendLine(trimmedLine);
|
||||
}
|
||||
|
||||
return new MarkdownContentViewModel(title, finalMarkdown.ToString());
|
||||
return new MarkdownContentViewModel(title, finalMarkdown.ToString())
|
||||
{
|
||||
RawContent = html.ToString()
|
||||
};
|
||||
}
|
||||
|
||||
[GeneratedRegex("!\\[(.*?)\\]\\((.*?)\\)")]
|
||||
|
||||
@@ -8,5 +8,7 @@ public abstract class ContentViewModelBase(string 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;
|
||||
this.RaisePropertyChanged();
|
||||
this.RaisePropertyChanged(nameof(RawContent));
|
||||
}
|
||||
}
|
||||
|
||||
public string RawContent => string.IsNullOrWhiteSpace(Content.RawContent) ? "No raw content." : Content.RawContent;
|
||||
|
||||
public string Url
|
||||
{
|
||||
get => CurrentTabState.Url;
|
||||
@@ -116,8 +119,6 @@ public partial class MainWindowViewModel : ViewModelBase
|
||||
}
|
||||
|
||||
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 BackEnabled => CurrentTabState.BackHistory.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();
|
||||
}
|
||||
@@ -73,14 +73,9 @@
|
||||
<ContentControl Margin="0 10 0 0" Content="{Binding SettingsViewModel}" />
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
<TabItem Header="Markdown">
|
||||
<TabItem Header="Raw Content">
|
||||
<ScrollViewer>
|
||||
<ContentControl Margin="0 10 0 0" Content="{Binding RawMarkdownViewModel}" />
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
<TabItem Header="HTML">
|
||||
<ScrollViewer>
|
||||
<ContentControl Margin="0 10 0 0" Content="{Binding RawHtmlViewModel}" />
|
||||
<SelectableTextBlock Margin="0 10 0 0" Text="{Binding RawContent}" TextWrapping="Wrap" />
|
||||
</ScrollViewer>
|
||||
</TabItem>
|
||||
</TabControl>
|
||||
|
||||
@@ -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>
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user