LTCatt 5 лет назад
Сommit
07ee29adca

+ 5 - 0
个性化/XAML 格式.json

@@ -0,0 +1,5 @@
+{
+    "__Author__": "龙腾猫跃",
+	"Title": "PCL2 自定义 XAML 格式",
+	"Description": "对自定义主页与帮助页面时使用的 XAML 文件的格式介绍"
+}

+ 11 - 0
个性化/XAML 格式.xaml

@@ -0,0 +1,11 @@
+
+<!-- 作者:龙腾猫跃 -->
+
+<local:MyHint Margin="0,0,0,15" Text="该帮助页面尚未完成!" />
+
+<local:MyCard Title="概述" Margin="0,0,0,15">
+    <StackPanel Margin="25,40,23,15">
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="帮助 XAML 格式与自定义主页完全一致。在本页面完成前可以先参考自定义主页。" />
+    </StackPanel>
+</local:MyCard>

+ 6 - 0
帮助/提交帮助.json

@@ -0,0 +1,6 @@
+{
+    "__Author__": "龙腾猫跃",
+	"Title": "参与完善 PCL2 帮助库",
+	"Description": "从 GitHub 下载帮助库,帮助我们完善 PCL2 的帮助页面",
+	"Types": ["个性化"]
+}

+ 19 - 0
帮助/提交帮助.xaml

@@ -0,0 +1,19 @@
+
+<!-- 作者:龙腾猫跃 -->
+
+<local:MyHint Margin="0,0,0,15" Text="该帮助页面尚未完成!" />
+
+<local:MyCard Title="概述" Margin="0,0,0,15">
+    <StackPanel Margin="25,40,23,15">
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="PCL2 的帮助库欢迎大家参与修改!你可以参与完善 PCL2 的帮助库,帮助更多玩家了解这个游戏!&#xa;本页面将指导你下载、修改 PCL2 的内置帮助库,然后上传。&#xa;这里默认你已经了解如何修改、添加 PCL2 的自定义帮助页面。如果你还不清楚,可以先查看此教程:" />
+        <local:MyListItem Margin="0,0,0,4"
+		                  EventType="打开帮助" EventData="帮助/自定义帮助.json" />
+    </StackPanel>
+</local:MyCard>
+
+<local:MyCard Title="从 GitHub 获取帮助库" Margin="0,0,0,15">
+    <StackPanel Margin="25,40,23,15">
+
+    </StackPanel>
+</local:MyCard>

+ 5 - 0
帮助/自定义帮助 - JSON 格式.json

@@ -0,0 +1,5 @@
+{
+    "__Author__": "龙腾猫跃",
+	"Title": "自定义帮助页面 → JSON 格式",
+	"Description": "对自定义帮助页面时使用的 JSON 文件的格式介绍"
+}

+ 144 - 0
帮助/自定义帮助 - JSON 格式.xaml

@@ -0,0 +1,144 @@
+
+<!-- 作者:龙腾猫跃 -->
+
+<local:MyCard Title="概述" Margin="0,0,0,15">
+    <StackPanel Margin="25,40,23,15">
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="帮助条目分为两类,第一类在点击后会在 PCL2 中打开一个新的帮助子页面,第二类则会触发事件(通常用于打开网页或执行程序)。&#xa;下列两项分别为第一类和第二类帮助条目的示例。" />
+        <local:MyListItem Margin="0,0,0,0"
+		                  EventType="打开帮助" EventData="帮助/自定义帮助.json" />
+        <local:MyListItem Margin="0,0,0,10"
+		                  EventType="打开帮助" EventData="网站/Minecraft Wiki.json" />
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="每个帮助条目都由对应的 JSON 文件生成,且第一类与第二类的格式要求略有不同。" />
+    </StackPanel>
+</local:MyCard>
+
+<local:MyCard Title="JSON 格式详述" Margin="0,0,0,15">
+    <Grid Margin="25,40,23,13">
+		<Grid.RowDefinitions>
+			<RowDefinition Height="Auto" />
+			<RowDefinition Height="Auto" />
+			<RowDefinition Height="Auto" />
+			<RowDefinition Height="Auto" />
+			<RowDefinition Height="Auto" />
+			<RowDefinition Height="Auto" />
+			<RowDefinition Height="Auto" />
+			<RowDefinition Height="Auto" />
+			<RowDefinition Height="Auto" />
+			<RowDefinition Height="Auto" />
+		</Grid.RowDefinitions>
+		<Grid.ColumnDefinitions>
+			<ColumnDefinition Width="135" />
+			<ColumnDefinition Width="100" />
+			<ColumnDefinition Width="90" />
+			<ColumnDefinition Width="1*" />
+		</Grid.ColumnDefinitions>
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17" FontWeight="Bold"
+				   Grid.Row="0" Grid.Column="0" Text="Title" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="0" Grid.Column="1" Text="必须" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="0" Grid.Column="2" Text="String" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="0" Grid.Column="3" Text="帮助条目的标题,以及第一类中点击进入后的子页面左上角的标题。" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17" FontWeight="Bold"
+				   Grid.Row="1" Grid.Column="0" Text="Description" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="1" Grid.Column="1" Text="可选" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="1" Grid.Column="2" Text="String" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="1" Grid.Column="3" Text="帮助条目标题下方的描述。" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17" FontWeight="Bold"
+				   Grid.Row="2" Grid.Column="0" Text="Logo" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="2" Grid.Column="1" Text="可选" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="2" Grid.Column="2" Text="String" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="2" Grid.Column="3" Text="帮助条目的图标。第一类默认为草方块,第二类默认为命令方块。&#xa;支持填写图片网址或本地文件地址。" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17" FontWeight="Bold"
+				   Grid.Row="3" Grid.Column="0" Text="ShowInSearch" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="3" Grid.Column="1" Text="可选" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="3" Grid.Column="2" Text="Boolean" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="3" Grid.Column="3" Text="控制该条目能否被搜索到。默认为 true。" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17" FontWeight="Bold"
+				   Grid.Row="4" Grid.Column="0" Text="Keywords" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="4" Grid.Column="1" Text="可选" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="4" Grid.Column="2" Text="String" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="4" Grid.Column="3" Text="额外的搜索关键字。在搜索帮助时,输入这些关键字也同样能够搜索到该条目。" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17" FontWeight="Bold"
+				   Grid.Row="5" Grid.Column="0" Text="Types" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="5" Grid.Column="1" Text="可选" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="5" Grid.Column="2" Text="List[String]" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="5" Grid.Column="3" Text="一个字符串列表,控制该项会出现在帮助页面的首页的哪些卡片中。&#xa;若不写,该项则不会出现在帮助页面的首页。&#xa;将这项留空,同时将 ShowInSearch 设为 false,即可完全隐藏该条目。" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17" FontWeight="Bold"
+				   Grid.Row="6" Grid.Column="0" Text="ShowInPublic" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="6" Grid.Column="1" Text="可选" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="6" Grid.Column="2" Text="Boolean" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="6" Grid.Column="3" Text="若为 true (默认),该条目会在 PCL2 内测版与公开版中均显示。&#xa;若为 false,该条目就仅在 PCL2 内测版中可见,在公开版中隐藏。&#xa;如果条目内容涉及内测(例如群服务器、隐藏主题等),则应该设置为 false。" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17" FontWeight="Bold"
+				   Grid.Row="7" Grid.Column="0" Text="IsEvent" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="7" Grid.Column="1" Text="可选" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="7" Grid.Column="2" Text="Boolean" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="7" Grid.Column="3" Text="若为 true,在点击后会执行特定事件,而不打开页面,即第二类。&#xa;若为 false (默认),在点击后会打开同名的 XAML 页面,即第一类。" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17" FontWeight="Bold"
+				   Grid.Row="8" Grid.Column="0" Text="EventType" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="8" Grid.Column="1" Text="第一类不填&#xa;第二类必须" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="8" Grid.Column="2" Text="String" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="8" Grid.Column="3" Text="点击该条目时执行的事件类别。&#xa;详见自定义主页。" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17" FontWeight="Bold"
+				   Grid.Row="9" Grid.Column="0" Text="EventData" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="9" Grid.Column="1" Text="第一类不填&#xa;第二类可选" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="9" Grid.Column="2" Text="String" />
+		<TextBlock TextWrapping="Wrap" Margin="0,0,0,6" LineHeight="17"
+				   Grid.Row="9" Grid.Column="3" Text="点击该条目时执行的事件的额外参数。&#xa;详见自定义主页。" />
+    </Grid>
+</local:MyCard>
+
+<local:MyCard Title="第一类 JSON 范例" Margin="0,0,0,15" CanSwap="True" IsSwaped="True">
+    <StackPanel Margin="25,40,23,15">
+        <local:MyListItem Margin="0,0,0,10"
+		                  EventType="打开帮助" EventData="帮助/自定义帮助.json" />
+		<Grid Margin="7,6,0,0">
+			<TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+					   Text='{}{&#xa;    "Title": "自定义帮助页面",&#xa;    "Description": "添加自己的帮助页面,或是隐藏 PCL2 内置的帮助页面",&#xa;    "Keywords": "PCL2个性化修改自定义xaml",&#xa;    "Types": ["个性化"]&#xa;}' />
+			<local:MyButton Width="80" Height="35" HorizontalAlignment="Right" VerticalAlignment="Bottom" Padding="13,0,13,0" Margin="0,0,0,8"
+					   Text="复制" EventType="复制文本" EventData='{}{&#xa;    "Title": "自定义帮助页面",&#xa;    "Description": "添加自己的帮助页面,或是隐藏 PCL2 内置的帮助页面",&#xa;    "Keywords": "PCL2个性化修改自定义xaml",&#xa;    "Types": ["个性化"]&#xa;}' />
+		</Grid>
+    </StackPanel>
+</local:MyCard>
+
+<local:MyCard Title="第二类 JSON 范例" Margin="0,0,0,15" CanSwap="True" IsSwaped="True">
+    <StackPanel Margin="25,40,23,15">
+        <local:MyListItem Margin="0,0,0,10"
+		                  EventType="打开帮助" EventData="网站/Minecraft Wiki.json" />
+		<Grid Margin="7,6,0,0">
+			<TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+					   Text='{}{&#xa;    "Title": "Minecraft 百科",&#xa;    "Description": "包含游戏过程中所需大多数知识的中文百科站",&#xa;    "Keywords": "我的世界wikipedia",&#xa;    "Types": ["常用网站"],&#xa;    "IsEvent": true,&#xa;    "EventType": "打开网页",&#xa;    "EventData": "https://minecraft-zh.gamepedia.com/Minecraft_Wiki"&#xa;}' />
+			<local:MyButton Width="80" Height="35" HorizontalAlignment="Right" VerticalAlignment="Bottom" Padding="13,0,13,0" Margin="0,0,0,8"
+					   Text="复制" EventType="复制文本" EventData='{}{&#xa;    "Title": "Minecraft 百科",&#xa;    "Description": "包含游戏过程中所需大多数知识的中文百科站",&#xa;    "Keywords": "我的世界wikipedia",&#xa;    "Types": ["常用网站"],&#xa;    "IsEvent": true,&#xa;    "EventType": "打开网页",&#xa;    "EventData": "https://minecraft-zh.gamepedia.com/Minecraft_Wiki"&#xa;}' />
+		</Grid>
+    </StackPanel>
+</local:MyCard>

+ 7 - 0
帮助/自定义帮助.json

@@ -0,0 +1,7 @@
+{
+    "__Author__": "龙腾猫跃",
+	"Title": "自定义帮助页面",
+	"Description": "添加自己的帮助页面,或是隐藏 PCL2 内置的帮助页面",
+	"Keywords": "PCL2个性化修改自定义xaml",
+	"Types": ["个性化"]
+}

+ 46 - 0
帮助/自定义帮助.xaml

@@ -0,0 +1,46 @@
+
+<!-- 作者:龙腾猫跃 -->
+
+<local:MyCard Title="概述" Margin="0,0,0,15">
+    <StackPanel Margin="25,40,23,15">
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="PCL2 允许你自由修改帮助页面:你可以添加自己的帮助条目,或是隐藏内置的帮助条目。&#xa;如果你是服主或整合包作者,你可以将教程或是必要信息列入帮助中,为玩家提供便利。此后,你还可以通过自定义主页功能,在主页添加一个打开特定帮助页面的按钮!&#xa;此外,你还可以添加让帮助条目之间互通的链接,也可以让它从主页或搜索结果中隐藏。你甚至可以利用这些特性,在帮助页面中做一个文字游戏……" />
+    </StackPanel>
+</local:MyCard>
+
+<local:MyCard Title="添加自定义帮助条目" Margin="0,0,0,15">
+    <StackPanel Margin="25,40,23,15">
+	    <TextBlock TextWrapping="Wrap" Margin="0,7,0,7" FontSize="15" Foreground="{DynamicResource ColorBrush2}"
+                   Text="1.  创建帮助文件夹" />
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="PCL2 会从 PCL\Help 文件夹中读取自定义帮助条目,你需要在 PCL 文件夹中创建名为 Help 的文件夹,并把所有相关文件存放在其中。" />
+	    <TextBlock TextWrapping="Wrap" Margin="0,20,0,7" FontSize="15" Foreground="{DynamicResource ColorBrush2}"
+                   Text="2.  编辑 JSON 文件" />
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="每个帮助条目都是一个 JSON 文件。在加载帮助页面时,PCL2 会查找帮助文件夹及其子文件夹中的所有扩展名为 .json 的文件,并作为帮助条目加载。此外,查找时会忽略名称以英文句号开头的文件夹,例如 .git。&#xa;换而言之,你需要新建一个 JSON 文件来创建帮助条目。该文件的格式详见以下页面:" />
+        <local:MyListItem Margin="0,0,0,0"
+		                  EventType="打开帮助" EventData="帮助/自定义帮助 - JSON 格式.json" />
+	    <TextBlock TextWrapping="Wrap" Margin="0,20,0,7" FontSize="15" Foreground="{DynamicResource ColorBrush2}"
+                   Text="3.  编辑 XAML 文件" />
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="如果你的帮助条目不会触发事件(即第一类,IsEvent=False),你就需要创建一个与该 JSON 文件同名的 XAML 文件。在你点击这个帮助条目的时候,PCL2 会从该 XAML 文件中加载页面的实际内容。&#xa;XAML 文件的格式与自定义主页一致,你可以查看下述条目来了解详情:" />
+        <local:MyListItem Margin="0,0,0,0"
+		                  EventType="打开帮助" EventData="个性化/XAML 格式.json" />
+	    <TextBlock TextWrapping="Wrap" Margin="0,20,0,7" FontSize="15" Foreground="{DynamicResource ColorBrush2}"
+                   Text="4.  刷新帮助页面" />
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="在编辑完 JSON 与 XAML 文件后,你可以点击左边栏 帮助 项右侧的刷新按钮来快速重载所有帮助页面。如果顺利的话,你就能找到你的帮助条目啦!" />
+    </StackPanel>
+</local:MyCard>
+
+<local:MyCard Title="隐藏内置帮助条目" Margin="0,0,0,15">
+    <StackPanel Margin="25,40,23,15">
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="与读取自定义帮助条目时类似,PCL2 会在帮助文件夹查找扩展名为 .helpignore 的文件,该文件可以用于隐藏 PCL2 内置的帮助条目。&#xa;该文件的每行都是一条正则表达式,PCL2 会对这些正则逐条进行匹配,如果某内置条目的相对路径符合该正则,那么该条目就会被忽略。例如,这个帮助条目的路径为 帮助\自定义帮助.xaml,因此任何符合这一字符串的正则都可以隐藏这个条目。&#xa;此外,仅往文件中写入 \S* 就可以隐藏 PCL2 的所有内置帮助,因为任何文件名都满足这条正则。" />
+        <local:MyListItem Margin="0,2,0,10" 
+		                  Logo="pack://application:,,,/images/Blocks/CommandBlock.png" SnapsToDevicePixels="True" Title="正则表达式教程" Info="如果你对正则表达式并不熟悉,你可以查看此教程" Type="Clickable" PaddingRight="4"
+		                  EventType="打开网页" EventData="https://www.runoob.com/regexp/regexp-intro.html" />
+	    <TextBlock TextWrapping="Wrap" Margin="0,0,0,4" LineHeight="17"
+                   Text="在读取 .helpignore 文件的内容时,空行、行首行尾空格以及每行的 # 符号之后的内容均会被忽略。因此,你可以在 # 符号后书写注释。" />
+    </StackPanel>
+</local:MyCard>

+ 4 - 0
忽略内置帮助.helpignore

@@ -0,0 +1,4 @@
+# 这个文件用于屏蔽所有 PCL2 自带的帮助
+# 不要删除或修改这个文件,要不然 PCL2 自带的帮助会和 Help 文件夹里的帮助重复加载,导致帮助条目出现两次
+
+\S*

+ 10 - 0
网站/Minecraft Wiki.json

@@ -0,0 +1,10 @@
+{
+    "__Author__": "龙腾猫跃",
+	"Title": "Minecraft 百科",
+	"Description": "包含游戏过程中所需大多数知识的中文百科站",
+	"Keywords": "我的世界wikipedia",
+	"Types": ["常用网站"],
+	"IsEvent": true,
+	"EventType": "打开网页",
+	"EventData": "https://minecraft-zh.gamepedia.com/Minecraft_Wiki"
+}