コードの変更とコメントの表示

これは、その機能が(プラグインとして)存在するかどうか、あるいは存在しない場合の機能リクエストかという問題です。

私が探しているのは、Discourse フォーラムの議論内で以下のようなものを表示できる機能です。

単に言語固有の構文ハイライト付きのコードの一部を表示するだけでなく(これは、例えば ```php で開始し、``` で終了させることで既に可能です)。

私が求めているのは、特定の行を強調表示したり、コメントを付加したり、行への編集内容を表示したりできる機能です。これらは、適用すべき変更をアドバイスしたり、問題のある箇所を指摘したりする際に、技術的な話題を扱うフォーラムで一般的に有用です。

私たちのプロジェクトでは GitHub を使用していますが、GitHub で発生する変更をそのまま表示するものを求めているわけではありません。Discourse 内で独立して入力できるものを求めています。上記の画像は、それがどのように見えるかの例に過ぎません。

diff を次のように表示できます:

通常の行
- 削除された行
+ 追加された行

```diff
通常の行
- 削除された行
+ 追加された行
```
「いいね!」 6

なるほど、それは :cool: ですね。

言語固有の構文ハイライトと組み合わせることは可能でしょうか?

ハイライトがないとコードが単調に見えてしまいますが、あるととても見栄えが良くなります。

残念ながらできませんね。ただ、そうなるといいですよね。当社は構文ハイライトに highlight.js を使用しています。同様の議論が 彼らの GitHub リポジトリ で行われていたようですが、プロジェクトの範囲外と判断されたようです。

「いいね!」 3

うーん :thinking:

彼らはあの gist スニペットを持っていますね。彼らが提案しているのは、ハイライター(この場合は marked.js、おそらく highlight.js でも同様)の「外側」でそれを実装することです。

Discourse でそれができると思いますか?あるいは、その前の質問ですが、アーキテクチャの観点から見てこれは理にかなっていますか?

一般的なアイデアは、単に検索と置換を行って差分マークを削除し、それを構文ハイライターに送り、その後にもう一度検索と置換を適用するというものです。かなり不自然に聞こえるかもしれませんが、実際にはそのスニペットはそれほど複雑ではありません。

「いいね!」 1

もちろん可能ですが、簡単ではないと思います。すべての構文ハイライトは JavaScript で処理されるため、テーマコンポーネントを使って操作できる可能性があります。

「いいね!」 1

どうやって色をつけたのですか?

Type out the code block like this:

```diff
A normal line
- removed line
+ added line
```

Specifying diff as the syntax means that you can use + and - at the beginning of lines to highlight them green and red.

「いいね!」 3
通常の行
- 削除された行
+ 追加された行

できました!@david ありがとう

「いいね!」 2

今後は diff 構文を使用します。これは非常に役立ちます。

Gist からのもう一つの提案について、Discourse がそれを実装している様子は見当たりません。考えるほどに、それは構文ハイライト機能の「外側」ではなく、むしろ「内部」に統合するのが完璧に合うと信じています。

要するに、年数が経つにつれて構文ハイライト機能にいくつかの機能を追加することが理にかなっており、「コードを読みやすく表示する」という基本的な役割は、自然とコードの「動的な側面」も表示するものへと拡張されます。

何が、どこで、誰によって変更されたか;現在指しているのは何か;コードとそれが投稿されている場所との関係を説明する役立つコメントはどれか、などです。

この議論への皆様のご参加に感謝いたします。

「いいね!」 1

別の案はいかがでしょうか?

<del>del</del> 
<ins>ins</ins> 

del
ins

「いいね!」 4