Plugins para escrever código nos tópicos

Olá,

Gostaria de saber se existem plugins no Discourse que permitam escrever tópicos com códigos como na imagem abaixo??

Com cores, indentação e assim por diante.

Talvez eu esteja perdendo algo, mas você já pode usar blocos de código:

console.log("hi");

Funciona da mesma forma que o Discord, do qual sua captura de tela foi tirada.

Desculpe pela minha ignorância, mas como posso usar esses blocos de código ao criar um tópico?

A ideia é exatamente imitar o Discord dessa forma.

3 crases + nome da linguagem (opcional):

console.log("oi");

Acho que entendi, mas por exemplo, neste código, como ficam as cores de algumas funções? Está exibindo algumas cores, mas não como mostrado na imagem do Discord.

A linguagem é 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);
      }
   }
}

A linguagem é Python.

AFAIK, o Discord usa a mesma biblioteca de código que nós: GitHub - highlightjs/highlight.js: JavaScript syntax highlighter with language auto-detection and zero dependencies. · GitHub

Se você quiser que seu código tenha a mesma aparência do Discord em uma postagem do Discourse, instale Codeblock Theme Picker e altere o tema para Solarized Dark.

No nosso site, temos uma página que demonstra as diferentes variações habilitadas.