「
モジュール:Navbox/former
」を編集中
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
local p = {} --[[ Template:Tnavbar ]] function p.tnavbar(frame) local r = mw.html.create() --出力用 local args = frame.args if not args[1] then return ' ' end local function tf(x) return x == '1' and true or false end args.plain = tf(args.plain) args.div = tf(args.div) args.nodiv = tf(args.nodiv) args.mini = tf(args.mini) args.viewplain = tf(args.viewplain) args.fontstyle = args.fontcolor ~= '' and ((args.fontstyle or '') .. ';color:' .. args.fontcolor .. ';') or args.fontstyle or '' local divTag = r:tag('div') :addClass('noprint') :addClass('plainlinks') :addClass('navbar') :addClass('hlist') :css('white-space', 'nowrap') :css('font-size', '60%') :css('font-weight', 'normal') if args.nodiv then divTag:css('display', 'inline') :css('padding', '0 0.5em') else divTag:css('background-color', 'transparent') :css('padding', '0') :css('color', '#000') end divTag:cssText(args.fontstyle) :cssText(args.style) if not (args.plain or args.mini or args.viewplain) then divTag:tag('span') :css('font-size', '125%') :node('このテンプレートを: ') end local disp = args.mini and {'表', '話', '編', '歴'} or {'表示', 'ノート', '編集', '履歴'} local ns = {'Template:', 'Template‐ノート:', 'Template:', 'Template:'} local query = {nil, nil, 'action=edit', 'action=history'} local title = {'このテンプレートを表示します', 'このテンプレートのノートを表示します', 'このテンプレートを編集します。保存の前にプレビューを忘れずに。', 'このテンプレートの過去の版を表示します'} local color = {'', 'color:#002bb8;', 'color:#002bb8;', 'color:#002bb8;'} local i = 0 local i_end = args.viewplain and 1 or 4 local ulTag = divTag:tag('ul') :css('display', 'inline') for i = 1, i_end do local liTag = ulTag:tag('li') local l = {open = '', link = '', close = ''} if query[i] then l.open = '[' l.link = tostring(mw.uri.canonicalUrl(ns[i] .. args[1], query[i])) .. ' ' l.close = ']' else l.open = '[[' l.link = ns[i] .. args[1] .. '|' l.close = ']]' end liTag:wikitext(l.open .. l.link) :tag('span') :attr('title', title[i]) :css('font-size', '125%') :cssText(color[i]) :cssText(args.fontstyle) :node(disp[i]) :done() :wikitext(l.close) end return tostring(r) end --[[ Define Arguments ]] local getArgs local args = {} local border local child, none = false, false local rowspan = 0 local basestyle = '' local odd, even = 'odd', 'even' local list, liststyle = {}, {} local group, groupstyle = {}, {} local colheader, colheadercolspan, colheaderstyle = {}, {}, {} local col, colstyle, colwidth = {}, {}, {} local colfooter, colfootercolspan, colfooterstyle = {}, {}, {} local abbr, state = {}, {} local sect, section = {}, {} local secttitlestyle = {} local content, contentstyle = {} local image, imageleft = {}, {} local function defArgs(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end args = getArgs(frame, {parentOnly = true}) border = args.border or args[1] child, none = (border == 'subgroup' or border == 'child'), (border == 'none') collapsible = (args.state == 'plain' or args.state == 'off') and '' or 'mw-collapsible ' if args.basestyle then basestyle = args.basestyle .. ';' end local sortable_mt = { __lt = function(a, b) return a.index < b.index end, __concat = function(a, b) local strA = (type(a) == 'table') and a.content or a or '' local strB = (type(b) == 'table') and b.content or b or '' return strA .. strB end } local function sortable_args(tbl, index, content) table.insert(tbl, {index = index, content = content}) setmetatable(tbl[#tbl], sortable_mt) end local switch = { --common list = function(num, v) sortable_args(list, num, '\n' .. v) end, liststyle = function(num, v) liststyle[num] = v end, group = function(num, v) group[num] = v end, groupstyle = function(num, v) groupstyle[num] = v end, --for with_columns colheader = function(num,v) colheader[num] = v end, colheadercolspan = function(num,v) colheadercolspan[num] = v end, colheaderstyle = function(num,v) colheaderstyle[num] = v end, col = function(num, v) sortable_args(col, num, '\n' .. v) end, colstyle = function(num,v) colstyle[num] = v end, colwidth = function(num,v) colwidth[num] = v end, colfooter = function(num,v) colfooter[num] = v end, colfootercolspan = function(num,v) colfootercolspan[num] = v end, colfooterstyle = function(num,v) colfooterstyle[num] = v end, --for with_collapsible_groups abbr = function(num, v) abbr[num] = v end, state = function(num, v) state[num] = v end, sect = function(num, v) group[num] = v end, section = function(num, v) group[num] = v end, secttitlestyle = function(num, v) groupstyle[num] = v end, content = function(num, v) sortable_args(content, num, '\n' .. v) end, contentstyle = function(num, v) liststyle[num] = v end, image = function(num, v) image[num] = v end, imageleft = function(num, v) imageleft[num] = v end, } for k, v in pairs(args) do local str1, num, str2 = string.match(k, '(%D+)(%d+)(%D*)') str1, num, str2 = str1 or '', tonumber(num), str2 or '' if switch[str1 .. str2] and num then switch[str1 .. str2](num, v) end end table.sort(list) rowspan = #list end --[[ top ]] local function top(baseTag) local nav local bodyTable if baseTag == nil or baseTag == '' then baseTag = mw.html.create() end if child then baseTag:wikitext('</div>') nav = baseTag elseif not none then nav = baseTag:tag('div') :addClass('navbox') :addClass(args.navboxclass) :css('border-collapse', 'collapse') :cssText(args.bodystyle) :cssText(args.style) :css('padding', '3px') if args.title or args.above then nav:attr('aria-labelledby', mw.uri.anchorEncode(args.title or args.above)) else nav:attr('aria-label', 'Navbox') end else nav = baseTag end bodyTable = nav:tag('table') :addClass('nowraplinks') :addClass(args.bodyclass) if args.title and (args.state ~= 'plain' and args.state ~= 'off') then if args.state == 'collapsed' then args.state = 'mw-collapsed' end bodyTable :addClass('mw-collapsible') :addClass(args.state or 'autocollapse') end if child or border == 'none' then bodyTable :addClass('navbox-subgroup') :cssText(args.bodystyle) :cssText(args.style) else -- regular navbox - bodystyle and style will be applied to the wrapper table bodyTable :addClass('navbox-inner') :css('background', 'transparent') :css('color', 'inherit') end bodyTable:css('min-width', '100%') :css('border-spacing', '0px') :css('border-collapse', 'separate') :cssText(args.innerstyle) return baseTag, bodyTable end --[[ title and navbar ]] local function title(tbl) if not args.title then return tbl end local titleRow = tbl:tag('tr') if args.titlegroup then titleRow :tag('th') :attr('scope', 'row') :addClass('navbox-group') :addClass(args.titlegroupclass) :cssText(args.basestyle) :cssText(args.groupstyle) :cssText(args.titlegroupstyle) :wikitext(args.titlegroup) end local titleCell = titleRow:tag('th'):attr('scope', 'col') if args.titlegroup then titleCell :css('width', '100%') end local titleColspan = 2 if args.imageleft then titleColspan = titleColspan + 1 end if args.image then titleColspan = titleColspan + 1 end if args.titlegroup then titleColspan = titleColspan - 1 end titleCell :cssText(args.basestyle) :cssText(args.titlestyle) :addClass('navbox-title') :attr('colspan', titleColspan) if (args.navbar == 'plain') or (not args.name and (child or none)) then titleCell :tag('div') :css('float', 'left') :css('width', '6em') :node(' ') elseif args.navbar ~= 'off' then local tbl = {args = {args.name, mini = '1', fontstyle = basestyle .. (args.titlestyle or '') .. ';border:none;', fontcolor = ''}} titleCell :tag('div') :css('float', 'left') :css('width', '6em') :css('text-align', 'left') :node(p.tnavbar(tbl)) end if child or border == 'none' then titleCell :tag('div') :attr('id', mw.uri.anchorEncode(args.title)) :addClass(args.titleclass) :css('font-size', '100%') :css('margin', '0 6em') :node(args.title) else titleCell :tag('div') :attr('id', mw.uri.anchorEncode(args.title)) :addClass(args.titleclass) :css('font-size', '110%') :css('margin', '0 6em') :node(args.title) end return tbl end local function getAboveBelowColspan() local ret = 2 if args.imageleft then ret = ret + 1 end if args.image then ret = ret + 1 end return ret end --[[ above ]] local function above(tbl) if not args.above then return tbl end tbl:tag('tr') :tag('td') :addClass('navbox-abovebelow') :addClass(args.aboveclass) :cssText(args.basestyle) :cssText(args.abovestyle) :attr('colspan', getAboveBelowColspan()) :newline() :node(args.above) return tbl end --[[ body ]] --first group/list and images local function body1(tbl) local row = tbl:tag('tr') if args.imageleft then row :tag('td') :addClass('navbox-image') :addClass(args.imageclass) :css('width', '1px') :css('padding', '0px 2px 0px 0px') :cssText(args.imageleftstyle) :attr('rowspan', rowspan) :tag('div') :node(args.imageleft) end local j = list[1].index if group[j] then local groupCell = row:tag('th') groupCell :attr('scope', 'row') :addClass('navbox-group') :addClass(args.groupclass) :cssText(args.basestyle) :css('width', args.groupwidth or '1%') groupCell :cssText(args.groupstyle) :cssText(groupstyle[j]) :wikitext(group[j]) end local listCell = row:tag('td') if group[j] then listCell :css('text-align', 'left') :css('border-left-width', '2px') :css('border-left-style', 'solid') else listCell:attr('colspan', 2) end if not args.groupwidth then listCell:css('width', '100%') end local rowstyle if odd == 'odd' then rowstyle = args.oddstyle else rowstyle = args.evenstyle end listCell :css('padding', '0px') :cssText(args.liststyle) :cssText(rowstyle) :cssText(liststyle[j]) :addClass('navbox-list') :addClass('navbox-' .. (args.evenodd == 'swap' and even or args.evenodd or odd)) :addClass(args.listclass) :tag('div') :css('padding', (args.list1padding or args.listpadding or '0em 0.25em')) :node(list[1].content) :newline() if args.image then row :tag('td') :addClass('navbox-image') :addClass(args.imageclass) :css('width', '1px') :css('padding', '0px 0px 0px 2px') :cssText(args.imagestyle) :attr('rowspan', rowspan) :tag('div') :node(args.image) end return tbl end --remaining groups/lists local function body2(tbl) for i = 2, #list do odd, even = even, odd local j = list[i].index local row = tbl:tag('tr') if group[j] then local groupCell = row:tag('th') groupCell :attr('scope', 'row') :addClass('navbox-group') :addClass(args.groupclass) :cssText(args.basestyle) :css('width', args.groupwidth or '1%') groupCell :cssText(args.groupstyle) :cssText(groupstyle[j]) :node(group[j]) end local listCell = row:tag('td') if group[j] then listCell :css('text-align', 'left') :css('border-left-width', '2px') :css('border-left-style', 'solid') else listCell:attr('colspan', 2) end if not args.groupwidth then listCell:css('width', '100%') end local rowstyle if odd == 'odd' then rowstyle = args.oddstyle else rowstyle = args.evenstyle end listCell :css('padding', '0px') :cssText(args.liststyle) :cssText(rowstyle) :cssText(liststyle[j]) :addClass('navbox-list') :addClass('navbox-' .. (args.evenodd == 'swap' and even or args.evenodd or odd)) :addClass(args.listclass) :tag('div') :css('padding', (args.listpadding or '0em 0.25em')) :node(list[i].content) :newline() end return tbl end --[[ below ]] local function below(tbl) if not args.below then return tbl end tbl:tag('tr') :tag('td') :addClass('navbox-abovebelow') :addClass(args.belowclass) :cssText(args.basestyle) :cssText(args.belowstyle) :attr('colspan', getAboveBelowColspan()) :newline() :node(args.below) return tbl end --[[ Template:Navbox ]] function p.navbox(frame) defArgs(frame) local res local firstTableTag res, firstTableTag = top() firstTableTag = title(firstTableTag) firstTableTag = above(firstTableTag) if list[1] then firstTableTag = body1(firstTableTag) end firstTableTag = body2(firstTableTag) firstTableTag = below(firstTableTag) if child then res:wikitext('<div>') end return tostring(res) end --[[ Template:Navbox subgroup ]] function p.subgroup(frame) defArgs(frame) if not border then child = true end args.groupstyle = 'padding:' .. (args.grouppadding or '0 0.75em') .. ';' .. (args.groupstyle or '') local res local firstTableTag res, firstTableTag = top() firstTableTag = title(firstTableTag) firstTableTag = above(firstTableTag) if list[1] then firstTableTag = body1(firstTableTag) end firstTableTag = body2(firstTableTag) firstTableTag = below(firstTableTag) if not border then res:wikitext('<div>') end return tostring(res) end --[[ Template:Navbox with columns ]] function p.with_columns(frame) defArgs(frame) table.sort(col) local res local firstTableTag res, firstTableTag = top() firstTableTag = title(firstTableTag) firstTableTag = above(firstTableTag) if col[1] then local j = col[1].index local cols = mw.html.create('table') :addClass('navbox-columns-table') :css('border-spacing', '0px') :css('border-collapse', 'separate') :css('text-align', 'left') :cssText((colheader[j] or args.fullwidth) and 'width:100%;' or 'margin:0 auto;') :cssText(args.coltablestyle) --Header row if colheader[j] then local headerRow = cols:tag('tr') :addClass('navbox-abovebelow') :css('font-weight', 'bold') :cssText(args.colheaderstyle) for i = 1, #col do local j = col[i].index if colheader[j] then headerRow:tag('td') :attr('colspan', colheadercolspan[j] or '1') :cssText(colheaderstyle[j]) :node(colheader[j]) end end end --Main columns local row = cols:tag('tr') :css('vertical-align', 'top') :cssText(args.colstyle) if not (colheader[j] or colfooter[j] or args.fullwidth) then local paddingoff = args.padding and string.find(args.padding, '^0[ep]?[mx]?%?;?') if not paddingoff then row:tag('td') :css('width', args.padding or '5em') :wikitext(' ') end end for i = 1, #col do local j = col[i].index row:tag('td') :css('padding', '0') :cssText(args.oddcolstyle) :cssText(colstyle[j]) :css('width', colwidth[j] or args.colwidth or '10em') :node(col[i].content) args.oddcolstyle, args.evencolstyle = args.evencolstyle, args.oddcolstyle end --Footer row if colfooter[j] then row = cols:tag('tr') :addClass('navbox-abovebelow') :css('font-weight', 'bold') :cssText(args.colfooterstyle) for i = 1, #col do local j = col[i].index if colfooter[j] then row:tag('td') :attr('colspan', colfootercolspan[j] or '1') :cssText(colfooterstyle[j]) :node(colfooter[j]) end end end cols = mw.html.create():wikitext('</div>'):wikitext(tostring(cols)):wikitext('<div>') table.insert(list, {index=1, content=cols}) rowspan = rowspan + 1 end firstTableTag = body1(firstTableTag) firstTableTag = body2(firstTableTag) firstTableTag = below(firstTableTag) return tostring(res) end --[[ Template:Navbox with collapsible groups ]] function p.with_collapsible_groups(frame) local res local firstTableTag defArgs(frame) table.sort(content) res, firstTableTag = top() firstTableTag = title(firstTableTag) firstTableTag = above(firstTableTag) local i = 1 local function funcList(rowTag) list[i] = list[i] or content[i] local j = list[i].index args.state = state[j] or args.selected and (args.selected == abbr[j] or args.selected == group[j]) and '' or 'mw-collapsed' args.name = nil args.titlestyle = basestyle .. (args.groupstyle or '') .. ';' .. (args.secttitlestyle or '') .. ';' .. (groupstyle[j] or '') args.liststyle = (args.liststyle or '') .. ';' .. (args.contentstyle or '') .. ';' .. (liststyle[j] or '') args.title, group[j] = group[j], nil args.image = image[j] args.imageleft = imageleft[j] rowspan = 1 local baseTag = rowTag:tag('td') :cssText(args.groupwidth and '' or 'width:100%;') :css('padding', '0px') :cssText(args.liststyle) :cssText(odd == 'odd' and (args.oddstyle or '') or (args.evenstyle or '')) :cssText(liststyle[j]) :addClass('navbox-list') :addClass('navbox-' .. (args.evenodd == 'swap' and even or args.evenodd or odd)) :addClass(args.listclass) :tag('div') if args.title then local tableTag none = true baseTag, tableTag = top(baseTag) tableTag = title(tableTag) tableTag = body1(tableTag) if child then baseTag:wikitext('<div>') end else baseTag:node(list[i].content) end end --i = 1 local row = firstTableTag:tag('tr') if args.imageleft then row:tag('td') :addClass('navbox-image') :addClass(args.imageclass) :css('width', '0') :css('padding', '0 2px 0 0') :cssText(args.imageleftstyle) :attr('rowspan', rowspan) :node(args.imageleft) end funcList(row) if args.image then row:tag('td') :css('width', '0%') :css('padding', '0 0 0 2px') :cssText(args.imagestyle) :attr('rowspan', rowspan) :node(args.image) end --i > 2 for i = 2, #list do row = firstTableTag:tag('tr') list[1] = list[i] funcList(row) end firstTableTag = below(firstTableTag) if child then res:wikitext('<div>') end child, none = (border == 'subgroup' or border == 'child'), (border == 'none') --再定義 return tostring(res) end --[[ Template:NavboxYears Template:NavboxYears2 ]] local function calc_years(args, fmtLink) local numtab = tonumber(args.tab) or 0 local numstart = tonumber(args.start) local numend = tonumber(args['end']) local numstep = tonumber(args.step) or 1 if numstart and numend then if numtab > 0 then for i = 2, numtab + 1 do args[i] = nil end end local numD = numend - numstart + 1 for i = 1, numD, numstep do args[i + numtab + 1] = numstart + i - 1 end end local res = mw.html.create('table') res :css('width', '100%') :css('border-spacing', '0px') :css('border-collapse', 'separate') :css('text-align', 'center') local h = 1 repeat h = h + 1 local row = res:tag('tr') for i = 2, 11 do local tdTag = row:tag('td') :css('width', '10%') if (tonumber(args[i]) or -1) > 0 then tdTag:wikitext('[[' .. fmtLink(args[1], args[i]) .. '|' .. args[i] .. ']]') else tdTag:wikitext(args[i]) end args[i], args[i + 10] = args[i + 10], args[i + h * 10] end until not args[2] return tostring(res) end local function years(frame, fmtLink) defArgs(frame) if args.var then fmtLink = function(str, num) return str:gsub(args.var, num) end end if args.name then args.style = 'width:' .. (args.width or '38em') .. ';' .. (args.style or '') local res local firstTableTag res, firstTableTag = top() if args.title then firstTableTag = title(firstTableTag) end if args.above then firstTableTag = above(firstTableTag) end if not list[1] and args[1] then list[1] = {index = 1, content = calc_years(args, fmtLink)} end if list[1] then firstTableTag = body1(firstTableTag) end firstTableTag = body2(firstTableTag) if args.below then firstTableTag = below(firstTableTag) end return tostring(res) else return calc_years(args, fmtLink) end end function p.years(frame) local fmtLink = function(str, num) return str .. num end return years(frame, fmtLink) end function p.years2(frame) local fmtLink = function(str, num) return num .. str end return years(frame, fmtLink) end return p
編集内容の要約:
uwuzu 非公式Wikiへの投稿はすべて、クリエイティブ・コモンズ 表示-非営利-継承 (詳細は
UwuzuWiki:著作権
を参照)のもとで公開したと見なされることにご注意ください。 自分が書いたものが他の人に容赦なく編集され、自由に配布されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。
著作権保護されている作品は、許諾なしに投稿しないでください!
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
このページで参照読み込みされているページ:
モジュール:Navbox/former/doc
(
編集
)
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
モジュール
議論
English
表示
閲覧
ソースを編集
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
このWIkiについて
ツール
リンク元
関連ページの更新状況
ページ情報
他のプロジェクト