Skip to content

《Feature》投稿格式指导

本文旨在为有意向《Feature》投稿的创作者提供投稿格式的规范和建议,以及列出了本站支持的特殊格式,以方便作者们进行运用。

投稿的格式规范

文本格式

《Feature》接受Markdown格式的投稿。
如果你不熟悉Markdown,可以通过下面的教程快速上手:

当然你也可以使用下面的在线编辑器体验:

文章结构

《Feature》对投稿的文章选题和行文格式没有硬性要求,与mc原版开发有关即可。编辑在采用时可能会结合文章的选题与作者进行一定的探讨和修改。

我们推荐在文章的开头附上本文的摘要。它会显示在索引页和文章的开头,是读者简略了解文章中心思想的有效工具。

关于文章中涉及到的图片或文件引用,如果需要本地引用的话,请将相应的图片和文件放在与文档同级的文件夹下,在投稿时打包发送。

投稿模板

我们推荐作者将文章、文章中使用的图片、以及一些其他信息打包成一个.zip压缩包发送到 1703467028@qq.com

压缩包中可以包含一个额外文件夹,在其中可以放置头图、作者的社媒账号信息、关于文章的其他说明等等;在收录时,其中的内容会被移动到别处。

下面是我们制作的示例模板,投稿者可以参考。

示例模板.zip

附录:常见特殊格式参考

vitepress和本站在标准markdown语法之外进行了一些扩展,你可以自由使用这些新的语法优化你的文档排版

自定义注释块

vitepress新增了一些块级元素,你可以使用它们来制作注释:

markdown
::: tip 提示标题
这里是提示的内容。
:::

::: warning 警告标题
这里是警告的内容。
:::

::: danger 错误标题
这里是错误的内容。
:::

它们会像下方所示渲染:

提示标题

这里是提示的内容。

警告标题

这里是警告的内容。

错误标题

这里是错误的内容。

如果你使用Typora编写Markdown,或许你更熟悉Github式风格的提示框。当然,Vitepress也对此有所支持。如下所示:

markdown
> [!TIP]提示

> [!WARNING]警告

> [!DANGER]危险

折叠块

此外,vitepress加入了折叠块元素,你可以使用下面的方式使用它:

markdown
::: details 折叠块
这里是被折叠的内容
:::

渲染效果如下:

折叠块

这里是被折叠的内容。

公式

markdown支持两种类型的公式:

  • 行内公式:使用单个$包裹公式块;
  • 独占一行公式:另起一个段落,使用两个$$包裹公式块。

经测试,行内公式可能不支持较复杂的公式渲染,如有需求,尽量使用独占一行的公式块。

侧边栏

vitepress默认支持将2-6级标题自动整合为右侧侧边栏,作为索引导航。
一级标题默认不会自动整合,作者投稿时需要注意,尽量减少使用一级标题。

mcfunction、snbt和mcdoc语法支持

香草图书馆增加了mcfunction、snbt和mcdoc的代码块语法高亮,你可以和使用其他的编程语言一样使用它们:

mcfunction
say mcf语法高亮
execute as @s at @s if entity @s run function foo:bar
tp @s ~ ~ ~ ~ ~
return 0
mcdoc
struct myStruct{
	myInt: int,
	myShort: short,
	myString: string,
}

NBT树展示支持

香草图书馆支持类似Wiki的NBT数据结构展示形式。如:

compound 这是结构根标签。
  • stringstring1:这是一个测试标签。
  • string * string2:这是另一个测试标签,拥有代表必选项的红色星号。
  • intint1:这是一个整数测试标签。
  • compoundcompound1:这是一个复合标签测试。
    • floatfloat1:这是一个浮点数测试标签,同时作为上一个标签的下级标签。
    • listlist1:这是一个列表测试标签。
      • compound这是列表的一个项。
        • doubledouble1:这是一个双精度浮点数标签。
        • byte_listint_listlong_listmultilist:这是一个泛型标签。它可能是字节、整型或长整型列表。
    • compoundcompound2:这是另一个复合标签。
      你可以用<br>另起一行,写一些内容,例如:当foobar时:
      • boolbool1:这是一个布尔值标签。
      • anyany:这是一个任意值标签。
  • bytebyte1:这是一个字节型标签。特意写在了上面一个复合标签的下面,使结构不显得头重脚轻。
  • homolisthomolist:这不是野兽先辈标签。它代表内部元素相同(元素可任意)的列表。

图书馆注册了全局css样式,可以使用<div class=nbttree>自定义类框架实现。
注意div标签后需要空一行。

html
<div class="nbttree">

<node type="compound" name=""/> 这是结构根标签。
- <node type="string" name="string1"/>这是一个测试标签。
- <node type="string" name="string2" required=true />这是另一个测试标签,拥有代表必选项的红色星号。
- <node type="int" name="int1"/>这是一个整数测试标签。
- <node type="compound" name="compound1"/>这是一个复合标签测试。
  - <node type="float" name="float1"/>这是一个浮点数测试标签,同时作为上一个标签的下级标签。
  - <node type="list" name="list1"/>这是一个列表测试标签。
    - <node type="compound" name=""/>这是列表的一个项。
      - <node type="double" name="double1"/>这是一个双精度浮点数标签。
      - <node type="byte_list" name=""/><node type="int_list" name=""/><node type="long_list" name="multilist"/>这是一个泛型标签。它可能是字节、整型或长整型列表。
  - <node type="compound" name="compound2"/>这是另一个复合标签。<br>你可以用`<br>`另起一行,写一些内容,例如:当`foo`是`bar`时:
    -  <node type="bool" name="bool1"/>这是一个布尔值标签。
    -  <node type="any" name="any"/>这是一个任意值标签。
- <node type="byte" name="byte1"/>这是一个字节型标签。特意写在了上面一个复合标签的下面,使结构不显得头重脚轻。
- <node type="homolist" name="homolist"/>这不是野兽先辈标签。它代表内部元素相同(元素可任意)的列表。

</div>

在这个块内的无序列表样式会替换成类似wiki数据值版块的树结构。无序列表的层级代表nbt树的层级。

此外我们还封装了一个vue组件来方便作者添加键类型和键名:

键组件

使用自定义vue组件<node />添加一个键。该组件接受下列参数:

  • string * type:键类型。影响图标显示。
  • stringname:键名。缺省时不显示冒号。
  • boolrequired:是否为必选项。默认为false。设为true时渲染红色星号。
  • boolstore:是否存储时必存在。默认为false。设为true时渲染蓝色星号。
  • boolcolon:是否渲染冒号。默认为true。该值为false或缺省键名时,不显示冒号。

键类型可以为下列值之一,若没有对应的图标,则渲染为any。
下面是键类型对照表:

标识符类型符号
any任意值any
bool布尔值bool
byte_list字节列表byte_list
byte字节型byte
list列表list
double双精度浮点数double
float单精度浮点数float
homolist同元素列表homolist
int_list整型列表int_list
int整型int
long_list长整型列表long_list
long长整型long
compound复合标签compound
short短整型short
string字符串bool

其他技巧

  • 如果一个键可接受多个类型的值,你可以在同一行排列多个node组件,但只在最后一个组件填写namerequired等参数。
  • 由于nbt树的渲染依赖于无序列表,而markdown默认格式中,无序列表在一行内打断不会影响整个列表的渲染,你可以另起一行加入一些条件描述等。
    • 当然,在渲染上会显示为同一行。你还是需要使用<br>来换行。
    • 你也可以直接使用html标签<ul> <li>进行更加自定义的编写。
  • 我们暂时暂未支持树内折叠块和共通标签的使用。后续可能会提供支持,敬请期待。

Powered by Vitepress and Github Pages