申し訳ありません、タイトルが曖昧でした。
私は、mybbフォーラムからコミュニティが移行してくるため、コミュニティのニーズにより適したDiscourseのMarkdownの一部機能を変更するプロセスにあります。
Discourseは私にとってMarkdown初体験であり、「理由がわからないままフェンスを壊すな」というアプローチを取りたいと考えています。しかし、Markdownが特定の操作を行う理由を見つけるのに苦労しており、理解を助けるリソース(特に見落としている可能性のあるセキュリティ上の懸念があれば)があれば幸いです。
このトピックでの回答は、いくつかの一般的な参照情報(初期の議論や(現在は廃止された)プラグインを含む)を提供してくれました。
みなさん、こんにちは。
私の Discourse コミュニティのユーザーは、技術に詳しくないスポーツの先生方です。そのため、エディターでの Markdown の強制使用により、投稿の書式にいくつかの問題が生じています。
理想的には、リッチテキストの WYSIWYG エディターを有効化して、投稿をできるだけシンプルで慣れ親しんだものにしていただければと思います。これを有効化する方法はありますか?もし現時点でできない場合、ロードマップに実装の計画はありますか?
よろしくお願いいたします。
そして、この投稿は開発面で非常に役立ちました。
Discourse は Markdown-it という Markdown エンジンを使用しています。
以下は、コアのバグを修正したり、新しいプラグインを作成したりするのに役立つ開発メモです。
基本
Discourse はエンジンの上に少数のヘルパーしか持たないため、学ぶべきことの大部分は Markdown It の理解にあります。
ドキュメントディレクトリ には、現在のドキュメントが含まれています。
以下を読むことを強く推奨します:
エンジンの動作をトップレベルで理解するために、アーキテクチャドキュメント 。
基本的な開発ガイドラインについては、開発 。
非常に詳細なリファレンスについては、API ドキュメント 。
最後に、非常に良くドキュメント化され、明確な ソースコード 。
エンジンの拡張機能を開発する際、私は通常、既存のルールを確認するために2番目のエディタを開きます。エンジンは長いルールのリストで構成されており、各ルールは追跡しやすい専用のファイルにあります。
インラインルールに取り組んでいる場合、それに近い動作をする既存のインラインルールを考え…
しかし、繰り返しますが、私は特定の機能が存在する理由を理解したいのです。そうすれば、それらを削除または調整するかどうかを最良に評価できます。
現在、私が注目している機能は次のとおりです。
<br> やその他のコードなしで連続した改行を削除する。
先頭にスペースが4つ以上ある行にコードブロックを自動作成する。
新しい行の先頭の空白をトリミングする。
数字のシーケンスを連続した増加順の番号付きリストに変換する。
どのようなガイダンスでも歓迎します!ありがとうございます!
Canapin
(Coin-coin le Canapin)
2023 年 9 月 18 日午後 9:49
2
このトピックには非常に興味がありますが、ほとんどの質問に答えるだけの知識がありません。
しかし、
Rhababo:
新しい行の先頭の空白をトリミングする。
Discourse は投稿をきれいで読みやすく保ちたいのだと思います。
余分な改行を削除し、行頭のスペースをトリミングすることで、投稿がどのように見えるかが一貫していることが保証されます。
これは、ユーザーが、時には気づかずに(一部のユーザーはそうですが!)、ランダムなスペースや行を追加して、コンテンツを読みにくくする可能性がある場合に特に役立ちます。
リストにギャップが必要な場合に奇妙に見えるかもしれませんが、番号付きリストを可能な限りシンプルに保つためだと思います。投稿(またはウィキ投稿)に新しい要素を追加するときに、すべての要素を再番号付けする必要はありません。
Jagster
(Jakke Flemming)
2023 年 9 月 19 日午前 6:09
3
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.
simon
2023 年 9 月 19 日午後 4:07
4
これがあなたの問題を解決するかどうかはわかりませんが、Discourse にはデフォルトで無効になっている traditional markdown linebreaks というサイト設定があります。有効にすると、改行を作成するには末尾にスペースが2つ必要になります。
この設定が有効な場合の例を次に示します。
この設定が無効な場合の例を次に示します(設定のデフォルト値)。
このページを見て、10分間のマークダウンチュートリアルを試してみる価値があるかもしれません: https://commonmark.org/help/。Discourse の新規ユーザーチュートリアルはこのページにリンクしていますが、チュートリアルを受ける多くのユーザーには見過ごされている可能性が高いです。
Heliosurge
(Dan DeMontmorency)
2023 年 9 月 20 日午前 1:33
5
間違いなく、ASCIIアートを正しく表示するのは困難になりますね。
洞察に感謝します。私のコミュニティには、フォーマットの自由が整合性よりも価値があるフォーラムゲーム/ストーリーテリングのサブコミュニティがあります。これらの機能の主な理由が、実際に整合性が取れていてシンプルな外観を維持するためであれば、私のユースケースでは安全に削除するか、少なくともユーザーが選択できるトグルを提供しても問題ないでしょう。
これは非常に役立つチュートリアルであり、「美しいテキストを作成する」という強調は、前述の整合性のアイデアに沿っているように思われます。指摘してくれてありがとう。
Markdown についてさらに調べていると、このサイト が特に啓発的であることがわかりました。
これは、commonmark チームが引用している Markdown の元の説明であり、Markdown がそのように機能する理由の中核要素が HTML との近接性にあることを明らかにしています。
たとえば、最初の文は次のとおりです。
Markdown is a text-to-HTML conversion tool for web writers.
そして、Markdown のこれらの奇妙な点のいくつかは、その組織化の特性によるものではなく、対応する HTML コードにテキストをきれいに変換したいという願望によるものだと思います。
これは、HTML が空白をトリミングするため、空白がトリミングされる理由を説明しています。
また、数字のシーケンスを増加する番号付きリストに変換する理由も、次のことで少し明確になります。
https://daringfireball.net/projects/markdown/syntax#list:
Markdown が生成する HTML 出力に、リストをマークするために使用する実際の番号は影響しないことに注意することが重要です。上記のリストから Markdown が生成する HTML は次のとおりです。
<ul>
<li>Bird</li>
<li>McHale</li>
<li>Parish</li>
</ul>
代わりに、Markdown でリストを次のように記述した場合:
1. Bird
1. McHale
1. Parish
または次のようにしても:
3. Bird
1. McHale
8. Parish
まったく同じ HTML 出力が得られます。要点は、必要であれば、ソースの番号と公開される HTML の番号を一致させるために、順序付き Markdown リストに序数を使用できるということです。しかし、怠惰になりたい場合は、そうする必要はありません。
したがって、Markdown は番号を気にする必要さえありません。なぜなら、HTML の順序付きリストは番号を割り当てることを気にしないからです。(markdown-it の実際のコードは、番号付けを開始する文字を決定するために、最初の位置の文字をチェックしますが、それだけです)。
これ以外にもっと多くのことがあると思いますが (たとえば、複数のデバイスでのフォーマットの一貫性など)、より奇妙な側面の一部は非常に HTML に触発されているようです。