このテンプレートは、以下のLuaモジュールを使用しています。 |
このモジュールは、ファイルへのリンクのウィキテキストを生成します。テンプレートとモジュールで(多くのオプションを指定する)複雑なファイルリンクを作成する場合に使用されます。オプションを1、2つ使う程度のシンプルなファイルリンクを作成する場合はウィキテキストをそのまま書いたほうが軽いです。ファイルリンクのウィキテキストに関する詳細はmediawiki.orgでの解説文を参照してください。
ウィキテキストにおける使い方
[編集]ウィキテキストで使用する場合は一般的にはモジュールを直接呼び出さず、{{File link}}を使用します(詳しくはテンプレートの解説文を参照)。モジュールを直接呼び出す場合の書式は{{#invoke:File link|main|引数}}
です。
モジュールにおける使い方
[編集]まず、モジュールをインポートします。
local mFileLink = require('モジュール:File link')
そうすれば、_main
関数でファイルインクを作成できます。
mFileLink._main(args)
argsは引数のテーブルであり、テーブルのキーには下記のものが使用できます。
file
- 入力必須。ファイル名を拡張子付き、名前空間名なしで入力します。format
- ファイルのフォーマット。'thumb'、'thumbnail'、'frame'、'framed'、'frameless'を入力できます。formatfile
- 自動生成のサムネイルを使用しない場合、サムネイル画像のファイル名を指定します。border
- "yes"またはそれに類する値(モジュール:Yesnoで真と判定される値)を入力した場合、画像ボーダーが表示されます。location
- ファイルの水平位置。'right'、'left'、'center'、'none'を入力できます。alignment
- ファイルの垂直位置。'baseline'、'middle'、'sub'、'super'、'text-top'、'text-bottom'、'top'、'bottom'を入力できます。size
- 画像サイズ。例:'100px'、'x100px'、'100x100px'。upright
- 'upright'引数。縦長の画像の場合に指定します。link
- ファイルのリンク先を指定します。既定はファイルページですが、どこにもリンクしない場合は空文字列''を指定します。alt
- 代替テキスト。既定の代替テキストを表示させない場合は空文字列''を指定してください。caption
- キャプション。page
- PDFなど複数ページにわたるファイルの場合、ページ番号を指定します。class
- 画像リンクがHTMLにレンダリングされるとき、生成される<img />
要素のclass="..."
属性の値を入力します。lang
- ファイルのレンダリングが行われる言語を指定します。start
- 音声と動画ファイルの場合、開始時間を指定します。end
- 音声と動画ファイルの場合、終了時間を指定します。thumbtime
- 動画ファイルの場合、サムネイル画像に使用する時間を指定します。
これらのオプションの詳細はmediawiki.orgでの解説文を参照してください。
使用例
[編集]最低限の引数のみ:
mFileLink._main{file = 'Example.png'} -- 返り値:[[File:Example.png]]
format、size、link、captionのオプションを使用した場合:
mFileLink._main{ file = 'Example.png', format = 'thumb', size = '220px', link = 'Wikipedia:サンドボックス', caption = 'これは例です。' } -- 返り値:[[File:Example.png|thumb|220px|link=Wikipedia:サンドボックス|これは例です。]]
format、size、borderのオプションを使用した場合:
mFileLink._main{ file = 'Example.png', format = 'frameless', size = '220px', border = true } -- 返り値:[[File:Example.png|frameless|border|220px]]
使用状況
[編集]このモジュールを使用しているモジュールは以下の通りです:
このモジュールを使用しているテンプレートは以下の通りです:
- テンプレート:Pp-office
- テンプレート:Pp
- テンプレート:Pp-move
- テンプレート:Pp-dispute
- テンプレート:Pp-move-dispute
- テンプレート:Pp-vandalism
- テンプレート:Pp-move-vandalism
- テンプレート:Pp-template
- テンプレート:保護運用
- テンプレート:Pp-reset
- テンプレート:Pp-office-dmca
- テンプレート:駅一覧
この解説は、モジュール:File link/docから呼び出されています。 (編集 | 履歴) 編集者は、このモジュールをサンドボックス (作成 | 複製)とテストケース (作成)で試すことができます。(解説) このモジュールのサブページ一覧。 |
-- This module provides a library for formatting file wikilinks. local yesno = require('Module:Yesno') local checkType = require('libraryUtil').checkType local p = {} function p._main(args) checkType('_main', 1, args, 'table') -- This is basically libraryUtil.checkTypeForNamedArg, but we are rolling our -- own function to get the right error level. local function checkArg(key, val, level) if type(val) ~= 'string' then error(string.format( "'_main'関数における'%s'引数のタイプエラー(想定:文字列、実際:%s)", key, type(val) ), level) end end local ret = {} -- Adds a positional parameter to the buffer. local function addPositional(key) local val = args[key] if not val then return nil end checkArg(key, val, 4) ret[#ret + 1] = val end -- Adds a named parameter to the buffer. We assume that the parameter name -- is the same as the argument key. local function addNamed(key) local val = args[key] if not val then return nil end checkArg(key, val, 4) ret[#ret + 1] = key .. '=' .. val end -- Filename checkArg('file', args.file, 3) ret[#ret + 1] = 'File:' .. args.file -- Format if args.format then checkArg('format', args.format) if args.formatfile then checkArg('formatfile', args.formatfile) ret[#ret + 1] = args.format .. '=' .. args.formatfile else ret[#ret + 1] = args.format end end -- Border if yesno(args.border) then ret[#ret + 1] = 'border' end addPositional('location') addPositional('alignment') addPositional('size') addNamed('upright') addNamed('link') addNamed('alt') addNamed('page') addNamed('class') addNamed('lang') addNamed('start') addNamed('end') addNamed('thumbtime') addPositional('caption') return string.format('[[%s]]', table.concat(ret, '|')) end function p.main(frame) local origArgs = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:File link' }) if not origArgs.file then error("[[Template:File link]]のエラー: 'file'引数が未入力です", 0) end -- Copy the arguments that were passed to a new table to avoid looking up -- every possible parameter in the frame object. local args = {} for k, v in pairs(origArgs) do -- Make _BLANK a special argument to add a blank parameter. For use in -- conditional templates etc. it is useful for blank arguments to be -- ignored, but we still need a way to specify them so that we can do -- things like [[File:Example.png|link=]]. if v == '_BLANK' then v = '' end args[k] = v end return p._main(args) end return p