「モジュール:Citation/Show date/doc」の版間の差分
細 使用数更新 |
細 1版をインポートしました |
||
(相違点なし)
| |||
2026年2月6日 (金) 09:31時点における最新版
| このLuaモジュールは610,000以上のページで使われています。 余計な混乱やサーバーへの負荷を避けるために、どんな変更でも最初はモジュールのサンドボックス・サブページ、テストケース・サブページで試すべきです。そうすれば、試した変更を1度の編集でこのモジュールに加えることができます。しかし、最初にあなたの提案した変更を、この項目のノートで議論するようにお願いします。 |
| Luaモジュールを使用しています: |
このモジュールは出典テンプレートで使われる各種の日付を表示します。{{Citation/showdate}}・{{Citation/showdateEN}}の内部で使用されているほか、各種出典テンプレートから直接使用することもできます。
従来のテンプレートで有効な日付形式は基本的にサポートしている一方で、CS1モジュールの機能を利用することで、|df=による日付の変換や、範囲を含む日付のような複雑な形式もサポートしているのが特長です。
使い方
[ソースを編集]書式
[ソースを編集]{{#invoke:Citation/Show date |show_date |1= |param-name= |post-text= |df=}}
|1=に日付を指定してください。
|param-name=にはdate・publication-date・doi-broken-date・archive-date・access-dateのような日付の種類を指定します。省略するか空文字列を指定した場合は、dateが指定された場合と同じ動作になります。
|post-text=には閲覧日の後ろに表示する文字列を指定します。この引数は|param-name=access-dateを同時に指定した場合のみ有効です。|post-text=を指定しなかった場合は閲覧日の後ろに「閲覧。」を表示します。空文字列を指定した場合は閲覧日の後ろに文字列を追加しません。
|df=には日付の表示形式を指定します。指定可能な値にはja・ymd・mdy・dmyなどがあり、それぞれの意味合いはCS1テンプレートの同名の引数に指定する値と同じです。ただし|df=を省略した場合は日付の変換を行いません。|param-name=にarchive-dateもしくはaccess-dateを指定した場合は、|df=に関係なく常に日付を日本語形式で表示します。
動作の解説
[ソースを編集]このモジュールの大まかな動作は以下のようになっています。以下の説明文にあるdates()とreformat_dates()は、いずれもモジュール:Citation/CS1/Date validationで定義されている関数です。
まず、引数で指定された日付をdates()で検査します。
検査に合格した場合は必要に応じてreformat_dates()で日付を変換した上で、日付をモジュールの呼び出し元に返します。
|param-name=access-dateが指定されていて、dates()による検査が不合格であった場合は、{{Accessdate}}をモジュールの内部で呼び出し、その結果を返します。
|param-name=の値がaccess-date以外で、dates()による検査が不合格であった場合は、{{ISO dateJA}}をモジュールの内部で呼び出して、日付をISO 8601形式へ変換することを試みます。ISO 8601形式への変換に成功した場合は日付が再来年以降のものでないことを確認した上で、ISO 8601形式の日付をreformat_dates()で更に変換して返すか、もしくはモジュールの引数に指定された日付をそのまま返します。ISO 8601形式への変換に失敗した場合や、日付が再来年以降のものであった場合は、元の日付にエラーメッセージを追記して返します。