You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Special:WantedPages嵌入为编号列表?

问题解答

1. 是否有参数指定Special:WantedPages的嵌入格式?

MediaWiki通过{{Special:WantedPages}}嵌入特殊页面时,默认输出逗号分隔的纯文本列表,没有官方参数直接修改输出格式。要实现类似原生页面的垂直编号/项目符号列表,可以用以下两种方法:

  • 用#tag函数转换格式:
    #tag:ol {{Special:WantedPages/6}}
    
    上述代码会把逗号分隔的内容转换成有序编号列表;如果要无序列表,把ol换成ul即可。
  • 结合#explode拆分内容生成列表:
    {{#explode:{{Special:WantedPages/6}}|,|@@@|
    # [[$item]]
    }}
    
    这里#explode会把逗号分隔的页面名拆分成单个条目,再逐个输出带链接的编号列表项。

2. 为什么用StringFunctions的#replace会得到空字符串?

核心原因是解析顺序问题:ParserFunctions(包括#replace)的执行优先级高于嵌入式特殊页面的解析。当#replace运行时,{{Special:WantedPages}}还只是一个未被处理的占位符,没有生成实际的逗号分隔文本,自然找不到逗号进行替换,最终输出空字符串。

要解决这个问题,需要用延迟解析的方式处理,比如编写Lua模块来获取并格式化页面列表:

local p = {}
function p.getFormattedWantedPages(frame)
    local limit = tonumber(frame.args[1]) or 10
    local wantedPages = mw.special.page.getWantedPages({limit = limit})
    local listItems = {}
    for idx, page in ipairs(wantedPages) do
        table.insert(listItems, string.format('%d. [[%s]]', idx, page.title))
    end
    return table.concat(listItems, '\n')
end
return p

将上述代码保存为模块(比如Module:WantedPagesFormatter),然后通过以下方式调用即可生成带编号的链接列表:

{{#invoke:WantedPagesFormatter|getFormattedWantedPages|6}}

内容的提问来源于stack exchange,提问作者Galactic Ketchup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 03:55:03