Template‐ノート:Tnavbar

ページのコンテンツが他言語でサポートされていません。

モジュール更新提案(2023年2月)[編集]

このトピックはモジュール‐ノート:Navbarから転記しました。--本日晴天会話2023年9月1日 (金) 15:19 (UTC)[返信]

:tag(args.mini and 'span')の行が71行、83行、96行にありますが、これはLua言語の三項演算子(A and B or C)が崩れてしまったものと思われます。Luaエラーが出てしまうため:tag(args.mini and 'abbr' or 'span')へ変更することを提案します。--Pneuma01会話2023年2月22日 (水) 10:22 (UTC)[返信]

当初の提案とは少し異なる形になりましたが、下の#モジュール:Navbarを使用する提案によるモジュールの更新(特別:差分/96767492)により、ご提示の件でエラーは出なくなったはずです。--本日晴天会話2023年9月1日 (金) 15:25 (UTC)[返信]
対応いただきありがとうございます。--Pneuma01会話2023年12月17日 (日) 01:58 (UTC)[返信]

モジュール:Navbarを使用する提案[編集]

少々長くなりますがお付き合いくださると幸いです。現在Template:Tnavbarはモジュールを使用しておらず、テンプレートそのものに実装があります。一方でモジュール:Navbarモジュール:Navbox/formerTemplate:Vにも同様の機能の実装が存在しています。これらのうちTemplate:V以外は多くのページで使われていますが、実装ごとに仕様および出力フォーマットに細かい差異が存在するという状況になっています。

仕様・出力フォーマットの統一を目的とし、この度英語版に倣ってモジュール:NavbarTemplate:TnavbarTemplate:VTemplate:Viewをそれぞれサンドボックス版の内容で更新し、テンプレート3種の実装をモジュールに移譲する形にすることを提案します(モジュール:Navbox/formerについては別途提案します)。

今回の提案で影響が出る範囲としてはTemplate:SidebarTemplate:Infobox2を使用しているページが代表的なものとして挙げられます。一方でTemplate:InfoboxTemplate:Navboxには影響が出ません。表示のテストはTemplate:Tnavbar/testcasesTemplate:Sidebar/testcasesおよびTemplate:Infobox2/testcasesで行っています。

ちなみに過去の#モジュール使用に変更する提案モジュール:Navboxを使用するという内容であり、今回の提案内容とは異なりますのでご注意ください。

現行からの変更点は以下の通りです。

  • モジュール・テンプレートに共通する変更点
    • |plain=|mini=|viewplain=のいずれも指定しなかった場合に表示されるテキストが「このテンプレートを:」から「このボックス:」に変更
      • リンク先をテンプレート以外にする場面を想定(後述)し、デフォルトのテキスト中に「テンプレート」を含まない形にしました。当該テキストは英語版でも"This box:"となっています。このテキストは|text=でカスタマイズできます(モジュール版のみ実装済み)。
    • 引数で指定されたページを移動させたりウォッチリストに入れるためのリンクを表示するオプション機能を追加
      • この機能は{{V}}および{{View}}では既に実装されています。構文はテンプレート経由であれば{{Tnavbar|template=Template Name|t|e|h|m|w}}、他のモジュールからの呼び出しであればp._navbar{template='Template Name','t','e','h','m','w'}のようになります(各種リンクの対象とするページ名を|1=ではなく|template=で指定する必要あり)。これとは逆に、「表示」以外のリンクを選択的に表示させなくすることも可能です。
  • 現行のテンプレート版からの変更点
    • リンクの区切りにhlistが使われます。
      • #モジュール使用に変更する提案にて(hlist-pipeなどの使用により)デフォルト以外の区切り文字を指定している場合は表示が変わってしまうという指摘がありますが、これについては本テンプレートの内部にhlist-pipeなどの追加クラスが適用されないように呼び出し元を修正すればいいでしょう。例えば{{Sidebar}}を使用するテンプレートの場合、|class=hlist hlist-pipe|bodyclass=hlist hlist-pipeではなく|contentclass=hlist hlist-pipeとする方法があります。
    • display:inline;のスタイル付きdiv要素を使用
      • これによりテンプレート呼び出しの前後にテキストなどが存在しても改行されなくなります。
    • |nodiv=引数の廃止
      • この引数はdiv要素の代わりにspan要素を使用するために使われていました。hlistの使用によりul要素の仕様が必須となり、その場合にspan要素の子要素とすることがHTMLのルールに違反することになるのが廃止の理由です。検索により|nodiv=の使われ方をざっと眺めた感じですと、前後の改行を避ける目的で使われているものがほとんどのようです。先述の通り今回の更新でdiv要素を使いつつも前後に改行が入らなくなるため、|nodiv=を無効化しても大抵の場合問題ないと考えられます。テンプレートの呼び出しをspan要素で囲っているような場合はHTMLのルールに違反することになりますが、その場合はスタイル指定を|style=に移動させるとか、span要素をdiv要素で置き換えるなどすれば対処可能です。
    • |1=にテンプレート名前空間以外のページ名を指定可能になる
      • この変更により今後は本テンプレートをプロジェクト名前空間やWikipedia名前空間、利用者名前空間などでも問題なく使えるようになります。名前空間プレフィックスを省略した場合はテンプレート名前空間とみなすため、既に使用されている分でリンクが切れる心配はありません。実際に使う場面はおそらくないと思いますが、「:メインページ」のように先頭にコロンを付けることによって標準名前空間のページを指定することも一応可能です。関連する話題としてTemplate‐ノート:Navbox#「name」パラメータについてがあります。
    • |brackets=に空でない値を指定することでリンク群の前後に角括弧を追加する機能を追加
  • 現行のモジュール版からの変更点
    • |mini=の不具合を修正
      • 具体的には現行のモジュール版にて|mini=を省略するとスクリプトエラーとなる不具合と、|mini=を使用した場合に全てのリンクテキストにabbr要素を適用すべきところ「表」のみabbr要素が使われて残りにspan要素が使われる不具合の2点を修正するものです。これについてはモジュール‐ノート:Navbar#モジュール更新提案(2023年2月)で修正が提案されたものの放置されていた案件となります。

2週間ほど待って反対意見が出ないようでしたらWP:AN/PEモジュール:NavbarTemplate:Tnavbarの編集を依頼します。Template:VTemplate:Viewについてはモジュールが更新されてから編集を行います。--本日晴天会話2023年8月15日 (火) 12:06 (UTC)[返信]

チェック モジュールとテンプレートの更新が行われました。--本日晴天会話2023年9月1日 (金) 14:31 (UTC)[返信]