Toggle menu
15
236
75
27.7K
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 23:50, 19 February 2025 by Prd (talk | contribs) (Created page with "local p = {} local function urlencode(text) -- Return equivalent of {{urlencode:text}}. local function byte(char) return string.format('%%%02X', string.byte(char)) end return text:gsub('[^ %w%-._]', byte):gsub(' ', '+') end local function make_link(url, expansion, display_text, after) return mw.ustring.format( '[%s <abbr title="%s">%s</abbr>]%s', url, expansion, display_text, after or '' ) end function p.main(frame) local args = require('Module:Argu...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Implements {{search}}



local p = {}

local function urlencode(text)
	-- Return equivalent of {{urlencode:text}}.
	local function byte(char)
		return string.format('%%%02X', string.byte(char))
	end
	return text:gsub('[^ %w%-._]', byte):gsub(' ', '+')
end

local function make_link(url, expansion, display_text, after)
	return mw.ustring.format(
		'[%s <abbr title="%s">%s</abbr>]%s',
		url,
		expansion,
		display_text,
		after or ''
	)
end

function p.main(frame)
	local args = require('Module:Arguments').getArgs(frame, {
		wrappers = 'Template:Search'
	})

	local search_phrase_encoded = urlencode(args[1] or 'example phrase')
	local short_module_args = {
		class = 'template-search plainlinks',
		make_link('https://en.wikipedia.org/w/index.php?title=Special:Search&search=' .. search_phrase_encoded, 'Wikipedia', 'wp'),
		make_link('https://www.google.com/search?q=' .. search_phrase_encoded, 'Google', 'g'),
		make_link('https://www.bing.com/search?q=' .. search_phrase_encoded, 'Bing', 'b'),
	}
	local long_module_args = {
		class = 'template-search plainlinks',
		make_link('https://en.wikipedia.org/w/index.php?title=Special:Search&search=' .. search_phrase_encoded, 'Wikipedia', 'wp'),
		make_link('https://www.google.com/search?q=site%3Awikipedia.org+' .. search_phrase_encoded, 'Wikipedia over Google', 'gwp'),
		make_link('https://www.google.com/search?q=' .. search_phrase_encoded, 'Google', 'g'),
		make_link('https://www.bing.com/search?q=site%3Awikipedia.org+' .. search_phrase_encoded, 'Wikipedia over Bing', 'bwp'),
		make_link('https://www.bing.com/search?q=' .. search_phrase_encoded, 'Bing', 'b', ' |'),
		make_link('https://www.britannica.com/search?nop&query=' .. search_phrase_encoded, 'Encyclopaedia Britannica', 'eb'),
		make_link('https://www.bartleby.com/cgi-bin/texis/webinator/65search?query=' .. search_phrase_encoded, 'Columbia Encyclopedia', 'co'),
		make_link('https://www.google.com/search?q=site%3Ahttp%3A%2F%2Fwww.pcmag.com%2Fencyclopedia_term%2F+' .. search_phrase_encoded, 'PC Magazine Encyclopedia over Google', 'gct'),
		make_link('https://scienceworld.wolfram.com/search/index.cgi?as_q=' .. search_phrase_encoded, 'World of Science', 'sw'),
		make_link('https://archive.org/search.php?query=' .. search_phrase_encoded, 'Internet Archive', 'arc'),
		make_link('https://babel.hathitrust.org/cgi/ls?field1=ocr;q1=' .. search_phrase_encoded .. ';a=srchls;lmt=ft', 'HathiTrust', 'ht'),	
	}
	
	local long = (args.long or '') ~= ''
	local ubl = require('Module:List').unbulleted
	local list = ubl(long and long_module_args or short_module_args)
	return frame:extensionTag{
		name = 'templatestyles', args = { src = 'Module:Search/styles.css' }
	} .. '(' .. list .. ')'
end

return p