モジュールの解説[表示] [編集] [履歴] [キャッシュを破棄]

このモジュールは、ファイルへのリンクのウィキテキストを生成します。テンプレートとモジュールで(多くのオプションを指定する)複雑なファイルリンクを作成する場合に使用されます。オプションを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]] 

使用状況

[編集]

このモジュールを使用しているモジュールは以下の通りです:

このモジュールを使用しているテンプレートは以下の通りです:

-- 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