Realce de sintaxe estático


O realce de sintaxe estático é o realce de código que o utilizador não pode alterar. Isto inclui fragmentos de código, iterações e muito mais.

Note

O editor online não usa realce de sintaxe estático, porque o utilizador pode alterar o código em tempo real. Se quiseres saber mais sobre como tratamos o realce de sintaxe no editor online, consulta a documentação do realce de sintaxe dinâmico.

Implementação

O realce de sintaxe estático é feito com a biblioteca highlightjs.

Ao adicionar suporte para a tua linguagem, há três opções:

  1. A linguagem é suportada nativamente pelo highlightjs (ou seja, está listada como linguagem suportada). Nesse caso, continua na secção Configurar o track.
  2. A linguagem é suportada através de um plugin do highlightjs já existente. Nesse caso, continua na secção Usar um plugin existente.
  3. A linguagem não é suportada. Aqui tens três opções:
    1. Escrever um plugin do highlightjs de raiz, como descrito na secção Criar um novo plugin.
    2. A sintaxe da tua linguagem é (muito) parecida com a sintaxe de outra linguagem (por exemplo, a sintaxe de Unison é parecida com a de Haskell); nesse caso, podes considerar usar o realce de sintaxe dessa linguagem para a tua. Consulta a secção Configurar o track para mais informações.
    3. Não usar realce de sintaxe estático.

Configurar o track

Para ativar o suporte do highlightjs para a linguagem do teu track, tens de alterar o ficheiro config.json do track. Dentro do ficheiro config.json, adiciona/define a chave online_editor.highlightjs_language com o identificador de linguagem do highlightjs adequado (que podes encontrar na documentação).

Exemplo

{
  "online_editor": {
    "highlightjs_language": "csharp"
  }
}

Usar um plugin existente

Para usar um plugin existente, este tem de estar publicado no NPM. Se o plugin não estiver publicado no NPM, podes:

  1. Perguntar ao autor do plugin se quer publicá-lo no NPM.
  2. Fazer fork do repositório e publicá-lo tu próprio.
  3. Pedir-nos (ao Exercism) que façamos fork do repositório e o publiquemos. Para tal, abre um tópico no fórum a pedir isso.

O passo seguinte é ativar o plugin.

Ativar o plugin

Para ativar um plugin (que tem de estar publicado no NPM), abre um tópico no fórum a pedir-nos que adicionemos suporte para o plugin no site. Nós (o Exercism) criaremos então um Pull Request que adiciona o plugin ao site. Depois de o PR ser integrado, podes ativar o suporte do highlightjs seguindo as instruções da secção Configurar o track.

Criar um novo plugin

Se quiseres criar um plugin, tens duas opções de alojamento:

  1. Criar um repositório na tua conta pessoal e publicá-lo tu próprio.
  2. Pedir-nos (ao Exercism) que criemos um repositório e deixar que sejamos nós a publicá-lo. Para tal, abre um tópico no fórum a pedir isso.

Depois de teres um repositório, segue as instruções para contribuir com uma linguagem para implementares o plugin.

Depois, tens de publicar o plugin no NPM. O passo seguinte é ativar o plugin.

Usar outra linguagem

A sintaxe da tua linguagem é (muito) parecida com a sintaxe de outra linguagem; nesse caso, podes considerar usar o realce de sintaxe dessa linguagem para a tua. Para isso, configura o track para usar o identificador de linguagem do highlightjs dessa outra linguagem. Consulta a secção Configurar o track para mais informações.