Plugin per scrivere codice nei topic

Ciao,

Vorrei sapere se esistono plugin per Discourse che mi permettano di scrivere un argomento con il codice come nell’immagine qui sotto??

Con colori, indentazione e così via.

Forse mi sfugge qualcosa, ma puoi già usare i blocchi di codice:

console.log("hi");

Funziona allo stesso modo di Discord, da cui è stata tratta la tua schermata.

Scusa per la mia ignoranza, ma come posso usare questi blocchi di codice scrivendo un argomento?

L’idea è proprio quella di copiare Discord in questo modo.

3 backtick + nome del linguaggio (opzionale):

console.log("ciao");

Penso di aver capito, ma ad esempio in questo codice, come stanno i colori per alcune funzioni? Mostra alcuni colori, ma non come nell’immagine mostrata su Discord.

Il linguaggio è Python.

input long  MagicN = 1234;

CTrade         negocio;
CPositionInfo  posicao;
bool           InseriuParcial = false;


void OnTrade()
{
   ExpiringOrdersPartial(_Symbol, MagicN);
}


void OnTick()
{   
   //....
   
   bool pos = posicao.SelectByMagic(_Symbol, MagicN);
   
   if (pos) && (!InseriuParcial)
   {
      string comment = "[part:" + IntegerToString(posicao.Ticket()) + "]"; 
      if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL)
      {
         negocio.BuyLimit(1.0, simbolo.Last() -500, _Symbol, 0, 0, orderTypeTime, 0, comment + " Partial");
         negocio.BuyLimit(1.0, simbolo.Last()-1000, _Symbol, 0, 0, orderTypeTime, 0, comment + " Partial");
      }
      else
      {
         //....
      }
      InseriuParcial = true;
   }
   
   //....
}

void ExpiringOrdersPartial(string symbol, long m_magic)
{  
   int total = OrdersTotal();
   for(int i = total - 1; i >= 0; i--)
   {    
      ulong  order_ticket  = OrderGetTicket(i);
      
      if((OrderGetString(ORDER_SYMBOL) != symbol) || (OrderGetInteger(ORDER_MAGIC) != m_magic))
         return;
      
      string comment = OrderGetString(ORDER_COMMENT);
      string tokenB  = "[part:";
      string tokenE  = "]";
      
      int posB = StringFind(comment,tokenB);
      if (posB != -1)
      {
         int posE = StringFind(comment,tokenE, posB + StringLen(tokenB));
         if (posE == -1)
            return;
         
         string position_ticketS = StringSubstr(comment, posB + StringLen(tokenB), posE - (posB + StringLen(tokenB)));
         ulong  position_ticket  = (ulong)StringToInteger(position_ticketS);
         
         if (!PositionSelectByTicket(position_ticket))
            OrderDelete(order_ticket);
      }
   }
}

Per quanto ne so, Discord utilizza la stessa libreria per il codice che usiamo noi: GitHub - highlightjs/highlight.js: JavaScript syntax highlighter with language auto-detection and zero dependencies. · GitHub

Se vuoi che il tuo codice appaia uguale a quello di Discord in un post di Discourse, installa Codeblock Theme Picker e cambia il tema in Solarized Dark.

Nel nostro sito abbiamo una pagina che dimostra le diverse varianti abilitate.