モジュール・トーク:Infobox
9行目の「labelstyle = 'text-align:left;'..labelstyle」のところに「white-space:nowrap」をデフォルトで入れたほうがいいんじゃないかなぁ、と思ったり。多くの記事で崩れているんですよね....。例えばこの記事だと「市場情報」「本社所在地」「外部リンク」が折れ曲がってしまっています。
他に、気になったこと2点。
- {{基礎情報 会社}} では、引数「labelstyle」に「text-align: right;」が指定されているのですが、結果として各記事に出力されるソースは「text-align: left; text-align: right;」という凄いものになっていますね。。。ま、これはこれで完成された設計といえるかもしれませんが。
- 基礎情報系テンプレートは、{{Infobox}} を使ったものと {{Sidebar}} を使っているものが混在しているんですね。。。。ややこしい。。。---謎の管理者もどき BadEditor 2023-04-08T18:59:41 (JST)
【@かにふとんさん、悼む人さん】nowrap についてどう思われますか。ご意見頂戴できれば幸いです。---謎の管理者もどき BadEditor 2023-04-09T23:30:54 (JST)
- まず前提として、手を入れるならインラインスタイルじゃなくてcommon.css移行とセットでお願いします(テンプレートのスタイルをcommon.cssに書かない縛りが解除されたので)。んで、一律nowrapにしてしまうとlabelに長文書かれた際に収拾つかなくなるので、width指定で制御したいような気もします。--かにふとん (トーク) 2023-04-09T23:46:42 (JST)
- すいません、common.cssとセットにする場合、モジュールはどういう風にいじればいいんでしょうか?
- label に長文が書かれること自体が望ましくない設計だと思いますが........デフォルトは nowrap にしておいて、どうしても長文を書きたい場合(あるの?)だけ、個別テンプレートの設定で「打ち消す」というのがいいんじゃないかと思いました。---謎の管理者もどき BadEditor 2023-04-10T00:17:14 (JST)
かなり悩みましたが、最終的にはかにふとんさん言及のように、ラベルに一定のwidthを与える方法が良いと思いました。
ぺちゃんこ | ラベルを押し潰す勢いの長文データラベルを押し潰す勢いの長文データラベルを押し潰す勢いの長文データ |
---|
↓
解放された | ラベルを押し潰す勢いの長文データラベルを押し潰す勢いの長文データラベルを押し潰す勢いの長文データ |
---|
データを押し潰す勢いの長文ラベルデータを押し潰す | この場合も対応可能 |
---|
white-space:nowrap;を打ち消すには、white-space:normal;に上書きするような指示を、Infobox継承テンプレ内に書いて回らなければなりません。それはちょっと手間かな~というのと、個人的に長いラベルもEnpediaっぽくてアリかなと感じたので。まあ、nowrapでも私は全然止めやしません。--悼む人 (トーク) 2023-04-11T00:02:45 (JST)
- とりあえず th に width:7em を設定しました。これでおかしかったらまた考えましょう。Common.css に移す必要はないんじゃないですかね。誰でもいじれた方が便利だと思いますし、いま設定されている多くのインラインスタイルのうち、どこからどこまでを移管すればいいのかもよく分かりませんし...。{{Highlighter}} は JS で事後的にスタイルを変える都合でクラスを設定した方が便利なので設定しましたが、Infobox のような静的な表示はクラス化するメリットが特にないと思います。---謎の管理者もどき BadEditor 2023-04-11T09:43:32 (JST)
- ん?待てよ。これってモジュールに width を与えるんじゃなくて、個別のテンプレに width を与えればいいんじゃねーの、って話ですかね。---謎の管理者もどき BadEditor 2023-04-11T12:15:58 (JST)
修正できる人求む[編集]
名前が不必要に繰り返して表示されるのを直せる方はいらっしゃいませんか?
例えば「石塚瑶季」の記事でいうと、枠外に「いしづか たまき/石塚瑶季」という表記があり、さらに枠内にもう一度「石塚瑶季」という表記があります。この3番目の名前の表示は不要でしょう。
このモジュールの12~15行目あたり(下記)が悪さをしていると思うのですが、私がLuaモジュールに詳しくない、および、このモジュールの影響範囲が大きすぎることもあり、どう直していいものか分かりかねます。
else datastyle = 'text-align:center;'..datastyle return '<tr><td colspan="2" style="'..datastyle..'">'..data..'</td></tr>' end
どなたかよろしくお願いします。-- BadEditor 2024-10-02T21:24:47 (JST)
|caption = {{ #if: {{{画像コメント|}}} | {{{画像コメント}}} | {{ #if: {{{アイドル名|}}} | {{{アイドル名}}} | {{PAGENAME}} }} }}
- を消してプレビューすると、枠内の名前だけ消えます。当初、私は↑行を
|caption = {{ #if: {{{画像ファイル|}}} | {{ ifempty | {{{画像コメント|}}} | {{{アイドル名|}}} | {{PAGENAME}} }} |}}
- のように修正しようと考えましたが、これだと{{女性アイドル}}のみの名前重複の解消となるため、根本解決とは言えない気がします。
- 真の原因は、このモジュール内の下記コード部分です。ここでは、画像キャプションが指定されていたら必ず表示されるロジックになっています――画像ファイルが指定されていなくてもです。
local data = args['caption'] or args['caption1'] or '' local datastyle = args['captionstyle'] or '' line = line..row('', '', data, '', '', datastyle)
- 流石に画像なしに画像キャプションだけ書きたい人は居ないと思うので(というかただの
datan
引数を使えばいいので)、上記コードを if (args['image'] or args['image1'] or '') ~= '' then -- 画像ファイルが指定された場合のみ、画像キャプション行追加 local data = args['caption'] or args['caption1'] or '' local datastyle = args['captionstyle'] or '' line = line..row('', '', data, '', '', datastyle) end
- で上書き、また2個目の画像キャプションも同様に
local data = args['caption2'] or '' local datastyle = args['captionstyle'] or '' line = line..row('', '', data, '', '', datastyle)
- を
if (args['image2'] or '') ~= '' then -- 2番目の画像ファイルが指定された場合のみ、2番目の画像キャプション行追加 local data = args['caption2'] or '' local datastyle = args['captionstyle'] or '' line = line..row('', '', data, '', '', datastyle) end
- で上書きして解決でいいかと思います。これで
caption
に何か投げられても、image
への指定がないとキャプションも非表示になります。{{Sidebar}}もそのようなロジックで運用されています。
- また、{{女性アイドル}}などを個別に修正する必要はなくなります。
- あと「row関数を呼び出しても、第7引数にfalseが渡されたら行は生成されない」みたいに実装する方法もありますが、分かりやすさを考えるとrow関数内はノータッチでいいかと思います。
- 以上提案に何かミスがあれば再考、問題があれば改案別案も良いとは思いますが、どうでしょうか。
- --悼む人 (トーク) 2024-11-18T07:00:25 (JST)
- ありがとうございます!!! これで解決できそうですね。(にしても、Infobox と Sidebox の混合状態は紛らわしい・・・・)-- BadEditor 2024-11-18T10:29:33 (JST)