こんにちは。
API posts.json を使用して HTML コンテンツを投稿し、その後投稿を編集すると、投稿のコンテンツに HTML が表示されることに気づきました。
投稿の表示方法:
編集をクリックしたとき:
API リクエスト:
フォームから直接投稿すると、編集時に HTML は表示されません(表示は同じです)。
投稿が編集されるときに、コンテンツに HTML が表示されないようにするにはどうすればよいですか?
ありがとうございます ![]()
こんにちは。
API posts.json を使用して HTML コンテンツを投稿し、その後投稿を編集すると、投稿のコンテンツに HTML が表示されることに気づきました。
投稿の表示方法:
編集をクリックしたとき:
API リクエスト:
フォームから直接投稿すると、編集時に HTML は表示されません(表示は同じです)。
投稿が編集されるときに、コンテンツに HTML が表示されないようにするにはどうすればよいですか?
ありがとうございます ![]()
こんにちは、Luicidさん ![]()
コンポーザーに表示される生のコンテンツは、HTMLタグの配列を受け入れるため、プレーンテキストで表示されます。
<br>タグを使用せずに改行を追加したい場合は、代わりに\nを使用してください。 ![]()
最初の行\n新しい行
2つの段落を作成したい場合は、追加の改行が必要です。
最初の行\n\n新しい行
これらのメッセージを編集しても、<br>タグは表示されません。
注:投稿が処理される際のコンテキストに応じて、段落は自動的に作成されるため、クエリの生の入力にこれらのタグを追加する必要はありません。
こんにちは、Canapin ![]()
わかりました。つまり、API経由で移行された HTML 投稿を編集する際に、きれいに表示させる唯一の方法は、\u003cp\u003e と \u003cbr\u003e タグをすべて \\n に置き換えるということですね?
ありがとうございます。
インポートされたHTMLコンテンツをサニタイズしようとしている場合、段落を改行に置き換えることもできるため、改行が確実に存在し、投稿が適切に処理されるようになります。
<p>some text</p><p>some other text</p>
は次のようになります。
\nsome text\n\nsome other text\n
そして次のようにレンダリングされます。
some text
some text
はい、ありがとうございます ![]()
最後の質問です。
API経由で投稿にメンション(例:@Canapin)を追加する方法はありますか? rawフィールドで@usernameを試しましたが、うまくいきませんでした。
JSONペイロードを送信するようにしてください。
{
"raw": "テストメンション: @canapin",
"topic_id": 86,
"reply_to_post_number": 3
}
結果は機能するメンションです。
大量のデータをインポートする場合は、インポートスクリプトを使用する必要があります。それらの多くには、HTMLの削除や引用符およびメンションの処理の例が含まれています。
既存のサイトに継続的にデータを追加したい場合は、APIを使用してください。
なるほど、間違いに気づきました!大文字と小文字を区別するメンションなので、正確なユーザー名を使用する代わりに、小文字のユーザー名でテストしていました。申し訳ありません。
お時間を割いてお手伝いいただき、ありがとうございました!![]()
良い一日を!
率直に言って、Rubyでインポートスクリプトを作成して概念実証(POC)を作成しましたが、古いソリューションとDiscourseの間で数日間のデータを同期する必要があるため、単純なPythonスクリプトを実行する方が良いと考えています。セットアップと保守がはるかに高速です。さらに、Pythonで古いデータをスクレイピングするため、一貫性があります。以前のプロバイダーはデータベースへのアクセスを許可しないため、すべてのコンテンツをデータベースにスクレイピングしました。
しかし、もちろん、単純な移行であればより良いソリューションです:slight_smile:
大文字・小文字を区別しない場合でも、メンションは機能するはずです。

最初の投稿のスクリーンショットは form-data を使用しています。JSON 形式の raw フィールドを使用してください。![]()
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.