コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
カテゴリ一覧
信号灯器
レンズ
アーム
フード(庇)
金具
信号柱
信号機メーカー
警交仕規
制御機
信号制御
設置方法
音響装置
管理番号
周辺物
交差点
その他
俗語集
俗語
編集方針等
信号機Wikiの編集方針
信号機Wikiを二次利用する
ヘルプ
著作権について
お問い合わせ
信号機Wiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
モジュール:Infobox/former
」を編集中
モジュール
議論
English
閲覧
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
表示
サイドバーに移動
非表示
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
local p = {} function p.main(frame) local args = require('Module:Arguments').getArgs(frame, {parentOnly = true}) --引数取得 local child = (args.child == 'yes') local subbox = (args.subbox == 'yes') local h = {subheader = {}, image = {{}}} --ヘッダー部(subheader, image)テーブル local body, sbody = {}, {} --本体部テーブル, ソート済み本体部テーブル local link = args.tnavbar or args.name --(フッター部)テンプレート名 local result = '' --結果格納用 --[[ subheader, image用引数振り分け ]] local function args2tbl(str, k, v) local num = string.match(k, '%d*$') num = (num == '') and 1 or tonumber(num) h[str][num] = h[str][num] or {} if k == str then h[str][1][1] = v elseif string.match(k, str .. '%d+') then h[str][num][1] = v elseif string.find(k, 'style') then if string.match(k, 'style$') then h[str]['style'] = v else h[str][num]['style'] = v end elseif string.find(k, 'rowclass') then if string.match(k, 'rowclass$') then h[str]['rowclass'] = v else h[str][num]['rowclass'] = v end elseif string.match(k, 'class$') then h[str]['class'] = v end end --[[ 引数振り分け ]] for k, v in pairs(args) do --subheader if string.find(k, 'subheader') then args2tbl('subheader', k, v) --image elseif string.find(k, 'image') then args2tbl('image', k, v) elseif string.find(k, 'caption') then if string.match(k, 'caption$') then h['image'][1]['caption'] = '<div style="' .. (args.captionstyle or '') .. '">' .. v .. '</div>' elseif string.match(k, 'caption%d+') then local num = tonumber(string.match(k, '%d*$')) h['image'][num] = h['image'][num] or {} h['image'][num]['caption'] = '<div style="' .. (args.captionstyle or '') .. '">' .. v .. '</div>' end --その他(本体部) elseif string.match(k, '^%D+%d+$') then local str, num = string.match(k, '^(%D+)(%d+)$') num = tonumber(num) if not body[num] then local OddOrEven = (num % 2 ~= 0) and 'odd' or 'even' body[num] = { num, headerstyle = (args.headerstyle or '') .. (args[OddOrEven .. 'headerstyle'] or ''), labelstyle = (args.labelstyle or '') .. (args[OddOrEven .. 'labelstyle'] or ''), datastyle = (args.datastyle or '') .. (args[OddOrEven .. 'datastyle'] or '') } end body[num][str] = (body[num][str] or '') .. v end end --[[ Template:Infobox/row ]] local function row(header, headerstyle, label, labelstyle, data, datastyle, rowstyle, class, rowclass, id, itemprop, rowitemprop, itemtype, rowitemtype, itemref, rowitemref) local result ='' if header then result = '<tr style="' .. (rowstyle or '') ..'"' .. (rowitemtype and (' itemscope itemtype="' .. rowitemtype .. '"') or '') .. ' itemref="' .. (rowitemref or '') .. '"><th scope="col" colspan="2" class="' .. (class or '') .. '" style="text-align:center; ' .. (headerstyle or '') .. '">' .. header .. '</th></tr>' elseif data then result = '<tr class="' .. (rowclass or '') .. '" style="' .. (rowstyle or '') .. '" itemprop="' .. (rowitemprop or '') .. '"' .. (rowitemtype and (' itemscope itemtype="' .. rowitemtype .. '"') or '') .. ' itemref="' .. (rowitemref or '') .. '">' if label then result = result .. '<th scope="row" style="text-align:left; white-space:nowrap; ' .. (labelstyle or '') .. '">' .. label .. '</th><td class="' .. (class or '') .. '" style="' .. (datastyle or '') .. '" itemprop="' .. (itemprop or '') .. '"' .. (itemtype and (' itemscope itemtype="' .. itemtype .. '"') or '') .. ' itemref="' .. (itemref or '') .. '">' else result = result .. '<td colspan="2" class="' .. (class or '') .. '" style="text-align:center; ' .. (datastyle or '') .. '" itemprop="' .. (itemprop or '') .. '"' .. (itemtype and (' itemscope itemtype="' .. rowitemtype .. '"') or '') .. ' itemref="' .. (itemref or '') .. '">' end result = result .. '\n' .. data .. '</td></tr>' end return result end --[[ Template:Infobox ]] --ヘッダー部 if not child then --tableタグ result = '<table class="' .. (subbox and '' or 'infobox ') .. (args.bodyclass or '') .. '" style="' .. (subbox and 'min-width:100%; width:calc(100% + 6px); margin:-3px; ' or 'width:22em; ') .. (args.bodystyle or '') .. '"' .. (args.bodyitemtype and (' itemscope itemtype="' .. args.bodyitemtype .. '"') or '') .. ' itemref="' .. (args.bodyitemref or '') .. '">' if args.title then --captionタグ result = result .. '<caption itemprop="name" class="' .. (args.titleclass or '') .. '" style="' .. (args.titlestyle or '') .. '">' .. args.title .. '</caption>' end if args.above then result = result .. '<tr><th colspan="2" class="' .. (args.aboveclass or '') .. '" style="text-align:center; font-size:125%; font-weight:bold; ' .. (args.abovestyle or '') .. '" itemprop="' .. (args.aboveitemprop or '') .. '"' .. (args.aboveitemtype and (' itemscope itemtype="' .. args.aboveitemtype .. '"') or '') .. ' itemref="' .. (args.aboveitemref or '') .. '">' .. args.above ..'</th></tr>' end else if args.title then result = '<b itemprop="name' .. '"' .. (args.bodyitemtype and (' itemscope itemtype="' .. args.bodyitemtype .. '"') or '') .. ' itemref="' .. (args.bodyitemref or '') .. '">' .. args.title .. '</b>' end end for k, v in pairs(h.subheader) do result = result .. row(nil, nil, nil, nil, v[1], v.style or h.subheader.style, v.rowstyle, h.subheader.class, v.rowclass, nil, nil, nil, nil, nil, nil, nil) end for k, v in pairs(h.image) do result = result .. row(nil, nil, nil, nil, v[1] and (v[1] .. (v.caption or '')), v.style or h.image.style, v.rowstyle, h.image.class, v.rowclass, nil, nil, nil, nil, nil, nil, nil) end --本体部ソート for k, v in pairs(body) do sbody[#sbody + 1] = v end table.sort(sbody, function (a, b) return a[1] < b[1] end ) --本体部 for k, v in ipairs(sbody) do result = result .. row(v.header, v.headerstyle, v.label, v.labelstyle, v.data, v.datastyle, v.rowstyle, v.class, v.rowclass, v.id, v.itemprop, v.rowitemprop, v.itemtype, v.rowitemtype, v.itemref, v.rowitemref) end --フッター部 if args.below then result = result .. '<tr><td colspan="2" class="' .. (args.belowclass or '') .. '" style="text-align:center; ' .. (args.belowstyle or '') .. '">' .. args.below .. '</td></tr>' end if link then --Template:Transclude link = string.gsub(link, ':?[Tt]emplate:', '') if not string.find(link, ':') then link = 'Template:' .. link end result = result .. '<tr class="noprint"><td colspan=2 style="text-align:right; font-size:85%;">[[' .. link .. '|テンプレートを表示]]</td></tr>' end --tableタグ閉じ if not child then result = result .. '</table>' end --出力 return result end return p
編集内容の要約:
信号機Wikiへの投稿はすべて、クリエイティブ・コモンズ 表示-継承 (詳細は
信号機Wiki:著作権
を参照)のもとで公開したと見なされることにご注意ください。
自分が書いたものが他の人に容赦なく編集され、自由に配布されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。
著作権保護されている作品は、許諾なしに投稿しないでください!
ウィキを自動編集スパムから保護するために、下のCAPTCHAを解決してください。
キャンセル
編集の仕方
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
テンプレート:Ombox
(
ソースを閲覧
) (半保護)
テンプレート:使用箇所の多いテンプレート
(
編集
)
モジュール:Arguments
(
編集
)
モジュール:Infobox/former/doc
(
編集
)
モジュール:Message box
(
ソースを閲覧
) (半保護)
モジュール:Message box/configuration
(
ソースを閲覧
) (半保護)
モジュール:Message box/ombox.css
(
ソースを閲覧
) (半保護)
モジュール:Yesno
(
編集
)