Resaltado de sintaxis estático


El resaltado de sintaxis estático es el resaltado del código que el usuario no puede cambiar. Esto incluye fragmentos de código, iteraciones y mucho más.

Note

El editor en línea no usa el resaltado de sintaxis estático, ya que el usuario puede cambiar el código sobre la marcha. Si quieres saber más sobre cómo gestionamos el resaltado de sintaxis en el editor en línea, consulta la documentación sobre el resaltado de sintaxis dinámico.

Implementación

El resaltado de sintaxis estático se hace con la biblioteca highlightjs.

A la hora de añadir compatibilidad con tu lenguaje, tienes tres opciones:

  1. El lenguaje es compatible con highlightjs de serie (es decir, figura como lenguaje compatible). En ese caso, continúa con la sección Configurar el track.
  2. El lenguaje es compatible mediante un plugin de highlightjs ya existente. En ese caso, continúa con la sección Usar un plugin existente.
  3. El lenguaje no es compatible. En este caso tienes tres opciones:
    1. Escribir un plugin de highlightjs desde cero, como se describe en la sección Crear un plugin nuevo.
    2. La sintaxis de tu lenguaje se parece (mucho) a la de otro lenguaje (por ejemplo, la sintaxis de Unison se parece a la de Haskell), en cuyo caso podrías plantearte usar el resaltado de sintaxis de ese lenguaje para el tuyo. Consulta la sección Configurar el track para más información.
    3. Prescindir del resaltado de sintaxis estático.

Configurar el track

Para habilitar la compatibilidad de highlightjs con el lenguaje de tu track, tendrás que modificar el archivo config.json del track. Dentro del archivo config.json, añade o asigna a la clave online_editor.highlightjs_language el identificador de lenguaje de highlightjs correspondiente (lo encontrarás en la documentación).

Ejemplo

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

Usar un plugin existente

Para usar un plugin existente, este tiene que estar publicado en NPM. Si el plugin no está publicado en NPM, puedes hacer lo siguiente:

  1. Preguntar al autor del plugin si quiere publicarlo en NPM.
  2. Hacer un fork del repositorio y publicarlo tú mismo.
  3. Pedirnos a nosotros (Exercism) que hagamos un fork del repositorio y que lo publiquemos nosotros. Para ello, abre un tema en el foro solicitándolo.

El siguiente paso es habilitar el plugin.

Habilitar el plugin

Para habilitar un plugin (que debe estar publicado en NPM), abre un tema en el foro pidiéndonos que añadamos compatibilidad con el plugin al sitio web. Nosotros (Exercism) crearemos entonces un Pull Request que añada el plugin al sitio web. Una vez fusionado el PR, podrás habilitar la compatibilidad con highlightjs siguiendo las instrucciones de la sección Configurar el track.

Crear un plugin nuevo

Si quieres crear un plugin, tienes dos opciones de alojamiento:

  1. Crear un repositorio en tu cuenta personal y publicarlo tú mismo.
  2. Pedirnos a nosotros (Exercism) que creemos un repositorio y que lo publiquemos nosotros. Para ello, abre un tema en el foro solicitándolo.

Cuando tengas el repositorio, sigue las instrucciones de contribución de lenguajes para implementar el plugin.

Después tendrás que publicar el plugin en NPM. El siguiente paso es habilitar el plugin.

Usar otro lenguaje

La sintaxis de tu lenguaje se parece (mucho) a la de otro lenguaje, en cuyo caso podrías plantearte usar el resaltado de sintaxis de ese lenguaje para el tuyo. Para ello, configura el track para que use el identificador de lenguaje de highlightjs del otro lenguaje. Consulta la sección Configurar el track para más información.