Ich verwende dafür in meiner Instanz eine einfache Theme-Komponente. Nachfolgend eine angepasste Version meiner Lösung – diese unterstützt neben #reply auch #upload (ein neuer Beitrag, der auf dem Desktop das Upload-Fenster öffnet) und #edit (für Wiki-OPs).
Es ist noch etwas Arbeit nötig, wie etwa die Vermeidung von setTimeout und das korrekte Management von draftSequence (ich glaube nicht, dass topic.draft_sequence richtig ist), und ich weiß nicht, was hier die beste Praxis wäre. Dennoch funktioniert es für mich einwandfrei.
Das Navigieren zu einem beliebigen Thema wie /t/[slug]/[id]#reply öffnet den Editor mit einer neuen, leeren Antwort.
Falls Sie vorab ausgefüllten Text benötigen, ist dies durch Setzen des reply-Attributs im Objekt möglich, das an composer.open übergeben wird. Außerdem wird, falls bereits ein Entwurf für dieses Thema existiert, gefragt, ob Sie diesen speichern oder verwerfen möchten, bevor diese neue Antwort erstellt wird – draftSequence muss korrekt sein, wenn das gewünschte Verhalten das Fortsetzen dieses Entwurfs ist.
<script type="text/discourse-plugin" version="0.4">
if (/.*#reply$/g.test(document.URL)) {
const { REPLY } = require('discourse/models/composer').default;
const composer = Discourse.__container__.lookup('controller:composer');
setTimeout(function() {
const topic = Discourse.__container__.lookup("controller:topic").get("model");
if (topic) {
composer.open({
action: REPLY,
draftKey: topic.draft_key,
draftSequence: topic.draft_sequence,
topic,
});
}
}, 0)
}
</script>
Ich hoffe, das hilft weiter.