Estou escrevendo um componente de tema e gostaria de decorar/modificar as postagens logo antes de serem processadas. Como posso acessar a postagem/texto não processado (para a postagem que está prestes a ser processada/exibida)?
Li o “Guia do Desenvolvedor para Temas do Discourse” e descobri que posso modificar a postagem processada usando os métodos do pluginAPI decorateCooked/decorateCookedElement e addPostTransformCallback, mas não encontrei como acessá-la antes de ser processada.
Também examinei os controladores e componentes, mas sem sucesso.
Obrigado pela sua resposta! Mas eu não quero salvar as modificações do texto; quero alterá-lo depois de salvo, mas antes de ser exibido (e antes de ser processado).
O motivo é que quero que o texto original apareça se o usuário editar a postagem. Suspeito que, se eu usasse composerBeforeSave, o texto alterado apareceria ao editar (?).
Se você quiser fazer isso como um tema, esta será sua única opção. entrada do usuário (markdown) → processamento no lado do servidor em Ruby → (html) recuperação por outros usuários e possível formatação. Esta é a promessa que será acionada antes de clicar no botão Salvar/Responder. Isso não aparecerá nos rascunhos, mas você tem razão: aparecerá se você editar a postagem. Se quiser contornar isso, precisará desfazer as alterações feitas ao salvar quando o editor abrir ou alternar para a postagem que você modificou anteriormente. Posso entrar em mais detalhes, ou você pode simplesmente ler o código e fazer seus próprios experimentos.
Abraços!
EDIT: Acabei de pensar nisso. Teoricamente, você também poderia fazer o processamento no lado do cliente. Mas acho que é uma má ideia por questões de desempenho e outros motivos. Ou simplesmente crie um plugin: (Superseded) Plugin Tutorial #1 - How to manipulate the text in the composer?