Toggle menu
14
229
69
27.1K
Kenshi Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 03:56, 24 February 2025 by Prd (talk | contribs) (Created page with "-- Find Image -- returns the first filename in the current page -- checks for [[File:, [[Image:, infobox image, gallery local p = {} function p.scan(frame) local args = frame.args local pargs = frame:getParent().args for k, v in pairs(pargs) do args[k] = v end -- first unnamed parameter or |title= local title = mw.text.trim(args[1] or args.title or "", "\t\r\n\f %[%]") local titleobj if title == "" then titleobj = mw.title.getCurrentTitle() else titleob...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Usage

{{#invoke:Findimage|scan}}

{{#invoke:Findimage|scan|page title}}

{{#invoke:Findimage|scan|title=page title}}


-- Find Image
-- returns the first filename in the current page
-- checks for [[File:, [[Image:, infobox image, gallery

local p = {}

function p.scan(frame)
	local args = frame.args
	local pargs = frame:getParent().args
	for k, v in pairs(pargs) do
		args[k] = v
	end

	-- first unnamed parameter or |title=
	local title = mw.text.trim(args[1] or args.title or "", "\t\r\n\f %[%]")
	local titleobj
	if title == "" then
		titleobj = mw.title.getCurrentTitle()
	else
		titleobj = mw.title.new(title)
	end

	local pagetxt = titleobj:getContent()
	if not pagetxt then return nil end

	-- look for first [[File:
	local start, last, txt = pagetxt:find("%[%[[Ff]ile:([^|%]]*)")
	-- look for first [[Image:
	local start1, last1, txt1 = pagetxt:find("%[%[[Ii]mage:([^|%]]*)")
	-- look for infobox image
	local start2, last2, txt2 = pagetxt:find("|%s*image%s*=%s*([^.]*.%a*)%A")

	if (start1 or 1e8) < (start or 1e8) then
		start, last, txt = start1, last1, txt1
	end
	if (start2 or 1e8) < (start or 1e8) then
		start, last, txt = start2, last2, txt2
	end

	if not txt then -- look for gallery with Image:
		local start3, last3, txt3 = pagetxt:find("[Ii]mage:%s*([^.]*.%a*)%A")
		if (start3 or 1e8) < (start or 1e8) then
			start, last, txt = start3, last3, txt3
		end
	end

	return txt
end

return p
Contents