Skip to content

Commit d30864b

Browse files
committed
up
1 parent c4c5b5b commit d30864b

9 files changed

Lines changed: 87 additions & 104 deletions

File tree

src/ColorMC.Gui/App.axaml.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using Avalonia.Controls.ApplicationLifetimes;
66
using Avalonia.Markup.Xaml;
77
using Avalonia.Threading;
8-
using Avalonia.WebView.Core;
98
using ColorMC.Core;
109
using ColorMC.Core.Utils;
1110
using ColorMC.Gui.Joystick;
@@ -57,12 +56,6 @@ public override void Initialize()
5756
AvaloniaXamlLoader.Load(this);
5857
}
5958

60-
public override void RegisterServices()
61-
{
62-
base.RegisterServices();
63-
AvaloniaWebViewBuilder.Initialize(default);
64-
}
65-
6659
public override void OnFrameworkInitializationCompleted()
6760
{
6861
base.OnFrameworkInitializationCompleted();

src/ColorMC.Gui/ColorMC.Gui.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,8 @@
349349
<PackageReference Include="Avalonia.AvaloniaEdit" Version="11.3.0" />
350350
<PackageReference Include="Avalonia.Controls.TreeDataGrid" Version="11.1.1" />
351351
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
352-
<PackageReference Include="DialogHost.Avalonia" Version="0.9.3" />
352+
<PackageReference Include="DialogHost.Avalonia" Version="0.10.0" />
353+
<PackageReference Include="Markdig" Version="0.43.0" />
353354
<PackageReference Include="MinecraftSkinRender" Version="1.0.0" />
354355
<PackageReference Include="MinecraftSkinRender.Image" Version="1.0.0" />
355356
<PackageReference Include="MinecraftSkinRender.OpenGL" Version="1.0.0" />
@@ -359,8 +360,7 @@
359360
<PackageReference Include="DotNetty.Common" Version="0.7.6" />
360361
<PackageReference Include="DotNetty.Handlers" Version="0.7.6" />
361362
<PackageReference Include="Svg.Controls.Skia.Avalonia" Version="11.3.6.2" />
362-
<PackageReference Include="WebView.Avalonia" Version="11.1.0" />
363-
<PackageReference Include="WebView.Avalonia.Desktop" Version="11.1.0" />
363+
<PackageReference Include="Avalonia.HtmlRenderer" Version="11.2.0" />
364364
</ItemGroup>
365365
<ItemGroup>
366366
<ProjectReference Include="..\ColorMC.Core\ColorMC.Core.csproj" />

src/ColorMC.Gui/ColorMCGui.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using Avalonia;
99
using Avalonia.Logging;
1010
using Avalonia.Media;
11-
using Avalonia.WebView.Desktop;
1211
using ColorMC.Core;
1312
using ColorMC.Core.Objs;
1413
using ColorMC.Core.Utils;
@@ -350,8 +349,7 @@ public static AppBuilder BuildAvaloniaApp()
350349
#else
351350
.LogToTrace()
352351
#endif
353-
.UsePlatformDetect()
354-
.UseDesktopWebView();
352+
.UsePlatformDetect();
355353

356354
switch (SystemInfo.Os)
357355
{

src/ColorMC.Gui/Resource/Language/zh-cn.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@
749749
"AddModPackWindow.Text31": "打开外部网页",
750750
"AddModPackWindow.Text32": "下载最新版",
751751
"AddModPackWindow.Text33": "MC百科简介",
752-
"AddModPackWindow.Text34": "英文原文",
752+
"AddModPackWindow.Text34": "网页原文",
753753
"AddModPackWindow.Text35": "版本列表",
754754
"AddModPackWindow.Text36": "介绍",
755755
"AddResourceWindow.Title": "游戏实例添加资源 {0}",

src/ColorMC.Gui/UI/Controls/Add/AddFileInfoControl.axaml

Lines changed: 57 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
xmlns:Avalonia="clr-namespace:TheArtOfDev.HtmlRenderer.Avalonia;assembly=Avalonia.HtmlRenderer"
66
xmlns:app="clr-namespace:ColorMC.Gui.Manager"
77
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
8+
xmlns:html="clr-namespace:TheArtOfDev.HtmlRenderer.Avalonia;assembly=Avalonia.HtmlRenderer"
89
xmlns:item="clr-namespace:ColorMC.Gui.UI.Controls.Items"
910
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
1011
xmlns:md="https://github.com/AIDotNet/Markdown.AIRender"
@@ -92,60 +93,62 @@
9293
</Panel>
9394
<TabControl>
9495
<TabItem Header="{setting:Localize AddModPackWindow.Text36}">
95-
<DockPanel Margin="10" DataContext="{Binding Last}">
96-
<ItemsControl DockPanel.Dock="Top" ItemsSource="{Binding Tags}">
97-
<ItemsControl.ItemsPanel>
98-
<ItemsPanelTemplate>
99-
<WrapPanel />
100-
</ItemsPanelTemplate>
101-
</ItemsControl.ItemsPanel>
102-
<ItemsControl.ItemTemplate>
103-
<DataTemplate>
104-
<Border>
105-
<StackPanel Margin="0,0,10,0" Orientation="Horizontal">
106-
<Border
107-
Width="20"
108-
Height="20"
109-
HorizontalAlignment="Left"
110-
VerticalAlignment="Center"
111-
CornerRadius="5">
112-
<Border.Background>
113-
<ImageBrush Source="{Binding Image^, FallbackValue={x:Static app:ImageManager.LoadBitmap}}" Stretch="UniformToFill" />
114-
</Border.Background>
115-
</Border>
116-
<TextBlock
117-
Margin="5,0,0,0"
118-
DockPanel.Dock="Top"
119-
Foreground="#FF9A9A9A"
120-
Text="{Binding Name, FallbackValue=Author}" />
121-
</StackPanel>
122-
</Border>
123-
</DataTemplate>
124-
</ItemsControl.ItemTemplate>
125-
</ItemsControl>
126-
<WrapPanel Margin="10,20,10,20" DockPanel.Dock="Top">
127-
<TextBlock Text="{setting:Localize AddModPackWindow.Text28}" />
128-
<TextBlock Margin="0,0,10,0" Text="{Binding DownloadCount}" />
129-
<TextBlock Text="{setting:Localize AddModPackWindow.Text29}" />
130-
<TextBlock Text="{Binding ModifiedDate}" TextTrimming="CharacterEllipsis" />
131-
</WrapPanel>
132-
<TextBlock
133-
DockPanel.Dock="Top"
134-
IsVisible="{Binding HaveMcmod}"
135-
Text="{setting:Localize AddModPackWindow.Text33}" />
136-
<TextBlock
137-
Margin="10,20,10,20"
138-
DockPanel.Dock="Top"
139-
IsVisible="{Binding HaveMcmod}"
140-
Text="{Binding Summary}"
141-
TextTrimming="CharacterEllipsis"
142-
TextWrapping="Wrap" />
143-
<TextBlock
144-
DockPanel.Dock="Top"
145-
IsVisible="{Binding HaveMcmod}"
146-
Text="{setting:Localize AddModPackWindow.Text34}" />
147-
<WebView Margin="10,20,10,20" HtmlContent="{Binding SummaryHtml}" />
148-
</DockPanel>
96+
<ScrollViewer HorizontalScrollBarVisibility="Disabled">
97+
<StackPanel Margin="10" DataContext="{Binding Last}">
98+
<ItemsControl DockPanel.Dock="Top" ItemsSource="{Binding Tags}">
99+
<ItemsControl.ItemsPanel>
100+
<ItemsPanelTemplate>
101+
<WrapPanel />
102+
</ItemsPanelTemplate>
103+
</ItemsControl.ItemsPanel>
104+
<ItemsControl.ItemTemplate>
105+
<DataTemplate>
106+
<Border>
107+
<StackPanel Margin="0,0,10,0" Orientation="Horizontal">
108+
<Border
109+
Width="20"
110+
Height="20"
111+
HorizontalAlignment="Left"
112+
VerticalAlignment="Center"
113+
CornerRadius="5">
114+
<Border.Background>
115+
<ImageBrush Source="{Binding Image^, FallbackValue={x:Static app:ImageManager.LoadBitmap}}" Stretch="UniformToFill" />
116+
</Border.Background>
117+
</Border>
118+
<TextBlock
119+
Margin="5,0,0,0"
120+
DockPanel.Dock="Top"
121+
Foreground="#FF9A9A9A"
122+
Text="{Binding Name, FallbackValue=Author}" />
123+
</StackPanel>
124+
</Border>
125+
</DataTemplate>
126+
</ItemsControl.ItemTemplate>
127+
</ItemsControl>
128+
<WrapPanel Margin="10,20,10,20" DockPanel.Dock="Top">
129+
<TextBlock Text="{setting:Localize AddModPackWindow.Text28}" />
130+
<TextBlock Margin="0,0,10,0" Text="{Binding DownloadCount}" />
131+
<TextBlock Text="{setting:Localize AddModPackWindow.Text29}" />
132+
<TextBlock Text="{Binding ModifiedDate}" TextTrimming="CharacterEllipsis" />
133+
</WrapPanel>
134+
<TextBlock
135+
DockPanel.Dock="Top"
136+
IsVisible="{Binding HaveMcmod}"
137+
Text="{setting:Localize AddModPackWindow.Text33}" />
138+
<TextBlock
139+
Margin="10,20,10,20"
140+
DockPanel.Dock="Top"
141+
IsVisible="{Binding HaveMcmod}"
142+
Text="{Binding Summary}"
143+
TextTrimming="CharacterEllipsis"
144+
TextWrapping="Wrap" />
145+
<TextBlock
146+
DockPanel.Dock="Top"
147+
IsVisible="{Binding HaveMcmod}"
148+
Text="{setting:Localize AddModPackWindow.Text34}" />
149+
<html:HtmlPanel Margin="10,20,10,20" Text="{Binding SummaryOld}" />
150+
</StackPanel>
151+
</ScrollViewer>
149152
</TabItem>
150153
<TabItem Header="{setting:Localize AddModPackWindow.Text35}">
151154
<ScrollViewer>

src/ColorMC.Gui/UI/Model/Items/FileItemModel.cs

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using ColorMC.Gui.UI.Controls;
1414
using ColorMC.Gui.UIBinding;
1515
using ColorMC.Gui.Utils;
16+
using Markdig;
1617
using CommunityToolkit.Mvvm.ComponentModel;
1718
using CommunityToolkit.Mvvm.Input;
1819

@@ -87,9 +88,6 @@ public partial class FileItemModel : SelectItemModel
8788
/// </summary>
8889
public bool HaveMcmod { get; init; }
8990

90-
public string SummaryHtml { get; private set; }
91-
public string SummaryMarkdown { get; private set; }
92-
9391
/// <summary>
9492
/// 星的图标
9593
/// </summary>
@@ -177,12 +175,12 @@ public FileItemModel(CurseForgeListObj.CurseForgeListDataObj data, FileType type
177175
ID = data.Id.ToString();
178176
Name = mcmod?.McmodName ?? data.Name;
179177
Summary = mcmod?.McmodText ?? data.Summary;
180-
SummaryOld = data.Summary;
178+
SummaryOld = Markdown.ToHtml(data.Summary, new MarkdownPipelineBuilder().UseAdvancedExtensions().Build());
181179
foreach (var item in data.Authors)
182180
{
183-
if (Authors.Count > 10)
181+
if (Authors.Count > 5)
184182
{
185-
Authors.Add(new AuthorModel(string.Format(LanguageUtils.Get("App.Text114"), data.Authors.Count - 10), null));
183+
Authors.Add(new AuthorModel(string.Format(LanguageUtils.Get("App.Text114"), data.Authors.Count - 5), null));
186184
break;
187185
}
188186
Authors.Add(new AuthorModel(item.Name, item.AvatarUrl));
@@ -210,8 +208,6 @@ public FileItemModel(CurseForgeListObj.CurseForgeListDataObj data, FileType type
210208
{
211209
IsStar = CollectUtils.IsCollect(SourceType, data.Id.ToString());
212210
}
213-
214-
LoadBody();
215211
}
216212

217213
public FileItemModel(ModrinthSearchObj.HitObj data, List<ModrinthTeamObj>? team, ModrinthProjectObj? project, FileType type, McModSearchItemObj? mcmod)
@@ -226,7 +222,7 @@ public FileItemModel(ModrinthSearchObj.HitObj data, List<ModrinthTeamObj>? team,
226222
Summary = mcmod?.McmodText ?? data.Description;
227223
if (project != null)
228224
{
229-
SummaryOld = project.Body;
225+
SummaryOld = Markdown.ToHtml(project.Body, new MarkdownPipelineBuilder().UseAdvancedExtensions().Build());
230226
}
231227
else
232228
{
@@ -236,9 +232,9 @@ public FileItemModel(ModrinthSearchObj.HitObj data, List<ModrinthTeamObj>? team,
236232
{
237233
foreach (var item in team)
238234
{
239-
if (Authors.Count > 10)
235+
if (Authors.Count > 5)
240236
{
241-
Authors.Add(new AuthorModel(string.Format(LanguageUtils.Get("App.Text114"), team.Count - 10), null));
237+
Authors.Add(new AuthorModel(string.Format(LanguageUtils.Get("App.Text114"), team.Count - 5), null));
242238
break;
243239
}
244240
Authors.Add(new AuthorModel(item.User.Username, item.User.AvatarUrl));
@@ -263,8 +259,6 @@ public FileItemModel(ModrinthSearchObj.HitObj data, List<ModrinthTeamObj>? team,
263259
{
264260
IsStar = CollectUtils.IsCollect(SourceType, data.ProjectId);
265261
}
266-
267-
LoadBody();
268262
}
269263

270264
public FileItemModel(ModrinthProjectObj data, FileType type, McModSearchItemObj? mcmod)
@@ -291,8 +285,6 @@ public FileItemModel(ModrinthProjectObj data, FileType type, McModSearchItemObj?
291285
{
292286
IsStar = CollectUtils.IsCollect(SourceType, data.Id);
293287
}
294-
295-
LoadBody();
296288
}
297289

298290
public FileItemModel(McModSearchItemObj data, FileType type)
@@ -302,28 +294,14 @@ public FileItemModel(McModSearchItemObj data, FileType type)
302294
Logo = data.McmodIcon.StartsWith("//") ? "https:" + data.McmodIcon : data.McmodIcon;
303295
Name = data.McmodName;
304296
Summary = data.McmodText;
297+
SummaryOld = data.McmodText;
305298
Authors.Add(new AuthorModel(data.McmodAuthor, null));
306299
FileType = FileType.Mod;
307300
SourceType = SourceType.McMod;
308301
ModifiedDate = data.McmodUpdateTime;
309302

310303
HaveDownload = data.CurseforgeId != null || data.ModrinthId != null;
311304
IsModPack = type == FileType.ModPack;
312-
313-
LoadBody();
314-
}
315-
316-
private void LoadBody()
317-
{
318-
if (SummaryOld.StartsWith('#'))
319-
{
320-
IsMarkdown = true;
321-
SummaryMarkdown = SummaryOld;
322-
}
323-
else
324-
{
325-
SummaryHtml = SummaryOld;
326-
}
327305
}
328306

329307
partial void OnIsStarChanged(bool value)

src/ColorMC.Gui/UI/Windows/TestWindow.axaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
x:Class="ColorMC.Gui.TestWindow"
33
xmlns="https://github.com/avaloniaui"
44
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5+
xmlns:Avalonia="clr-namespace:TheArtOfDev.HtmlRenderer.Avalonia;assembly=Avalonia.HtmlRenderer"
56
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
67
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
78
xmlns:view="clr-namespace:ColorMC.Gui.UI.Views;assembly=ColorMC.Gui"
@@ -10,9 +11,9 @@
1011
d:DesignWidth="800"
1112
mc:Ignorable="d">
1213
<Panel>
13-
<view:ButtonControl
14-
Width="100"
15-
Height="30"
16-
Text="测试" />
14+
<UniformGrid Columns="2" Rows="1">
15+
<Avalonia:HtmlPanel Name="Web1" Margin="10" />
16+
<Avalonia:HtmlPanel Name="Web2" Margin="10" />
17+
</UniformGrid>
1718
</Panel>
1819
</Window>

0 commit comments

Comments
 (0)