정적 구문 강조


정적 구문 강조는 사용자가 바꿀 수 없는 코드에 적용하는 강조예요. 여기에는 코드 조각, 이터레이션 등이 포함돼요.

Note

온라인 에디터는 정적 구문 강조를 사용하지 않아요. 사용자가 코드를 그 자리에서 바꿀 수 있기 때문이에요. 온라인 에디터에서 구문 강조를 어떻게 처리하는지 더 알고 싶다면 동적 구문 강조 문서를 확인해 봐요.

구현

정적 구문 강조는 highlightjs 라이브러리를 사용해요.

언어 지원을 추가할 때는 세 가지 방법이 있어요:

  1. highlightjs가 그 언어를 기본으로 지원하는 경우(즉, 지원 언어 목록에 있는 경우)예요. 그렇다면 트랙 설정 섹션으로 넘어가요.
  2. 기존 highlightjs 플러그인을 통해 지원되는 경우예요. 그렇다면 기존 플러그인 사용 섹션으로 넘어가요.
  3. 지원되지 않는 경우예요. 여기에는 세 가지 선택지가 있어요:
    1. 새 플러그인 만들기 섹션에서 설명하는 대로 highlightjs 플러그인을 처음부터 작성해요.
    2. 사용하는 언어의 문법이 다른 언어의 문법과 (거의) 비슷한 경우(예: Unison의 문법은 Haskell과 비슷해요), 그 언어의 구문 강조를 사용하는 것을 고려할 수 있어요. 자세한 내용은 트랙 설정 섹션을 봐요.
    3. 정적 구문 강조를 사용하지 않아요.

트랙 설정

트랙의 언어에 highlightjs 지원을 사용하도록 설정하려면 트랙의 config.json 파일을 수정해야 해요. config.json 파일 안에서 online_editor.highlightjs_language 키를 적절한 highlightjs 언어 식별자(문서에서 확인할 수 있어요)로 추가하거나 설정해요.

예시

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

기존 플러그인 사용

기존 플러그인을 사용하려면 그 플러그인이 NPM에 게시되어 있어야 해요. 플러그인이 NPM에 게시되어 있지 않다면 다음 중 하나를 할 수 있어요:

  1. 플러그인 작성자에게 NPM에 게시할 의향이 있는지 물어봐요.
  2. 저장소를 포크해서 직접 게시해요.
  3. 저희(Exercism)가 저장소를 포크해서 저희가 게시해요. 그러려면 포럼에 글을 올려 요청해요.

다음 단계는 플러그인 활성화예요.

플러그인 활성화

플러그인(NPM에 게시되어 있어야 해요)을 활성화하려면 포럼에 글을 올려 웹사이트에 그 플러그인 지원을 추가해 달라고 요청해요. 그러면 저희(Exercism)가 플러그인을 웹사이트에 추가하는 Pull Request를 만들어요. PR이 병합되면 트랙 설정 섹션의 안내에 따라 highlightjs 지원을 활성화할 수 있어요.

새 플러그인 만들기

플러그인을 만들고 싶다면 호스팅 방법이 두 가지 있어요:

  1. 개인 계정에 저장소를 만들고 직접 게시해요.
  2. 저희(Exercism)가 저장소를 만들고 저희가 게시해요. 그러려면 포럼에 글을 올려 요청해요.

저장소가 준비되면 언어 기여 안내를 따라 플러그인을 구현해요.

그다음 플러그인을 NPM에 게시해야 해요. 다음 단계는 플러그인 활성화예요.

다른 언어 사용

사용하는 언어의 문법이 다른 언어의 문법과 (거의) 비슷하다면, 그 언어의 구문 강조를 사용하는 것을 고려할 수 있어요. 그러려면 트랙이 다른 언어의 highlightjs 언어 식별자를 사용하도록 설정해요. 자세한 내용은 트랙 설정 섹션을 봐요.