なぜMarkdownはこうなるのか?(空白のトリミングとその他の機能)

申し訳ありません、タイトルが曖昧でした。

私は、mybbフォーラムからコミュニティが移行してくるため、コミュニティのニーズにより適したDiscourseのMarkdownの一部機能を変更するプロセスにあります。

Discourseは私にとってMarkdown初体験であり、「理由がわからないままフェンスを壊すな」というアプローチを取りたいと考えています。しかし、Markdownが特定の操作を行う理由を見つけるのに苦労しており、理解を助けるリソース(特に見落としている可能性のあるセキュリティ上の懸念があれば)があれば幸いです。

このトピックでの回答は、いくつかの一般的な参照情報(初期の議論や(現在は廃止された)プラグインを含む)を提供してくれました。

そして、この投稿は開発面で非常に役立ちました。

しかし、繰り返しますが、私は特定の機能が存在する理由を理解したいのです。そうすれば、それらを削除または調整するかどうかを最良に評価できます。

現在、私が注目している機能は次のとおりです。

  1. <br> やその他のコードなしで連続した改行を削除する。
  2. 先頭にスペースが4つ以上ある行にコードブロックを自動作成する。
  3. 新しい行の先頭の空白をトリミングする。
  4. 数字のシーケンスを連続した増加順の番号付きリストに変換する。

どのようなガイダンスでも歓迎します!ありがとうございます!

「いいね!」 4

このトピックには非常に興味がありますが、ほとんどの質問に答えるだけの知識がありません。

しかし、

Discourse は投稿をきれいで読みやすく保ちたいのだと思います。
余分な改行を削除し、行頭のスペースをトリミングすることで、投稿がどのように見えるかが一貫していることが保証されます。
これは、ユーザーが、時には気づかずに(一部のユーザーはそうですが!)、ランダムなスペースや行を追加して、コンテンツを読みにくくする可能性がある場合に特に役立ちます。

リストにギャップが必要な場合に奇妙に見えるかもしれませんが、番号付きリストを可能な限りシンプルに保つためだと思います。投稿(またはウィキ投稿)に新しい要素を追加するときに、すべての要素を再番号付けする必要はありません。

「いいね!」 5

Actually keeping everything really thight can make things harder to read. Paragraph after an image can be an example.

But… I’m using <br /> so no biggie at all.

Another but… I’m quite sure that cleaning operation has nothing to do with cleaner reading experience. It comes from code itself. Similar thing than very tired statement that markdown is easier to read on ”code level”. End user is never on that situation.

Well. This is pure meta now.

But I refuse to believe cleaning lines and extra spaces is actually making overall experience better to end user.

「いいね!」 2

これがあなたの問題を解決するかどうかはわかりませんが、Discourse にはデフォルトで無効になっている traditional markdown linebreaks というサイト設定があります。有効にすると、改行を作成するには末尾にスペースが2つ必要になります。

この設定が有効な場合の例を次に示します。

この設定が無効な場合の例を次に示します(設定のデフォルト値)。

このページを見て、10分間のマークダウンチュートリアルを試してみる価値があるかもしれません: https://commonmark.org/help/。Discourse の新規ユーザーチュートリアルはこのページにリンクしていますが、チュートリアルを受ける多くのユーザーには見過ごされている可能性が高いです。

「いいね!」 5

間違いなく、ASCIIアートを正しく表示するのは困難になりますね。:wink:

洞察に感謝します。私のコミュニティには、フォーマットの自由が整合性よりも価値があるフォーラムゲーム/ストーリーテリングのサブコミュニティがあります。これらの機能の主な理由が、実際に整合性が取れていてシンプルな外観を維持するためであれば、私のユースケースでは安全に削除するか、少なくともユーザーが選択できるトグルを提供しても問題ないでしょう。

これは非常に役立つチュートリアルであり、「美しいテキストを作成する」という強調は、前述の整合性のアイデアに沿っているように思われます。指摘してくれてありがとう。

「いいね!」 5

Markdown についてさらに調べていると、このサイト が特に啓発的であることがわかりました。

これは、commonmark チームが引用している Markdown の元の説明であり、Markdown がそのように機能する理由の中核要素が HTML との近接性にあることを明らかにしています。

たとえば、最初の文は次のとおりです。

Markdown is a text-to-HTML conversion tool for web writers.

そして、Markdown のこれらの奇妙な点のいくつかは、その組織化の特性によるものではなく、対応する HTML コードにテキストをきれいに変換したいという願望によるものだと思います。

これは、HTML が空白をトリミングするため、空白がトリミングされる理由を説明しています。

また、数字のシーケンスを増加する番号付きリストに変換する理由も、次のことで少し明確になります。

したがって、Markdown は番号を気にする必要さえありません。なぜなら、HTML の順序付きリストは番号を割り当てることを気にしないからです。(markdown-it の実際のコードは、番号付けを開始する文字を決定するために、最初の位置の文字をチェックしますが、それだけです)。

これ以外にもっと多くのことがあると思いますが (たとえば、複数のデバイスでのフォーマットの一貫性など)、より奇妙な側面の一部は非常に HTML に触発されているようです。

「いいね!」 2