掲示板のフォーラムルール表示部分に「コードはcodeタグで囲んでね」と書いてありますが、
ちゃんと有効なcodeタグで囲む人、全くタグで囲まない人、codeタグもどきで囲む人など様々な人がいます。
その中で、全くタグで囲まない人の書き込みに対し、自分は「codeタグで囲んでくれたらありがたいです」という書き込みをしています。
この書き込む定型文は、出てくる「codeタグもどき」に対抗するため、強化してきました。
今回は、そのような強化の歴史を振り返ってみます。
※うろ覚えのため、正しくないかもしれません
まずは、基本のバージョン。
「codeタグもどき」への対策が全くありません。ソースコードを提示する際は、codeタグで囲んでいただけると、見やすくてありがたいです。
codeタグで囲めと言われているのに囲まないのも嫌だが、どうしてもコードを見やすくしたくない人は、様々な抜け道を考えられるでしょう。
次に、HTMLなど関係ないタグの使用を潰すバージョン。
「BBCodeの」という指定を追加しました。ソースコードを提示する際は、BBCodeのcodeタグで囲んでいただけると、見やすくてありがたいです。
そして、せっかくBBCodeのcodeタグで囲んでもBBCodeを無効にしてしまうと意味が無いので、それへの対策をしたバージョン。
ソースコードを提示する際は、BBCodeを有効にした状態でBBCodeのcodeタグで囲んでいただけると、見やすくてありがたいです。
- コードが1行で表示される
- URLやBBCodeのタグがHTMLに変換されて表示される
- スクロールできず、コードの一部しか閲覧できない
- 一部の言語設定において、括弧などが背景色と同じ色になって隠れる
よく考えたら、BBCodeはデフォルトで有効なのに「有効にする」というのはおかしな話なので、改良したバージョン。
そして、今日BBCodeの開始タグ2個で囲む奴に対抗して開発した最新バージョン。ソースコードを提示する際は、BBCodeが有効な(無効にしない)状態でBBCodeのcodeタグで囲んでいただけると、見やすくてありがたいです。
「開始タグと終了タグの組」と明示。
さらに、終了タグを先に書かれる可能性に備えて、「開始タグが先」という条件も加える。
解説へのリンクを加えてわかりやすさも上げようとする試み。
[hr]
おまけ
tableタグにスタイルシートを入れられる性質を利用して、codeタグを使わずにソースコードをマシな表示にしてみるテスト。
[table=border:5px outset #888;][tr=][td=font-family:monospace;white-space:pre;padding:0.5em;]#include
int main(void) {
int i;
for (i = 0; i < 10; i++) {
puts("hello, world");
}
return 0;
}
[/td][/tr][/table]
Windows 7 x64のFirefox 51.0.1 (32 ビット) で見たところ、インデントは表示には反映されましたがコピペには反映されませんでした。
宗教上の理由がなければ、素直に有効なcodeタグを使いましょう。