欢迎来到THBWiki!
如果您是第一次来到这里,请点击右上角注册一个帐户
有任何意见、建议、求助、反馈都可以在
讨论板
提出
THBWiki以专业性和准确性为目标,如果你发现了任何确定的错误或疏漏,可在登录后直接进行改正
查看“帮助:解析函数”的源代码
←
帮助:解析函数
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
少女
您没有权限编辑
帮助
命名空间内的页面。
您可以查看和复制此页面的源代码。
== I == === if === 来自ParserFunctions。<br /> 用于鉴别一个测试字串是否为空。一个只含有空白字符的字串会被判定为空。 ;格式:<code><nowiki>{{#if: 测试字串 | 字串非空输出值 | 字串空(或只有空白字符)输出值 }}</nowiki></code> :<code><nowiki>{{#if: 参数1 | 参数2 | 参数3 }}</nowiki></code> ;说明: :这个函数首先检查'参数1'是否为空。如果'参数1'不为空,则显示'参数2'。如果'参数1'为空或只含有空白字符(如空格,换行符等),则显示'参数3'。 ;例子: :<code><nowiki>{{#if: | yes | no}}</nowiki></code> → <code>{{#if: | yes | no}}</code> :<code><nowiki>{{#if: string | yes | no}}</nowiki></code> → <code>{{#if: string | yes | no}}</code> :<code><nowiki>{{#if: | yes | no}}</nowiki></code> → <code>{{#if: | yes | no}}</code> :<code><nowiki>{{#if:</nowiki><br /><br /><br /><nowiki>| yes | no}}</nowiki></code> → <code>{{#if: | yes | no}}</code> :测试字串总是被解释为纯文本,所以数学表达式不会被鉴别。 ::<code><nowiki>{{#if: 1==2 | yes | no }}</nowiki></code> → <code>{{#if: 1==2 | yes | no }}</code> ::<code><nowiki>{{#if: 0 | yes | no }}</nowiki></code> → <code>{{#if: 0 | yes | no }}</code> :最后一个参数(字串空输出值)可以省略。 ::<code><nowiki>{{#if: foo | yes }}</nowiki></code> → <code>{{#if: foo | yes }}</code> ::<code><nowiki>{{#if: | yes }}</nowiki></code> → <code>{{#if: | yes }}</code> ::<code><nowiki>{{#if: foo | | no}}</nowiki></code> → <code>{{#if: foo | | no}}</code> :这个函数可以被嵌套。嵌套时,需用完整格式的<code>#if</code>函数,替代外层<code>#if</code>函数的某个参数。最大可以嵌套七层,具体取决于网站和存储限制。 ::<code><nowiki>{{#if: 测试字串1 | 字串1非空输出值 | {{#if: 测试字串2 | 字串2非空输出值 | 字串2空(或只有空白字符)输出值 }} }}</nowiki></code> :可以用一个参数当作#if函数的测试字串。必须在变量名的后面加上管道符<code>|</code>。 ::<code><nowiki>{{#if:{{{1</nowiki><span style="color:red; font-weight:bold">|</span>}}}| 变量1中输入了文本 | 变量1中没有文本 }}</code> :对于在模板中的应用,更多例子可参照:[https://www.mediawiki.org/wiki/Help:Parser_functions_in_templates Help:Parser functions in templates] === ifeq === 来自ParserFunctions。<br /> 用于比较两个字串是否相同。 ;格式:<code><nowiki>{{#ifeq: 测试字串1 | 测试字串2 | 相同时输出值 | 不相同时输出值 }}</nowiki></code> ;例子: :如果两个字串都是有效的数值,则会按照数值进行比较。 ::<code><nowiki>{{#ifeq: 01 | 1 | equal | not equal}}</nowiki></code> → <code>{{#ifeq: 01 | 1 | equal | not equal}}</code> ::<code><nowiki>{{#ifeq: 0 | -0 | equal | not equal}}</nowiki></code> → <code>{{#ifeq: 0 | -0 | equal | not equal}}</code> ::<code><nowiki>{{#ifeq: 1e3 | 1000 | equal | not equal}}</nowiki></code> → <code>{{#ifeq: 1e3 | 1000 | equal | not equal}}</code> ::<code><nowiki>{{#ifeq: {{#expr:10^3}} | 1000 | equal | not equal}}</nowiki></code> → <code>{{#ifeq: {{#expr:10^3}} | 1000 | equal | not equal}}</code> :否则会按照文本进行比较,区分大小写。 ::<code><nowiki>{{#ifeq: foo | bar | equal | not equal}}</nowiki></code> → <code>{{#ifeq: foo | bar | equal | not equal}}</code> ::<code><nowiki>{{#ifeq: foo | Foo | equal | not equal}}</nowiki></code> → <code>{{#ifeq: foo | Foo | equal | not equal}}</code> ::<code><nowiki>{{#ifeq: "01" | "1" | equal | not equal}}</nowiki></code> → <code>{{#ifeq: "01" | "1" | equal | not equal}}</code> ''(注意与上方不带引号的区别)'' ::<code><nowiki>{{#ifeq: 10^3 | 1000 | equal | not equal}}</nowiki></code> → <code>{{#ifeq: 10^3 | 1000 | equal | not equal}}</code> ''(注意与上方使用了<code>#expr</code>函数的区别)'' ;{{color:red|'''注意'''}}: :<code>#ifeq</code>和<code>#switch</code>的数值比较与使用<code>#expr</code>进行比较不同: ::<code><nowiki>{{#ifeq: 12345678901234567 | 12345678901234568 | equal | not equal}}</nowiki></code> → <code>{{#ifeq: 12345678901234567 | 12345678901234568 | equal | not equal}}</code> ::<code><nowiki>{{#switch: 12345678901234567 | 12345678901234568 = equal | not equal}}</nowiki></code> → <code>{{#switch: 12345678901234567 | 12345678901234568 = equal | not equal}}</code> :因为PHP以整数型比较两个数字,然而: ::<code><nowiki>{{#ifexpr: 12345678901234567 = 12345678901234568 | equal | not equal}}</nowiki></code> → <code>{{#ifexpr: 12345678901234567 = 12345678901234568 | equal | not equal}}</code> :因为MediaWiki转换文本数字为浮点型,对于比较大的整数,会导致末尾被舍去。 ;{{color:red|'''注意'''}}: :在解析函数内部的标签和解析函数(如<code><nowiki></code>)会被暂时替换为一个唯一的代码。这会影响到比较结果: ::<code><nowiki>{{#ifeq: <nowiki>foo</nowiki> | <nowiki>foo</nowiki> | equal | not equal}}</nowiki></code> → <code>{{#ifeq: <nowiki>foo</nowiki> | <nowiki>foo</nowiki> | equal | not equal}}</code> ::<code><nowiki>{{#ifeq: <math>foo</math> | <math>foo</math> | equal | not equal}}</nowiki></code> → <code>{{#ifeq: <math>foo</math> | <math>foo</math> | equal | not equal}}</code> ::<code><nowiki>{{#ifeq: {{#tag:math|foo}} | {{#tag:math|foo}} | equal | not equal}}</nowiki></code> → <code>{{#ifeq: {{#tag:math|foo}} | {{#tag:math|foo}} | equal | not equal}}</code> ::<code><nowiki>{{#ifeq: [[foo]] | [[foo]] | equal | not equal}}</nowiki></code> → <code>{{#ifeq: [[foo]] | [[foo]] | equal | not equal}}</code> :如果被比较的字串 是由等价调用 含有这类标签的 '''同一'''模板 得到的,则值为真;但如果为 含有相同的这类标签的 '''两个'''模板,则值为假。 ;{{color:red|'''注意'''}}: :在用页面名变量(如:<code><nowiki>{{FULLPAGENAME}}</nowiki></code>)比较当前页面标题时,应小心。这些变量会将特殊字符转换为数字HTML实体。这会造成具有误导性的结果。比如,在一个标题为“L'Aquila”的页面上: ::<code><nowiki>{{#ifeq: L'Aquila | {{FULLPAGENAME}} | equal | not equal}}</nowiki></code> → <code>{{#ifeq: L'Aquila | {{FULLPAGENAME}} | equal | not equal}}</code> :上面的结果实际是错误的。经过改进之后,现在它会返回“<code>equal</code>”。但是对于其他情况可能不会如此。如<code><nowiki>{{FULLPAGENAME}}</nowiki></code>,在部分网站,可能会将第一个字母替换为大写,可能会将所有下划线替换为空格。 :为了解决这个问题,可以在两个参数上都应用变量: ::<code><nowiki>{{#ifeq: {{FULLPAGENAME: L'Aquila}} | {{FULLPAGENAME}} | equal | not equal}}</nowiki></code> → <code>equal</code> === iferror === 来自ParserFunctions。<br /> 用于分辨输入字串,并返回两个结果中的一个。如果输入字串中含有HTML元素包含<code>class="error"</code>,则会被当作<code>true(真)</code>。<br /> <code>class="error"</code>能由其他解析函数,如[[帮助:解析函数#expr|expr]]、[[帮助:解析函数#time|time]]、[[帮助:解析函数#rel2abs|rel2abs]]产生,模板([https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Templates Templates])错误,如循环、递归和其他解析器错误也能产生。 ;格式:<code><nowiki>{{#iferror: 测试字串 | 错误时输出值 | 正确时输出值 }}</nowiki></code> ;例子 :两个'输出值'可省略其一或两者都省略。如果'正确时输出值'被省略了,则当没有错误时,会返回'测试字串'的值。如果'错误时输出值'被省略了,则当有错误时,会返回空字串: ::<code><nowiki>{{#iferror: {{#expr: 1 + 2 }} | error | correct }}</nowiki></code> → <code>{{#iferror: {{#expr: 1 + 2 }} | error | correct }}</code> ::<code><nowiki>{{#iferror: {{#expr: 1 + X }} | error | correct }}</nowiki></code> → <code>{{#iferror: {{#expr: 1 + X }} | error | correct }}</code> ::<code><nowiki>{{#iferror: {{#expr: 1 + 2 }} | error }}</nowiki></code> → <code>{{#iferror: {{#expr: 1 + 2 }} | error }}</code> ::<code><nowiki>{{#iferror: {{#expr: 1 + X }} | error }}</nowiki></code> → <code>{{#iferror: {{#expr: 1 + X }} | error }}</code> ::<code><nowiki>{{#iferror: {{#expr: 1 + 2 }} }}</nowiki></code> → <code>{{#iferror: {{#expr: 1 + 2 }} }}</code> ::<code><nowiki>{{#iferror: {{#expr: 1 + X }} }}</nowiki></code> → <code>{{#iferror: {{#expr: 1 + X }} }}</code> ::<code><nowiki>{{#iferror: {{#expr: . }} | error | correct }}</nowiki></code> → <code>{{#iferror: {{#expr: . }} | error | correct }}</code> ::<code><nowiki>{{#iferror: <strong class="error">a</strong> | error | correct }}</nowiki></code> → <code>{{#iferror: <strong class="error">a</strong> | error | correct }}</code> === ifexist === 来自ParserFunctions。<br /> 此函数将输入字串当作页面标题。根据本地wiki是否存在该标题的页面,返回两个值中的一个。 ;格式:<code><nowiki>{{#ifexist: 页面标题 | 页面存在输出值 | 页面不存在输出值 }}</nowiki></code> ;例子 :此函数当页面存在时判定为<code>true(真)</code>,不论它是否包含内容,是否为可见空白页(包含元数据,如分类链接和魔术字([https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Magic_words Magic words]),但不含可见内容),是否为空白页,是否为重定向页。 :只有链接为红色(页面不存在,如<code>[[帮助:闷声发大财]]</code>)的页面,才会被判定为<code>false(假)</code>,包括曾经存在但已经被删除的页面。 ::<code><nowiki>{{#ifexist: 帮助:解析函数 | exists | doesn't exist }}</nowiki></code> → <code>{{#ifexist: 帮助:解析函数 | exists | doesn't exist }}</code> ::<code><nowiki>{{#ifexist: 帮助:闷声发大财 | exists | doesn't exist }}</nowiki></code> → <code>{{#ifexist: 帮助:闷声发大财 | exists | doesn't exist }}</code> :自定义过的系统消息页([https://www.mediawiki.org/wiki/Special:MyLanguage/Help:System_message System message])和由软件定义的特殊页([https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Special_pages Special pages])会被判定为<code>true(真)</code>。 :[[文件:总书记.jpg|thumb|link=稗田阿求|150px|总书记(喂]] ::<code><nowiki>{{#ifexist: 特殊:监视列表 | exists | doesn't exist }}</nowiki></code> → <code>{{#ifexist: 特殊:监视列表 | exists | doesn't exist }}</code> ::<code><nowiki>{{#ifexist: 特殊:用户查核 | exists | doesn't exist }}</nowiki></code> → <code>{{#ifexist: 特殊:用户查核 | exists | doesn't exist }}</code> (因为安装了[https://www.mediawiki.org/wiki/Extension:Checkuser CheckUser]) ::<code><nowiki>{{#ifexist: MediaWiki:Copyright | exists | doesn't exist }}</nowiki></code> → <code>{{#ifexist: MediaWiki:Copyright | exists | doesn't exist }}</code> (因为[[MediaWiki:Copyright]]页面被自定义过) :如果一个页面使用<code>#ifexist:</code>来检查目标页面是否存在,则该页面会出现在[[特殊:链入页面]]中目标页面的列表里。 :所以如果本页面({{FULLPAGENAME}})中存在<code><nowiki>{{#ifexist:用户:睿域重工研究院}}</nowiki></code>{{#ifexist:用户:睿域重工研究院}},则在[[特殊:链入页面/用户:睿域重工研究院]]中,会包含<code>{{FULLPAGENAME}}</code>。 :在使用了共享媒体存储库(Shared media repository)的wiki上,<code>#ifexist:</code>还可以用来检查文件是否被上传到指定的存储库,而不是wiki自身: ::<code><nowiki>{{#ifexist: 文件:已经决定了.jpg | exists | doesn't exist }}</nowiki></code> → <code>{{#ifexist: 文件:已经决定了.jpg | exists | doesn't exist }}</code> ::<code><nowiki>{{#ifexist: 文件:由你来当.jpg | exists | doesn't exist }}</nowiki></code> → <code>{{#ifexist: 文件:由你来当.jpg | exists | doesn't exist }}</code> ::<code><nowiki>{{#ifexist: 媒体:总书记.jpg | exists | doesn't exist }}</nowiki></code> → <code>{{#ifexist: 媒体:总书记.jpg | exists | doesn't exist }}</code> :如果本地wiki已经创建了以上文件,则会显示<code>exists</code>。 :<code>#ifexist:</code>不对跨wiki链接起作用。 ;ifexist的限制 :<code>#ifexist:</code>被认为是一个“高开销解析函数”;每个页面只能包含有限个这样的函数(包括模板中含的函数)。当超过限制的数量时,任何超出数量的<code>#ifexist:</code>函数会被自动判定为<code>false(假)</code>,不论目标页面是否存在。并且页面会被添加至[[:分类:页面中有太多耗费的语法功能呼叫]]。各个追踪分类([https://www.mediawiki.org/wiki/Help:Tracking_categories Tracking categories])的名字在不同语言的wiki内可能有所不同。 :在一些应用场合下,可以使用CSS来模拟ifexist的效果,如使用选择器<code>a.new</code>(用于选择指向不存在页面的链接)或<code>a:not(.new)</code>(用于选择指向存在页面的链接)。更进一步,既然单个页面中高开销解析解析函数的数量限制是由[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit $wgExpensiveParserFunctionLimit]参数控制的,可以通过修改<code>LocalSettings.php</code>来满足使用要求。 === ifexpr === 来自ParserFunctions。<br /> 此函数会计算一个表达式,并根据计算结果的布尔值,返回两个字串中的一个 ;格式:<code><nowiki>{{#ifexpr: 表达式 | 为真输出值 | 为假输出值 }}</nowiki></code> :'表达式'的计算方法和上面[[帮助:解析函数#expr|expr]]完全一样,可用的运算符也相同。运算结果会被当作一个布尔值。 ;例子 :输入任何空表达式会判断为<code>false(假)</code>: ::<code><nowiki>{{#ifexpr: | yes | no}}</nowiki></code> → <code>{{#ifexpr: | yes | no}}</code> :和上面[[帮助:解析函数#expr|expr]]中所述相同:零值被判断为<code>false(假)</code>,任何非零值被判断为<code>true(真)</code>,所以这个函数的功能也可以用[[帮助:解析函数#ifeq|ifeq]]和[[帮助:解析函数#expr|expr]]来实现: ::<code><nowiki>{{#ifeq: {{#expr: 表达式 }} | 0 | 为假输出值 | 为真输出值 }}</nowiki></code> :但在表达式为空或有误时,这两种实现方式的效果不同(因为错误消息会被当作一个空字串,它不等于零,所以会得到'为真输出值'): ::<code><nowiki>{{#ifexpr: = | yes | no }}</nowiki></code> → <code>{{#ifexpr: = | yes | no }}</code> :而: ::<code><nowiki>{{#ifeq: {{#expr: = }} | 0 | no | yes }}</nowiki></code> → <code>{{#ifeq: {{#expr: = }} | 0 | no | yes }}</code> :两个'输出值'可省略其一或两者都省略。当该情况下的输出值被省略时,不会输出结果。 ::<code><nowiki>{{#ifexpr: 1 > 0 | yes }}</nowiki></code> → <code>{{#ifexpr: 1 > 0 | yes }}</code> ::<code><nowiki>{{#ifexpr: 1 < 0 | yes }}</nowiki></code> → <code>{{#ifexpr: 1 < 0 | yes }}</code> ::<code><nowiki>{{#ifexpr: 0 = 0 | yes }}</nowiki></code> → <code>{{#ifexpr: 0 = 0 | yes }}</code> ::<code><nowiki>{{#ifexpr: 1 > 0 | | no}}</nowiki></code> → <code>{{#ifexpr: 1 > 0 | | no}}</code> ::<code><nowiki>{{#ifexpr: 1 < 0 | | no}}</nowiki></code> → <code>{{#ifexpr: 1 < 0 | | no}}</code> ::<code><nowiki>{{#ifexpr: 1 > 0 }}</nowiki></code> → <code>{{#ifexpr: 1 > 0 }}</code> === info === 来自Semantic Mediawiki。<br /> {{#lsth:帮助:SMW|info}} === inoutro === 来自Duration Extension。<br /> {{#lsth:帮助:时长扩展|inoutro}} === int === MediaWiki原生函数。<br /> 获取特定[[特殊:所有消息|Message]]在当前语言中的内容,并可以提供多个参数(各个参数会按顺序分别替换掉Message内容中的$1、$2、...和$N),Message可以用扩展及Mediawiki命名空间定义。 ;格式:<code><nowiki>{{int: Message名称 | 参数1 | 参数2 | ... | 参数N }}</nowiki></code> ;例子: :<code><nowiki>{{int: edit }}</nowiki></code> → <code>{{int: edit }}</code> :<code><nowiki>{{int: sunday }}</nowiki></code> → <code>{{int: sunday }}</code> :<code><nowiki>{{int: mycustomjsprotected }}</nowiki></code> → <code>{{int: mycustomjsprotected }}</code> :<code><nowiki>{{int: multiarraymap-desc }}</nowiki></code> → <code>{{int: multiarraymap-desc }}</code> :<code><nowiki>{{int: markedaspatrolledtext }}</nowiki></code> → <code>{{int: markedaspatrolledtext }}</code> :<code><nowiki>{{int: markedaspatrolledtext | 首页 }}</nowiki></code> → <code>{{int: markedaspatrolledtext | 首页 }}</code> :<code><nowiki>{{int: pipe-separator }}</nowiki></code> → <code>{{int: pipe-separator }}</code> :<code><nowiki>{{int: parentheses | ABC括号内容 }}</nowiki></code> → <code>{{int: parentheses | ABC括号内容 }}</code>(自动生成符合语言的括号) :<code><nowiki>{{int: quotation-marks | ABC引号内容 }}</nowiki></code> → <code>{{int: quotation-marks | ABC引号内容 }}</code>(自动生成符合语言的引号) :<code><nowiki>{{int: imgmultipageprev }}</nowiki></code> → <code>{{int: imgmultipageprev }}</code> === invoke === 来自Scribunto。<br /> 此函数比较复杂,鉴于本Wiki没有使用此函数,故不详述,需要具体资料的话请参照[https://www.mediawiki.org/wiki/Extension:Scribunto Extension:Scribunto]。
返回
帮助:解析函数
。
导航菜单
个人工具
创建账号
登录
命名空间
帮助
讨论
查看
阅读
源码
查看历史
更多
搜索
常用
首页
东方Project
上海爱丽丝幻乐团
ZUN
幻想乡
幻想乡年表
东方年表
东方同人规约
近期新闻
沙盒(建议使用)
讨论板
加入我们
官方作品
官方游戏
旧作
东方灵异传
东方封魔录
东方梦时空
东方幻想乡
东方怪绮谈
东方红魔乡
东方妖妖梦
东方永夜抄
东方花映塚
东方风神录
东方地灵殿
东方星莲船
东方神灵庙
东方辉针城
东方绀珠传
东方天空璋
东方鬼形兽
东方虹龙洞
东方兽王园
小数点射击游戏
东方文花帖
东方文花帖DS
妖精大战争
弹幕天邪鬼
秘封噩梦日记
弹幕狂们的黑市
黄昏边境合作游戏
东方萃梦想
东方绯想天
东方非想天则
东方心绮楼
东方深秘录
东方凭依华
东方刚欲异闻
官方音乐
原曲列表
非音乐CD音乐列表
音乐CD曲目列表
蓬莱人形
莲台野夜行
梦违科学世纪
卯酉东海道
大空魔术
未知之花 魅知之旅
鸟船遗迹
伊奘诺物质
燕石博物志
旧约酒馆
虹色的北斗七星
幺乐团的历史系列
幺乐团的历史 vol.1
幺乐团的历史 vol.2
幺乐团的历史 vol.3
幺乐团的历史 vol.4
幺乐团的历史 vol.5
格斗游戏OST
幻想曲拔萃
全人类的天乐录
核热造神非想天则
暗黑能乐集心绮楼
深秘乐曲集
深秘乐曲集·补
完全凭依唱片名录
贪欲之兽的音乐
商业出版品附带CD
官方书籍
东方香霖堂
东方三月精
第一季
月之妖精
第二季
第三季
第四季
东方文花帖
风之号外
东方紫香花
六十年不见的紫香花
东方儚月抄
漫画
小说
四格
东方茨歌仙
东方铃奈庵
东方醉蝶华
东方智灵奇传
东方求闻史纪
记忆幻想乡
东方求闻口授
魔理沙的魔法书
宇佐见的魔法书
东方外来韦编
东方文果真报
东方人妖名鉴
宵暗篇
常世篇
幻想Narrato Graph
官方角色
公式资料
附带文档
游戏对话
官方作品光盘信息
角色自称用词表
官作译名更改记录
原作物品列表
出典文献列表
其他ZUN参与的作品
西方Project
东方关联人物
游戏攻略
东方相关活动
从第二家开始的广播
东方STATION
数码游戏博览会
PoriPori☆Club
niconico超会议
斗会议
niconico原创游戏祭
枯萎Radio
GDGD
其他相关项目
东方我乐多丛志
东方四方山新闻
Play,Doujin!
东方电书流通
东方音乐流通
二次创作与活动
展会及活动导航
Comic Market
博丽神社例大祭
博丽神社例大祭SP
博丽神社秋季例大祭
博丽神社例大祭in台湾
海外博丽神社例大祭
博丽神社歌谣祭
博丽神社崇敬会相关活动
COMICUP
上海THONLY
东方Only活动
东方红楼梦
角色Only活动
作品Only活动
地区Only活动
其他地区举办的展会
其他展会
M3
COMIC1
展会作品列表
展会作品数量
展会同人志列表
展会专辑列表
展会软件列表
展会视频列表
商业二次创作
电脑游戏
东方月神夜
家用机游戏
Play,Doujin
手机游戏
东方大炮弹
东方LostWord
东方Dungeon Dive
东方弹幕神乐
东方幻想Eclipse
同人二次创作
同人社团列表
同人志分类
同人专辑分类
同人专辑搜索
原曲作品数量
同人软件列表
Steam游戏列表
同人角色列表
同人视频列表
其他形式同人
同人文章列表
同人画师列表
同人封面角色
东方相关周边
PVCFigure
GarageKit
小型物品
其他形式周边
MUGEN
THB相关项目
THB策划
中文东方人气投票
东深见讲坛
幻想乡柱状地图
THB衍生
同人专辑搜索
原曲认知测验
东方相关QQ群组列表
THB媒体
微博
Bilibili
直播间
GitHub
THB协力
博丽神主ZUN微博
东方我乐多丛志
MineCraft幻想乡
京都幻想剧团
幻奏盛宴
功能与帮助
最近更改
随机浏览
编写规范
收录方针
命名规范
同人社团
同人音乐
封面图片
二次设定
编辑帮助
基础帮助
常用模板
进阶代码
函数用法
编写翻译表
语义维基
样式类用法
颜色列表
工具
链入页面
相关更改
特殊页面
页面信息
其他
联系管理员
关于THBWiki
捐款支持
语言
English
italiano
日本語
中文