帮助:解析函数/dpl
dpl是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
dpl
展示指定页面的信息,包括页面长度、生成时间甚至模板参数。出自扩展 DynamicPageList3。
多数情况下,其功能可以由SMW和LST扩展配合模板实现。此外,DPL官方文档阅读难度不低,Bwiki使用较早版本与新版本特性略有不同,因此不推荐优先使用DPL。
主要特性:
- 支持多样的页面筛选方式,如类别(支持正则)、命名空间、链接、模板使用、标题、内容、修订日期、重定向等等。
- 支持输出页面元数据(如:类别、大小、缓存日期和页面ID等等)、页面内容(章节、解析函数/标签的调用、模板参数等等)
- 支持灵活的的输出格式和排序
文档:
语法
{{#dpl: 筛选页面 | 输出格式和控制 | 其他选项}}
- 如:
{{#dpl:namespace=帮助|titlematch=解析%|mode=ordered|count=2}}
主要参数:
- 筛选页面
- 按类别:category、categorymatch、categoryregexp、notcategory、notcategorymatch、notcategoryregexp、categoriesminmax
- 按空间:namespace、notnamespace
- 按链接:linksfrom、notlinksfrom、linksto、notlinksto、linkstoexternal、imageused、imagecontainer
- 按模板:uses、notuses、usedby
- 按标题:title、titlematch、titleregexp、titlelt、titlegt、nottitlematch、nottitleregexp
- 按内容:includematch、includematchparsed、includenotmatch、includenotmatchparsed
- 按版本:lastrevisionbefore、firstrevisionsince、allrevisionsbefore、allrevisionssince、maxrevisions、minrevisions
- 按用户:(在bwiki无效)
- ……
- 其中,带match的指使用%匹配,如%wi%。带regexp指使用正则表达式。
- 输出
- count 限制输出数量
- offset 从中间指定位置开始输出
- ordermethod 指定排序方式,如:size、pagetouched、pagesel、title、titlewithoutnamespace、sortkey......可以组合使用,以逗号隔开
- order 排序方向 descending或ascending
- mode 指定输出模式,如:unordered、ordered、none、inline、category和userformat。其中userformat是完全自定义,更灵活但是很复杂
- format 完全自定义输出格式(隐式定义mode=userformat),格式:format=Startall,Start,End,Endall (见示例)。可指定占位符输出数据如页面名、大小、各类日期等,详情见示例和官方文档
- include 为输出增加指定数据,如页面章节(如#章节名,##.*regexp.*)、模板参数({模板名}:参数)等等,多个值用逗号隔开。由于篇幅过大,详见官方文档的输出内容部分
- secseparators 为include的数据指定前后附加内容。格式:Start1,End1,Start2,End2,...... (见示例)
- ……
dpl支持数十个参数,请参阅官方文档了解所有细节
- 页面选择: Criteria for page selection
- 输出格式: Controlling output format
- 输出顺序: Controlling output order
- 输出内容: Controlling output volume
- 其他参数: Other parameters
示例
帮助空间的两个页面
{{#dpl:
|namespace = 帮助
|ordermethod=title
|count=2
}}
帮助空间的两个标题匹配解析函数/a%
模式页面,手动指定以列表形式显示
Startall
- Start 解析函数/anchorencode End
- Start 解析函数/arraydefine End
Endall
{{#dpl:
|namespace = 帮助
|titlematch = 解析函数/a%
|format= Startall\n,* Start [[%PAGE%|%TITLE%]], End\n, \nEndall
|ordermethod=title
|count=2
}}
其中:
- format的参数是
format=Startall,Start,End,Endall
- titlematch支持用%匹配页面(类似SQL中的like)
- %PAGE% 和 %TITLE% 分别代表完整页面名,和页面标题(不带命名空间)
更复杂的页面筛选、格式和属性,包括页面缓存时间、页面大小、模板E的参数1。 开始
- 缓存=2025-08-29 16:14:11 - 大小=86358 - 解析函数/ask3661 -
SMW
- 缓存=2025-08-29 16:13:43 - 大小=6725 - 解析函数/arraysort2483 -
Arrays
结束
{{#dpl:
|addpagetoucheddate= true
|addpagesize = true
|namespace = 帮助
|titlematch = 解析函数/a%
|uses = Template:E
|include = {E}:1
|secseparators=<code>,</code> ,
|format=开始\n,* 缓存=%DATE% - 大小=%SIZE% - [[%PAGE%|%TITLE%]]%PAGEID% - ,\n,\n结束
|ordermethod=pagetouched
|order= descending
|count=2
}}
其中:
- addpagetoucheddate、addpagesize 指定查询页面缓存日期和页面大小,可以在结果中用%DATE%和%SIZE%作为占位符(同时只能查询一种日期,所有的日期都用%SIZE%占位)
- uses 筛选使用模板E的页面。结合上边的条件,就是筛选帮助空间、名字匹配
解析函数/a%
且使用了模板E的页面。 - include 指定包含多个输出项,可以是页面章节、解析函数使用、模板参数或者LST标记的section
- secseparators 附加到多个include项的起止位置,其格式是:sec-1-start, sec-1-end, sec-2-start, sec-2-end, ...
- format %PAGEID%代表页面ID(curid)
- ordermethod pagetouched代表按照页面缓存日期排序
DPL支持复杂格式的自定义,如表格、多列列表等等。当然用SMW+模板可以更灵活、有效的实现。此处仅为展示DPL能力:
{{#dpl:
|addpagetoucheddate= true
|addpagesize = true
|namespace = 帮助
|titlematch = 解析函数/a%
|uses = Template:E
|include = {E}:1,{E}
|secseparators=,,</div><div class="line"><div>,</div>
|format=,<div class="flex-info-card"><div class="line">\n[[%PAGE%|%TITLE%]]\n</div><div class="line">\n缓存 \n%DATE%\n</div><div class="line">\n出自扩展 , \n</div><div class="line">\ncurid %PAGEID%\n\n大小 %SIZE%\n</div></div>,\n
|userdateformat=Y-m-d H:i:s
|ordermethod=pagetouched
|order= desc
|count=5
}}
备注:页面中使用了#css定制样式
缓存 2025-08-29 16:14:11
curid 3661
大小 86358
缓存 2025-08-29 16:13:43
curid 2483
大小 6725
缓存 2025-08-29 16:13:43
curid 2484
大小 6135
缓存 2025-08-29 16:13:43
curid 2485
大小 2982
等价HTML见源码
缓存: 2024-12-20 14:47:29
出自扩展 123456789
E模板渲染结果
curid 123456
大小 123456
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。
战双帕弥什 - zspms
恋与深空 - lysk
战争雷霆 - warthunder
QQ飞车手游 - qqspeed
深空之眼 - dhmmr
缺氧 - oni
Unturned - unturned
火湖 - sulfur
我的世界地下城 - mcd
- Achievements
- Achievements/JE
- Achievements/LCE
- Achievements/old
- Advancements
- Bedrock nbt
- Block
- Block state table
- Development version list
- DungeonsAchievements
- DungeonsDLC
- DungeonsEvent
- Entity
- Fixes/doc
- History
- Issue list
- Item
- Load achievements
- Load advancements
- Load dungeonsachievements
- Math
- Pending approval/doc
- Release version
- Tag/list
- Version link/compatible
- Version nav
开普勒斯 - keplerth
Marvel Snap - marvelsnap
Terraria Wiki - tr
幸福工厂 - satisfactory
魔女兵器 - mnbq
水蓝魔力 - bluecg
桌游 - tg