bugfix250107.1
全站通知:

帮助:快速入门

来自恋与深空WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

导言

【本页内容】
面向:有一定编程基础的编辑者
概述:常用的快速入门知识,比较框架,不够深入
系统学习:建议在tools系统学习,大部分基础知识也可以在thwiki学习

页面管理

操作 步骤
进入页面

在地址栏输入页面URL后回车进入,例如:`https://wiki.biligame.com/lysk/页面名称`

创建页面

在地址栏输入页面URL后回车进入,例如:`https://wiki.biligame.com/lysk/新页面名称`
如果页面不存在,系统会提示创建新页面

编辑页面

1、进入页面,在"wiki功能"菜单中选择"编辑"
2、进入页面,按下Shift + Alt + E

删除页面

进入页面,在"wiki功能"菜单中选择"删除"

移动(重命名)页面

进入页面,在"wiki功能"菜单中选择"移动"
输入新的页面名称并确认

页面编辑

插入多媒体

类型 上传方式 调用方式
图片

1、在任意界面进入编辑
2、本地选择图片(可多选,支持png、jpg、gif等)
3、拖动到编辑器里的[上传图片]部位,点击上传

(详见:Mediawiki说明thwiki说明
1、file调用
[[file:钻石.png|20x20px]]

2、gallery调用
<gallery>
钻石.png|钻石图片|alt=钻石.png
金币.png|金币图片|alt=金币.png
</gallery>

视频 无法上传至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样式-->
/*}}*/}}
}}

预览:本页面模板

预览使用模板.png

点击预览后,在按钮下方可以看到本页使用的模板、本页引用的页面

预览:解析器分析数据

预览解析器分析.png

点击预览后,在按钮下方可以看到解析器分析
通常需要重点关注展开后大小
(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。

2、怎么创建:页面名必须带有 `Widget:` 前缀。例如,创建一个名为 "ExampleWidget" 的小部件页面,网址为 `https://wiki.biligame.com/lysk/Widget:ExampleWidget`。
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解决