「
モジュール:Labelled list hatnote
」を編集中
2024年11月3日 (日) 14:25時点における
ja>FlatLanguage
による版
(mHatnote._hatnoteを使わない
モジュール:Hatnote
の
2024年10月20日 (日) 12:38 (UTC)
の版を参考に)
(差分) ← 古い版 |
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
local mHatnote = require('Module:Hatnote') local mHatlist = require('Module:Hatnote list') local mArguments -- initialize lazily local p = {} -- Defaults global to this module local defaults = { label = 'を参照', -- Final fallback for label argument mainLabelForm = '→詳細は%s%s', -- Label format for main template labelForm = '→%s%s', -- Label format for see_also template prefixes = {'label', 'label ', 'l'}, template = 'Module:Labelled list hatnote' } -- Helper function that pre-combines display parameters into page arguments. -- Also compresses sparse arrays, as a desirable side-effect. function p.preprocessDisplays(args, prefixes) prefixes = prefixes or defaults.prefixes local pages = {} for k, v in pairs(args) do if type(k) == 'number' then local display for i = 1, #prefixes do display = args[prefixes[i] .. k] if display then break end end local page = display and string.format('%s|%s', string.gsub(v, '|.*$', ''), display) or v pages[#pages + 1] = page end end return pages end -- Produces a labelled pages-list hatnote. function p.labelledList(frame) mArguments = require('Module:Arguments') local template = frame:getParent():getTitle() if template ~= 'Template:Main' and template ~= 'Template:Main/sandbox' then template = 'Template:See Also' -- Default template if not Main end local args = mArguments.getArgs(frame, {parentOnly = true}) local pages = p.preprocessDisplays(args) local labels local labelForm if template == 'Template:Main' or template == 'Template:Main/sandbox' then labels = {defaults.label} labelForm = frame.args.labelForm or defaults.mainLabelForm else labels = {frame.args[1] or defaults.label} labels[2] = frame.args[2] or labels[1] labelForm = frame.args.labelForm or defaults.labelForm end local options = { extraclasses = frame.args.extraclasses, category = args.category, selfref = frame.args.selfref or args.selfref, template = template, labelForm = labelForm } return p._labelledList(pages, labels, options) end function p._labelledList(pages, labels, options) labels = labels or {} if #pages == 0 then return mHatnote.makeWikitextError( 'ページ名が指定されていません', (options.template or defaults.template) .. '#エラー', options.category ) end local label = (#pages == 1 and labels[1] or labels[2]) or defaults.label local text = string.format( options.labelForm or defaults.labelForm, mHatlist.andList(pages, true), label ) local classes = {} if type(options.extraclasses) == 'string' then classes[#classes + 1] = options.extraclasses end if options.selfref then classes[#classes + 1] = 'selfref' end -- Render the HTML div with the specified style and classes local html = string.format( '<div class="rellink %s" style="margin-bottom: 0.5em; padding-left: 2em; font-size: 90%%;" role="note">%s</div>', table.concat(classes, ' '), text ) return html end return p
編集内容の要約:
架空のツリーウィキへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
架空のツリーウィキ:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
キャンセル
編集の仕方
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
モジュール:Labelled list hatnote/doc
(
編集
)
案内メニュー
個人用ツール
ログインしていません
トーク
ダークモード
投稿記録
アカウント作成
ログイン
名前空間
モジュール
議論
English
表示
閲覧
ソースを編集
履歴表示
その他
キャッシュを削除
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWikiについてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
短縮URLを取得する