仓库状态: working in progress
bangumi 现有的需要进行语法解析的有前端和后端两部分,各个语言应当对相同的内容解析出相同的结果。
- wiki 文本可以使用
\n
或者\r\n
作为换行符,下文不区分\n
和\r\n
。 - wiki 应该以
{{Infobox
开始,以\n}}
结束,空文本和{{Infobox\n}}
具有相同的含义。 - 每一个 wiki 最多具有一个类型,于
{{Infobox
位于同一行。型如{{Infobox Type
,类型仅能包含[a-zA-Z]
和/
。类型可以省略。 - wiki 可以包含多个字段,每个字段必须另起一行,以
|
开始。必须使用=
分割字段名和字段值。(一行中如果出现多个=
应该如何处理?) - 字段值可以是字符串或者列表,默认为空字符串。
- 列表必须以
{
开始,以}
结束。=
和{
之间不应该包含换行符,可以包含空格。 - 列表元素和标记列表结束的
}
必须独立成行。 - 所有的列表元素都应该以被包在
[]
中,元素值可以包含[
或]
。如[v]]
应该为解析为v]
。 - 列表的元素可以是没有名称的简单元素(如
[value]
),或者包含名称和值的复杂元素(如[name|value]
)。名称和值都应当是字符串,不能嵌套。(name 或者 value 包含|
怎么办?) - 空行应该被忽略。
- 列表必须以
...
本仓库包含了一系列的测试用例。用于帮助各个解析器能解析出相同的结果。