Bước tới nội dung

Mô đun:CIA World Factbook

Bách khoa toàn thư mở Wikipedia
local p = {}local getArgs = require('Module:Arguments').getArgs-- prefix of all World Factbook pageslocal factbookPrefix = 'https://www.cia.gov/the-world-factbook/'--  Format of archive link. Both %d represent the year of the archivelocal archiveFormat = ' [https://www.cia.gov/the-world-factbook/about/archives/download/factbook-%d.zip (Archived %d edition.)]'-- Function to turn a string into a URL fragment appropriate for CIA websitelocal function parseFragment(s)	if not s then		return ''	end	s = mw.ustring.lower(s)	s = mw.ustring.gsub(s,' ','-')	s = mw.ustring.gsub(s,',','')	return send-- Function to fill in factbook link:-- Arguments:--    args.country: topic of page (optional)--    args.section: section of page (optional)-- Returns:--    link to World Factbook page about country, with section anchorfunction p._country(args)	if not args.country then		return factbookPrefix	end	local result = factbookPrefix..'countries/'..parseFragment(args.country)	if args.section then		return result..'/#'..parseFragment(args.section)	end	return resultend-- Function to fill in archive link:-- Arguments:--    args.archive: if non-empty, return nil--    args.year: else if this is non-empty, use it for year--    args.date: else if this is non-empty, parse it for a year-- Returns:--    the link, above, filled in with the year, or nilfunction p._archive(args)	if args.archive then		return nil	end	local year = nil	if args.year then		year = tonumber(args.year)	elseif args.date then		i, j = mw.ustring.find(args.date,'20%d%d')		if i and j then			year = tonumber(mw.ustring.sub(args.date,i,j))		end	end	if not year then		return year	end	if year >= tonumber(os.date('%Y'))-1 then		return false	end	return mw.ustring.format(archiveFormat, year, year)endfunction p.country(frame)	local args = getArgs(frame)	return p._country(args)endfunction p.archive(frame)	local args = getArgs(frame)	return p._archive(args) or ''endreturn p