帮助:快速入门
导言
页面管理
操作 | 步骤 |
---|---|
进入页面 |
在地址栏输入页面URL后回车进入,例如:`https://wiki.biligame.com/lysk/页面名称` |
创建页面 |
在地址栏输入页面URL后回车进入,例如:`https://wiki.biligame.com/lysk/新页面名称` |
编辑页面 |
1、进入页面,在"wiki功能"菜单中选择"编辑" |
删除页面 |
进入页面,在"wiki功能"菜单中选择"删除" |
移动(重命名)页面 |
进入页面,在"wiki功能"菜单中选择"移动" |
页面编辑
插入多媒体
类型 | 上传方式 | 调用方式 |
---|---|---|
图片 | 1、在任意界面进入编辑 |
(详见:Mediawiki说明或thwiki说明) |
视频 | 无法上传至wiki,但可发布在bilibili,站内调用bili视频 | 目前站内建议使用#widget:biliplayer调用播放 |
音频 | 个人无法上传,但可通过官方管理者上传至wiki,继而在本站使用 | 本站尚未撰写音频播放组件,但其他站点有参考内容,需要再排 |
基础编辑
常见基础
两个回车=换行。
模板通常不怎么支持Tab、空格格式化代码,也不怎么接受空行,如果出现莫名其妙多了p元素的情况,多半就是因为这个原因。
所以大家写模板一般都直接一长串代码接在一起,难看&反人类,但设定如此(。
wikitext
支持wikitext。
html
main空间下的页面只支持部分html元素(只支持部分Dom元素)。
常见的有div、span、pre、poem、p等,记不清哪些不能用了,如果发现写的元素没有生效建议来这里补充✏️编辑。
css
缺点:不能使用>,会被转义
{{#tag:bstyle|/*{{#tag:pre|*/
<!--此处写入css样式,支持魔术字-->
/*}}*/}}
缺点:不能用魔术字
<bstyle>/*<pre>*/
<!--此处写入css样式,不能用魔术字-->
/*</pre>*/</bstyle>
缺点:禁止出现部分css属性,如url/var...(详见tools)
1、直接写css
{{#css: CSS代码}}
{{#css:#test{color:red}
}}
2、引入页面
{{#css: 页面名}}
{{#css:MediaWiki:Test.css}}
防止重复加载
1、什么是重复加载:
举例,在模板写了{{#css}}或者<bstyle>,然后某个页面大量使用该模板,则style样式的调用次数=使用次数。
2、会导致什么问题:
影响加载,特别是有大量js内容的页面,也容易导致js加载失败
3、怎么防止重复加载:
通过唯一变量进行约束,举例如下:
{{#if:{{#var:变量名}}||{{#vardefine:变量名|任意值}}
<!--防止重复加载JS-->
{{ResourcesLoad|xxxx.js}}
<!--防止重复调用widget-->
{{#widget:xxxx}}
<!--防止重复加载css样式-->
{{#tag:bstyle|/*{{#tag:pre|*/
<!--此处写入css样式-->
/*}}*/}}
}}
预览:本页面模板
点击预览后,在按钮下方可以看到本页使用的模板、本页引用的页面
预览:解析器分析数据
点击预览后,在按钮下方可以看到解析器分析
通常需要重点关注展开后大小
(expanded size)指的是模板、解析器函数等被完全展开处理后的页面文本大小,2,097,152字节是系统允许的最大展开限制,如果展开后大小超出限制值,该页面会无法保存或报错,需要优化页面内容或模板使用方式。
容易造成展开后大小过大的原因:
1、模板的过度使用:多层嵌套、重复调用、大量参数和复杂逻辑
3、魔术字滥用:变量({{PAGENAME}})、行为开关(__NOTOC__)、解析器函数({{#switch:}})
通常情况下,模板的嵌套使用和css的重复调用会是主要原因
特别需要注意的是,如果使用了循环/遍历(loop/arrayMap等),最终展开后大小会莫名翻倍
命名空间
常用命名空间例举如下,更多信息见tools/命名空间
命名空间 | 查看权限 | 编辑权限 | 创建权限 |
---|---|---|---|
Main | 所有用户 | 注册用户 | 注册用户 |
Widget | 所有用户 | 管理员 | 管理员 |
MediaWiki | 所有用户 | 管理员 | 管理员 |
模板 | 所有用户 | 注册用户 | 注册用户 |
表单 | 所有用户 | 注册用户 | 注册用户 |
Main 命名空间
1、是什么:Main 命名空间是主命名空间,绝大部分的wiki内容都直接放在Main空间下。
2、怎么创建:页面名无需前缀。例如,创建一个名为 "ExamplePage" 的页面,网址为 `https://wiki.biligame.com/lysk/ExamplePage`。
模板 命名空间
1、是什么:用于存放可重复使用的页面片段,帮助标准化内容格式,可参考模板:color,模板:黑幕。
2、怎么创建:页面名必须带有 `模板:` 前缀。例如,创建一个名为 "ExampleTemplate" 的模板页面,网址为 `https://wiki.biligame.com/lysk/模板:ExampleTemplate`。
3、怎么使用:
- 嵌入模板:使用 `{{模板名称}}` 或 `{{模板名称|<value>}}` 或 {{$|模板名称|k=value}} 在其他页面中嵌入模板。
- 更新模板:直接编辑模板页面以更新其内容。
MediaWiki 命名空间
1、是什么:MediaWiki 命名空间用于存放全局内容(影响整个站点的外观和行为)、js、css、数据(lua/json)。
2、怎么创建:页面名必须带有 `MediaWiki:` 前缀。例如,创建一个名为 "ExampleMessage" 的系统消息页面,网址为 `https://wiki.biligame.com/lysk/MediaWiki:ExampleMessage`。
3、怎么使用:
全局生效的内容:
MediaWiki:Sidebar负责顶部导航(缓存)。
MediaWiki:Sitenotice负责全站顶部公告(缓存)。
Mediawiki:common.css负责全站css(缓存)。
Mediawiki:common.js负责全站js(缓存)。
自定义的常用页面:
Mediawiki:Main.css负责全站css(无缓存,管理者临时测试用)。
Mediawiki:Main.js负责全站js(无缓存,管理者临时测试用)。
Mediawiki:Dark.css负责站内部分页面的暗色模式css(通过在部分页面使用{{#widget:Dark}}调用)。
js内容:
通过{{JS|js页面名}}或者{{ResouceLoader|js页面名}}调用js代码,或通过widget{{#widget:自己编写的调用页面}}进行调用。
bwiki目前对jq的支持不够好,可能出现加载失败的问题,建议尽量使用原生js。
但ResouceLoader这个调用带有jq,所以通过这个方式使用js,偶然出现加载失败是无法避免的。官方优化在排期,未来可期。
Widget 命名空间
1、是什么:Widget 命名空间用于存放小部件代码,这些小部件通常通常做工具、使用js的时候会用到,基本等同于写html。
widget传参:const arg = `<!--${argName}-->`;
3、怎么使用:
- 嵌入页面:使用 `{{#widget:小部件名称|argName=test}}` 在其他页面中嵌入小部件。
- 更新小部件:直接编辑 Widget 命名空间中的页面以更新小部件功能。
表单 命名空间
1、是什么:表单 命名空间用于创建和管理表单,便于用户输入和数据收集。
2、怎么创建:页面名必须带有 `表单:` 前缀。例如,创建一个名为 "ExampleForm" 的表单页面,网址为 `https://wiki.biligame.com/lysk/表单:ExampleForm`。可以参考表单:通用图鉴。
3、怎么使用:
- 嵌入表单:使用 `{{#form:表单名称}}` 在其他页面中嵌入表单。
- 收集数据:使用表单收集用户输入的数据,并进行分析和处理。
常见问题
改了内容,但是页面还是显示旧数据
1、审核机制(摘自tools):
BWiki默认开启Moderation扩展。保存编辑可能触发审核,触发审核的编辑会进入审核队列——仅对编者有效,其他用户暂时不可见。由拥有审核(moderation)权限的用户决定是否通过(如「版主」和「管理员」用户组)。
等待审核期间用户可以继续编辑此页面,不受影响。
拥有绕过审核(skip-moderation)权限的用户(如「自动化版主用户」、「管理员」用户组)的编辑会直接生效。
2、缓存机制(摘自tools)
【缓存概述】
BWiki 使用多种缓存机制来加快页面加载速度并提升用户体验。主要的缓存类型包括页面���存、资源缓存和 URL 缓存。
缓存类型 | 子类型 | 说明 |
---|---|---|
页面缓存 | CDN缓存 | 页面生成的 HTML 会被 CDN 缓存,未登录用户的缓存时间较长,而登录用户的缓存时间较短。 |
MediaWiki缓存 | Wiki 系统会缓存解析器的结果,缓存时间可达数天,只有在页面修改或手动刷新时才会更新。 | |
资源缓存 | 多媒体文件 | 变更后,缓存会立即更新。 |
代码文件 | CSS 和 JS 文件变更后,缓存更新时间约为 30 分钟。 | |
URL缓存 | HTTP Get请求 | 部分 HTTP Get 请求会被基于 URL 建立缓存,刷新时间与代码文件一致。 |
【刷新和绕过缓存】
刷新缓存:可以通过页面右上方的菜单、增加 ?action=purge 参数、空编辑或 API 刷新来更新缓存。
绕过缓存:通过在资源 URL 中增加随机数来绕过缓存,但不建议在公共资源中使用这种方法。
【注意事项】
让所有用户绕过缓存会增加服务器负载,因此应谨慎使用。(大体量数据绕过缓存+多用户请求使用可能会引来不正常的后果,可能被管理抓住整改)
在开发期间,可以手动在控制台加载额外的 JS 进行测试。
常见的{{#xxx}}或{{}}是什么东西
模板或者解析函数
解析函数相关内容比较多,可以直接阅读tools/解析函数
页面大量使用解析函数的话,可能会出现展开后大小超出限制的情况,尤其在SMW的ask+循环时容易出现
【展开后大小超出限制】
每个页面编辑时,看下方的解析器分析数据,主要关注展开后大小、模板参数大小、最高扩展深度
【LUA替代解析函数】
如果内容复杂,必须使用很多解析函数,建议使用lua模块替代解析函数
JS也行,不过bwiki的js容易出各种这个那个的问题,lua能解决的话建议lua解决