Jump to content

Module:Get short description

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Qwerfjkl (talk | contribs) at 14:52, 14 August 2022 ([Bawl!]). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

local p = {}
function p.main(frame)
	local page = frame.args.page or mw.title.getCurrentTitle().fullText
	local nomatch = frame.args.nomatch or ""
--args: 1 - ustring pattern, 2 - value if present, 3 - value if absent, 
--      page - page to test if not this page


	page = mw.title.new(page)
	if not page then
		--bad title
		return 'Pages does not exist'
	end
	local content = page:getContent()

	if not content then
		--page does not exist
		return "PDNE"
	end
	content = frame:preprocess(content) -- expand content

	return mw.ustring.match(content, '<div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">([^<]+)') 
	-- 	if args["sub"] then
	-- 		--return value should have capture groups substed in
	-- 		local pattern = args["1"] or ""
	-- 		if mw.ustring.sub(pattern, 1, 1) ~= "^" then
	-- 			--pattern does not force it to be at start of page
	-- 			pattern = "^.-" .. pattern
	-- 		end
	-- 		if mw.ustring.sub(pattern, -1) ~= "$" then
	-- 			--pattern does not force it to be at end of page
	-- 			pattern = pattern .. ".*$"
	-- 		end
	-- 		--pattern will now match entire content, so running gsub will
	-- 		--return the string that has been passed in parameter 2 with things
	-- 		--like %1 substituted, NOTE: %0 does not work in this
	-- 		local out = mw.ustring.gsub(content, pattern, args["2"] or "")
	-- 		return out
	-- 	else
	-- 		return args["2"] or ""
	-- 	end
	-- else
	-- 	return args["3"] or ""
	-- end
end

return p