mirror of
https://github.com/Stone-Red-Code/Markdowser.git
synced 2026-09-08 15:56:25 +02:00
Add new Raw Content view
This commit is contained in:
@@ -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();
|
|
||||||
}
|
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -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