私はちょっとした wiki を書いていて、構文の強調表示のすべてのオプションを調べています。ウィキ構文 (mediawiki) とマークダウン + ホワイトリストに登録されたタグの間の議論。私は後者を好むと思いますが、ユーザーにはテーブルが必要だと思います。ここ Stackoverflow でテーブルが許可されていないのはなぜですか?
<table> <tr> <td> </td> </tr> </table>
Q&A形式では何の役にも立ちません。少なくとも、誰かの質問に答えるため、または自分自身に質問するために表を使用する必要がある理由が思いつきません。
さらに、とにかくこれを行うことができます:
cell 1-1 cell 1-2
cell 2-1 cell 2-2
編集:私の返信に対するコメントを読んだ後、テーブルがより良い視覚的支援を提供できる場合がいくつかあることがわかりました. そこで、CSV に似たマークダウンをお勧めします。入力して実装するのは簡単だと思います。
サイトがテーブルの上に構築されており、ユーザーの html が構文的に正しいことを検証するのに十分な正規表現を記述できない場合は、テーブルを許可しないことをお勧めします。そうしないと、レイアウトが影響を受ける可能性があります。
サイトがテーブル レイアウトでなくても、コメント投稿などに不正な形式のテーブル html が 2 セットあると、サイトが改ざんされる可能性があります。
Three reasons:
Standard Markdown does not support tables. It is intended to be just like e-mail. SO uses standard Markdown, so no tables.
Some Markdown extensions support tables, but they are not compatible between each other, which invalidates the idea of Markdown, because the content becomes dependent on a particular Markdown implementation.
So, the tables can be made only with HTML-inside-Markdown. Which is also not good. I am sure that Markdown2PDF, Markdown2TeX and Markdown2TheNextBigML converters are easy to write. Converting Markdown with embedded HTML to anything but HTML is not trivial. So there is no point to store everything in Markdown (plain text), if (some) embedded HTML is allowed.
Another reason to sanitize all user-submitted HTML is obvious, it is too difficult and expensive to parse properly, and it can break the layout (e.g. <table width="10000" height="10000">
).
Finally, there is a huge benefit in a lightweight (pure Markdown) markup: it does not depend on a particular site layout (screen width, paddings, margins, justification, column widths, etc.). So if a SO redesign happens a year from now, the content does not need to be edited (HTML snippets depend on a particular CSS implicitly). Additional bonus: easier to use in third party applications (like mobile phone clients).
Wisiwyg javascriptエディター(WMD)は、入力しているものをリアルタイムでレンダリングする必要があることを考慮してください
(SOの最初からJeffが望んでいた重要な機能)
したがって、テーブルの動的更新は、HTMLトランスレータが入力時に不完全なテーブル構造を解釈する必要があるため、解析/表示するには複雑すぎると思います。
これは、colspan、rowspan、誤ったヘッダー構造などの機能に対処することを意味します。
したがって、より優れた動的プレビューエクスペリエンスを実現するために、テーブルは完全にスクラッチされました。
テーブルが役立つケースはたくさんあります: データのテーブル、マトリックスの表示、アルゴリズムの可能な結果の表示など。
HTML テーブル (rowspan など) ほど複雑なものは必要ないと思いますが、99% のユースケースでは単純な CSV で十分だと思います。また、javascript ダイナミック レンダラーがその仕事を簡単に行えるようになります。
CSV はよく知られており、軽量で、入力も理解も簡単です。その上に必要なのは、CSV データの開始タグと終了タグだけです。たとえば、[csv]...[/csv] または ||...||。これは次のようになります。
[csv]
**XOR**,**true**,**false**
**true**, false, true
**false**, true, false
[/csv]
これにより、次のようなテーブルが生成されます。
XOR true false
true false true
false true false
(1 行目と 1 列目が太字)
恣意的だと思います。それらには多くの用途がありますが、ここでは固定幅のテキストを手動で揃えることが好まれているようです (私はこれをハックと考えています)。
個人的には、BBCode スタイルの構文を好みます。
「明示的」とは、意図した効果をほぼすべての組み合わせで表現でき、意図しない効果がないことを意味します (マークダウンのように、多くの特殊文字の 1 つが使用されている場合)。たとえば、このサイトでアスタリスクの単語を非固定フォント (*単語*) で表示する方法がわかりません。モールス符号は特殊文字でもあるため、下線を使用できません。BBCode では、特殊文字は 1 つだけです。[
さらに、入力のサニタイズがはるかに簡単になります。