引用のコンテキストが引用の機能に影響を与える

一部のユーザーが引用構文を不適切に編集し、引用機能の失敗を引き起こしています。例えば、現在のトピックから次のような例があります。これはエスケープされていません:

[quote=“CFO.Digest.Input, post:1, topic:3258”]
he suggested that I put mineral oil back in. [/quote]

問題は、閉じタグの /quote がテキストの中にありながら、開きタグが別行にあることです。どちらの形式でも可能ですが、両者は一致している必要があります。例えば、以下は機能します(関数をエスケープするために ’ を追加):

'[quote=“CFO.Digest.Input, post:1, topic:3258”]
he suggested that I put mineral oil back in.
'[/quote]

また、これも機能します:

'[quote=“CFO.Digest.Input, post:1, topic:3258”]he suggested that I put mineral oil back in.[/quote]

…しかし、モードを混在させることはできません。

「そんなことをするな」や「引用ボタンを使え」と言う人もいるでしょうが、依然として正しく行わないユーザーがいます。

これらのモードを混在させても正しく解析する方法はないでしょうか?

これは数年前に行われた意識的な変更です:

おや…つまり、顧客やユーザーにコーディング規約を強制しているようなものですね?

サムのフォーマットに関する分析には同意しますが、書き手にとって読みづらいことと、投稿を見るすべての人にとって読みづらいことには違いがあります。まるで書き手の過ちを読者が罰せられているかのようです…

人がフォーマットを崩したときは、私が編集し続けることにしましょう。

追記:もう一つの選択肢として、[/quote] の後に改行がない場合は強制的に改行を入れるという方法もあります…可読性の向上のためにフォーマットを自動修正するのです。

それは悪くないアイデアのようですが、単にテキストを選択して引用ボタンを使うだけで機能するはずです。彼らは引用を編集してフォーマットを壊しているのでしょうか?

ええ、その通りです!本当に驚くべきことです…しかも、その過程でフォーマットを崩していることに気づいていません。プレビュー機能はまだ上がっていないのでしょうか?それとも、モバイルから操作しているのでしょうか…

そして、これを行った人が業界の原則の一つを踏まえた人物だとは…彼を編集者にしなくてよかった!:slight_smile:

なるほど!モバイル版が安全な選択ですね。ぴったり選定するのは難しく、その上で無理やり修正しようとすると手際が悪くなり、プレビューも表示されなくなります。

これは私のシステムで引き続き発生している問題です。今日表示されたメッセージは以下の通りです:

閉じタグの後に改行を追加して投稿を編集しましたが、HTML のように改行やキャリッジリターンがタグの機能に影響を与えない形でテキストストリームが解析されないのは驚きです。これはバグではないでしょうか…

いいえ、タグはそういう仕組みで動作します。タグをランダムな順序で挿入しても、正常に動作するとは限りません。

順序はランダムではなく、問題ありません。ただし、HTML とは異なり、このシステムでは改行がどこに配置されるかが重要です。

壊れた投稿を修正するには、閉じタグの後に改行/CR を追加するだけで十分でした。

ユーザーが必須の構造に従わない場合に投稿を手動で編集し続ける用意はありますが、それでもパース処理に改行が影響するというのは奇妙に思えます。

マークダウン仕様をご覧ください。HTML とは異なり、マークダウンは適切に配置された改行に完全に依存しています。

<h1> 要素内で誤って改行を入れてもレンダリングには影響しませんが、マークダウンの世界ではそうはいきません。

ここに改行が入ると

これは多くの要素に当てはまります。マークダウンのテーブルは、余分な改行が入るとひどく壊れてしまいます。一方、HTML テーブルはそうではありません。

HTML のアナロジーが有効かどうか、あるいは有用かどうかはわかりません。ユーザーは HTML を書くよう求められているわけではありません。<p></p><br> の欠落による痛手をお考えください。テキストが文字通りの壁になってしまいます。

Discourse が「HTML 優先」ではなく「マークダウン優先」であると考えていただければ、構造を無視してタグを投げつけることによる課題が理解できるはずです。

私自身は、どんなプログラマーと同様に、こうした状況に対処することに問題ありません。しかし、私たちのユーザーは一般の人々であり、マークダウンがウォルマートの価格設定に関係していると考えてしまうかもしれません。

おっしゃる通り、幸いなことに彼らにHTMLの作成を求めているわけではありません。彼らにマークダウン形式の適用を強制することで、何を得られるのでしょうか?少しのコーディングの工夫で、彼らを私たちの世界の現実から守ることができるはずです。

コードブロック内などでない限り、[/quote] の後に自動的に改行を強制することの複雑さがどれほどになるかはわかりませんし、Markdown を使用する際には構造を守る必要があることも理解しています。

しかし、[/quote] と同じ行にテキストを書くというごく小さな「ミス」(これをミスと呼べるかどうかはわかりませんが)のために、ユーザーのメッセージに不正な引用が表示されるのは、いかにイライラするものかということも理解しています。

意図的に [quote] と同じ行にテキストを書くケースはあるでしょうか?
もしそのようなケースがないなら、テキストが同じ行に存在する理由はないと感じます。閉じタグの後に強制的な改行を入れることは、ユーザーとスタッフの両方に有益でしょう。ただし、これが思ったほど単純ではないことも確信しています。

その通りです。Markdown の基本的な性質として、改行(または改行 2 回)は段落タグと同じ扱いになります。このため、一部のタグは正しく解釈されるために前後に改行が必要です。これは仕様の一部だと考えられます。