模組:PatternedCandidateUtils
外观
![]() | 此模块被引用於系統介面中。 任何對此模块的修改會立即反映於維基百科的用户介面。 為了避免造成大規模的影響,编者可以在本模块的沙盒 和测试样例 页面进行实验。 測試後無誤的版本可以一次性地加入此模块中,但是修改前請務必於討論頁發起討論。 |
本模块用于生成页面的标题列表。
例子
以Wikipedia:優良條目評選/列表为例,介绍如何从Wikipedia:優良條目評選/提名區源代码中抽取二级标题(== ××× ==
)。
{{#invoke:PatternedCandidateUtils|list
| title = Wikipedia:優良條目評選/提名區
| pattern = ==%s*(.-)%s*==%f[^=]
| blackregex = ^=.*=$
| linkprefix = Wikipedia:優良條目評選#
}}
参数解说:
|title=Wikipedia:優良條目評選/提名區
— 从「Wikipedia:優良條目評選/提名區」抽取标题|pattern===%s*(.-)%s*==%f[^=]
— Lua的模式字符串,用于捕获提取二级标题。|blackregex=^=.*=$
— 上方模式串会过度提取三级标题,如=== Jumbo的意见 ===
会得到= Jumbo的意见 =
。可用本参数屏蔽开头和结尾是等号的捕获内容。|linkprefix=Wikipedia:優良條目評選#
— 给提取的标题加上前缀,以供链接到Wikipedia:優良條目評選页对应章节。
参见
local z = {}
function getCandidates( frame )
page = mw.title.new( frame.args.title ):getContent()
matches = {}
for m in string.gfind( page, frame.args.pattern ) do
table.insert( matches, m )
end
return matches
end
function z.count( frame )
return #getCandidates( frame )
end
function z.list( frame )
list = getCandidates( frame )
linkprefix = frame.args.linkprefix
for i = 1, #list do
if linkprefix then
sections[i] = '[[:' .. linkprefix .. sections[i] .. '|' .. sections[i] .. ']]'
else
sections[i] = '[[:' .. sections[i] .. ']]'
end
end
if #list > 0 then
return table.concat( list, '-' )
else
return '暂无'
end
end
return z