Markdown、BBCode、絵文字がAPI投稿でレンダリングされない

Discourse API を使用して PUT で投稿を更新していますが、更新は行われるものの、受け入れられた HTML タグのみが解析されます。Markdown、BBCode、絵文字は正しくレンダリングされません。PUT リクエストは content type を application/json として渡しています。これは、実際に JSON ペイロードであり、ドキュメントでは 3 つのオプションの 1 つであると記載されているにもかかわらず、PUT リクエストで受け入れられる唯一の content type であるためです。

API を介して更新が行われたときに、レンダリング エンジンが解析されない理由について、何かアイデアはありますか?

「いいね!」 1

ログを確認し、生のマークダウンフィールドに何が入ったかを確認します。

「いいね!」 3

ログにエラーはなく、cURLリクエストで指定しているとおりの生のペイロードがPUTを実行しています。トピックのJSONビューを取得すると、次のようになります。

	<p><img src="https://global.discourse-cdn.com/standard10/uploads/wysterialane/original/1X/284fb6069edededf16b0830d468eaf03bc261616.webp" alt="mother of god shades GIF" data-base62-sha1="5KBSuBIpIj3xlACzeZINBKw7wEu" width="262" height="200" class="animated"></p><br>なぜこれが機能しないのですか? :face_with_symbols_over_mouth: <br>

そこにあるGIFは、私がOPに入れたもので、レンダリングエンジンがHTMLに変換してすべてうまくいきました。API経由で<br>なぜこれが機能しないのですか? :face_with_symbols_over_mouth: <br>の部分を追加すると、生のテキストが投稿されますが、レンダリングエンジンは何も行いません。これは予期された動作ですか?回避策として、私のサービスに完全なHTMLペイロードを作成させて渡すことができますが、それは少し残念です。

また、インカミング Webhook を介してライブ チャット スレッドに投稿する別のサービスがあり、絵文字はチャット ペインで正しくレンダリングされることも注目に値します。これは投稿 API に固有のようです。

絵文字とHTML

HTMLタグで囲まれた絵文字ショートコードで問題が発生しているのは、予期された動作だと思います。これは、Discourseの投稿エディタ内で作成された投稿で再現できます。たとえば、:face_with_symbols_over_mouth: は、この段落内では :face_with_symbols_over_mouth: としてレンダリングされます。

Markdownエンジンに頼るのではなく、段落を作成するためにpタグを使用すると、ショートコードはレンダリングされません。たとえば、次のようになります。

<p>This sentence contains an emoji shortcode :face_with_symbols_over_mouth:</p>

This sentence contains an emoji shortcode :face_with_symbols_over_mouth:

Markdown

API経由でMarkdownを投稿する問題は解決可能ですが、扱いにくいかもしれません。ターミナルからcurlを使用すると、次のようなものが機能するはずです。

m="### this is a heading


This is a very short paragraph with some _emphasis_ on a word.

This is another paragraph with a  :slight_smile: emoji

- this
- is
- an
- unordered
- list

Followed by another paragraph.

1) and
2) an
3) ordered
4) list"

curl -X POST "http://localhost:4200/posts.json" -H "Api-Key: $api_key" -H "Api-Username: simon" -F "title=Markdown test one" -F "category=6" -F "skip_validations=true" -F "raw=$m"

上記の要求のskip_validationsパラメータは、テスト中に「本文が短すぎる」または「タイトルの重複」などのエラーを防ぐために存在します。これは、サイトの設定(最小投稿長、本文の最小エントロピー、最小トピックタイトルの長さなど)の多くをバイパスします。

BBCodeの問題については不明です。レンダリングしようとしているBBCodeタグは、Discourseサイトの投稿エディタに追加した場合に機能しますか?

「いいね!」 1