Sto utilizzando api.decorateCooked() per questo, ma poiché il contenuto è già cotto, tutti gli spazi “ridondanti” sono stati rimossi, ad esempio lo spazio prima di printf nell’esempio sopra.
Come posso accedere al testo “non cotto” così come è stato inserito dall’utente?
Per essere chiaro; ciò che voglio supportare con il mio componente del tema è permettere all’utente di scrivere qualcosa come:
È possibile installare un plugin personalizzato in un’istanza di Discourse ospitata da Discourse con il piano gratuito? Comunque non sono riuscito a capire come farlo.
Sarebbe possibile implementare il supporto per raw nei componenti del tema? Se sì, accettereste una PR per farlo?
L’helper wrap non fa quello che ho chiesto. Rimuove anch’esso l’indentazione.
Purtroppo i nostri piani gratuito, standard e business non consentono plugin personalizzati. Utilizziamo un cluster che ospita molti clienti diversi e non disponiamo di un meccanismo per eseguire un plugin per un singolo cliente.
Supportare la possibilità di iniettare un’estensione markdown tramite un componente del tema è qualcosa che ho considerato in passato, ma non abbiamo piani concreti per aggiungerlo. Sarebbe estremamente difficile da implementare.
E se si utilizzasse un doppio wrapping? Questo manterrebbe sicuramente tutta l’indentazione.
[wrap=test]
```
1
1
3
```
[/wrap]
Forse anche semplicemente usando qualcosa del genere potrebbe funzionare: avresti un elemento distinto su cui lavorare:
È estremamente difficile anche per te o solo per qualcuno come me senza conoscenze pregresse sull’implementazione? In cosa risiede la difficoltà? Sarebbe più semplice fare qualcosa di meno complesso rispetto a un’estensione completa di Markdown, come l’accesso in sola lettura ai dati grezzi?
Il frontend non riceve il contenuto raw del post. Riceve solo la versione renderizzata. Questo significa che i payload inviati al client sono più piccoli. Inoltre, il server è l’ente responsabile della conversione da Markdown a HTML. Se facessimo tutto questo a runtime nel browser, aggiungeremmo molti costi extra e dovremmo preoccuparci di complesse vulnerabilità di sicurezza.
Solo per chiarire, sai che se ciò che vuoi davvero sono i blocchi di caffè puoi racchiudere i blocchi di codice tra tre accenti gravi, vero? Non riesco a capire in che misura il tuo esempio sia una metafora.
@pfaffman Non so cosa intendi per blocchi di caffè, ma sì, so che tre backtick generano un blocco di codice.
Non capisco perché il mio esempio dovrebbe essere una metafora. Per cosa? L’immagine che ho pubblicato è uno screenshot per mostrare cosa genera il mio componente del tema per il codice fornito.
Sì, immagino di sì. Non ho mai visto il plugin per le formule matematiche, ma sembra simile concettualmente. Ha la stessa funzione di base del Discourse Graphviz, ma questo può fare cose molto più avanzate, come transizioni animate tra i grafici, e offre un’ampia gamma di opzioni per controllarlo e personalizzarne lo stile.
Ecco il repository GitHub se sei interessato. Non è ancora stato distribuito ufficialmente da nessuna parte perché devo prima scrivere una documentazione dettagliata su come utilizzarlo.
Allora sembra che funzioni, e forse mi sfugge qualcosa, ma la soluzione sarebbe inviare le tue modifiche tramite una PR e poi sarebbero disponibili nei piani business.
Mi dispiace, non ho capito cosa intendi. È un componente del tema e può essere installato in qualsiasi istanza di Discourse tramite l’interfaccia web dal suo amministratore, indipendentemente dal piano scelto.
Probabilmente non ho capito. Ma mi è sembrato che ciò che vuoi fare sia estendere il plugin graphviz per supportare più funzionalità di Graphviz e che abbia più senso integrarle in quel plugin.
Tuttavia, non ho davvero capito cosa stai cercando, quindi potrei essere completamente fuori strada.
Ora capisco cosa intendevi. No, dato che siamo su un piano gratuito, non potevamo utilizzare quel plugin, quindi ho sviluppato invece un componente del tema. Le funzionalità aggiuntive erano un sorta di bonus che è stato facile aggiungere perché si basa su una libreria diversa rispetto al plugin esistente.
I plugin e i componenti del tema sono molto diversi, quindi non credo sia possibile riutilizzare il codice tra di loro, ma immagino che sarebbe possibile per qualcuno aggiungere la stessa funzionalità al plugin esistente, se fosse interessato.