Module:Jcttop/core
This module implements {{jcttop/core}}.
local p = {}
local format = string.format -- Local version of string formatting function
local function hatnote(args)
local insert = table.insert
local text = {args.region_note}
local tense
local hatnoteArg = args.hatnote
if hatnoteArg == 'off' then
insert(text, '')
elseif hatnoteArg then
insert(text, hatnoteArg .. " ")
else
local indep_city = args.indep_city
local sub1 = args.sub1
local sub2 = args.sub2
if indep_city or sub1 or sub2 then
local region = args.region
tense = args.former == 'yes'
local verb = tense and 'was' or 'is'
insert(text, format("The entire %s %s in ", args.type or 'route', verb))
if indep_city then
insert(text, format("[[%s, %s|%s]]", indep_city, region, indep_city))
else
local sub1name = args.sub1name
if sub2 then
insert(text, "[[" .. sub2)
local area = args.area
if area then
insert(text, format(" (%s)", area))
end
if args.sub1dab == 'yes' then
insert(text, format(", %s %s", sub1, sub1name))
end
insert(text, format(", %s|%s]]", region, sub2))
end
if sub1 then
if sub2 then
insert(text, ', ')
end
insert(text, format("[[%s %s, %s|%s %s]]", sub1, sub1name, region, sub1, sub1name))
end
end
insert(text, '. ')
insert(text, args.sub1_ref)
insert(text, args.sub2_ref)
end
end
if args.unnum == 'yes' then
insert(text, format("All exits %s unnumbered.", tense and 'were' or 'are'))
end
return mw.text.trim(table.concat(text))
end
local function header(args)
local row = mw.html.create('tr')
local region_col = args.region_col
if region_col then
row:tag('th'):attr('scope', 'col'):wikitext(mw.language.getContentLanguage():ucfirst(region_col))
end
local indep_city = args.indep_city
if not(args.nosub1 == 'yes' or args.sub1 or indep_city) then
local tag = row:tag('th'):attr('scope', 'col')
local sub1disp = args.sub1disp
if sub1disp then
tag:wikitext(sub1disp)
else
tag:wikitext(args.sub1name):wikitext(args.sub1_ref)
end
end
if not(args.sub2 or indep_city) then
row:tag('th'):attr('scope', 'col')
:wikitext(args.location_def or 'Location'):wikitext(args.sub2_ref)
end
local altunit = args.altunit
if altunit then
row:tag('th'):attr('scope', 'col'):wikitext(altunit):wikitext(args.altunit_ref)
else
local unit = args.length or args.unit
if unit ~= 'off' then
row:tag('th'):attr('scope', 'col'):wikitext(unit):wikitext(args.length_ref):done():tag('th'):attr('scope', 'col'):wikitext(args.unit2)
end
end
local exit = args[1]
if exit == 'old' then
row:tag('th'):attr('scope', 'col'):wikitext(args.old_def or 'Old exit'):wikitext(args.old_ref)
row:tag('th'):attr('scope', 'col'):wikitext(args.exit_def or 'New exit'):wikitext(args.exit_ref)
elseif exit == 'exit' then
row:tag('th'):attr('scope', 'col'):wikitext(args.exit_def or 'Exit'):wikitext(args.exit_ref)
end
if args[2] == 'name' then
row:tag('th'):attr('scope', 'col'):wikitext(args.name_def or 'Name'):wikitext(args.name_ref)
end
row:tag('th'):attr('scope', 'col'):wikitext(args.dest_def or 'Destinations'):wikitext(args.dest_ref)
row:tag('th'):attr('scope', 'col'):wikitext(args.notes_def or 'Notes'):wikitext(args.notes_ref)
return '\n{| class="plainrowheaders wikitable"\n' .. tostring(row)
end
function p._jcttop(args)
-- This function calls two other functions to generate a hatnote and header row.
-- This function is accessible from other Lua modules.
return hatnote(args) .. header(args)
end
function p.jcttop(frame)
-- Entry function for {{jcttop/core}}
return p._jcttop(require('Module:Arguments').getArgs(frame)) -- Simply call another function with those arguments to actually create the header.
end
return p
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.