내 코드가 렌더링 될 때 다른 색상으로 강조 표시되는 경우가 있습니다.
- 구문 강조 표시 란 무엇입니까?
- 어떻게 작동하나요?
- 왜 내 코드가 올바르게 강조 표시되지 않나요?
- 버그를 신고하거나 새 언어를 요청하려면 어떻게해야하나요?
- 구문 강조 표시는 어떻게 사용하나요?
- 현재 Stack Exchange에서 사용할 수있는 언어는 무엇인가요?
댓글
답변
무엇을 구문 강조는 무엇입니까?
구문 강조 기능을 사용하면 게시물의 코드가 작성된 언어에 따라 강조 표시되어 더 쉽게 읽을 수 있습니다.
어떻게 작동합니까?
Stack Exchange에는 자체 구문 강조 엔진이 없습니다. highlight.js 이며 해당 라이브러리의 최신 릴리스를 사용하지 않을 수도 있습니다. 따라서 구문 강조 표시와 관련된 버그 및 기능 요청은 Stack Exchange에서 처리 할 수 없습니다.
5 초 동안 입력을 중지하자마자 게시물을 만들거나 수정할 때 미리보기에 태그 를 기반으로 구문 강조가 할당됩니다.
“내 코드가 올바르게 강조 표시되지 않는 이유는 무엇입니까?
1. 사용중인 사이트에 구문 강조 표시가 활성화되어 있는지 확인합니다.
전체 목록은 Meta에서 사용할 수 있습니다 . 구문 강조가 활성화되어 있지 않은 경우 사이트는이 질문의 안내를 따릅니다.
2. highlight.js에서 지원하는 언어인지 확인합니다.
를 참조하세요. Highlight.js 지원 언어 목록 . 해당 언어가 목록에없는 경우 Highlight.js 프로젝트 내에서 생성해야 Stack Exchange에서 배포 할 수 있습니다.
언어가 이미 목록에 있지만 Stack Exchange에서 사용되지 않습니다. 여기에서 Meta에서 기능 요청을 제출하여 네트워크에 배포하세요.
3. 해당 언어가 Stack Exchange에서 사용되는지 확인하세요.
dev CDN에서 highlight-loader.js 파일을보고 좋아하는 편집기에서 열고 언어 힌트를 검색합니다. 예를 들면 다음과 같습니다. " dart "를 검색하면 hljs.registerLanguage("dart", ...
로 구성된 줄. 이는 lang-dart
가 사용 가능한 언어 힌트임을 의미합니다. " psh " 또는 " powershell "는 어떤 결과도 반환하지 않습니다. 즉, Highlight.js의 Stack Exchange 버전에서 psh를 지원하지 않습니다.
4. 질문의 태그에 구문 강조 표시가 활성화되어 있는지 확인합니다.
배후에서 Stack Exchanges는 질문의 태그 를 사용하여 사용중인 언어를 결정합니다. 각 태그에는 속성에 지정된 강조 표시 언어가 있습니다. 강조 표시 언어가 지정된 태그가 두 개 이상이거나 태그에 하나도 지정되지 않은 경우 기본값을 사용하고 highlight.js가 사용하기에 가장 좋은 언어를 추론 할 수 있도록합니다. 질문에 사용 된 강조 표시 언어도 답변에 사용됩니다.
해당 태그를 방문하십시오. wiki 페이지. 태그 (예 : " javascript ")를 선택한 다음 " 자세히 알아보기 … " 및 해당 태그에 현재 사용중인 언어 힌트 (있는 경우)는 에 표시됩니다. Wiki의 버튼 아래 맨 아래 :
태그에 강조 표시 언어가 지정되지 않은 경우 사이트 별 메타에 대한 기능 요청 을 통해 사이트를 요청할 수 있습니다. (관리자 만 태그의 강조 표시 언어를 변경할 수 있습니다.)
버그를 신고하거나 새 언어를 요청하려면 어떻게해야하나요?
구문 하이 라이터 자체의 버그 인 경우 기존 보고서를 확인하세요. 먼저 이미보고되었는지 확인하십시오. 그렇지 않은 경우 계속해서보고하십시오. 이미 highlight.js에 의해 구현되었지만 여기에서 작동하지 않는 버그 수정 및 기능의 경우, 새 버전의 highlight.js가 예정에 따라 사이트에 배포되므로 잠시 기다려주십시오. 최신 버전이 아직 배포되지 않았습니다. (오랜 시간이 지나도 배포되지 않은 경우 Meta에서 기능 요청을 제기하여 새 버전의 highlight.js 배포를 요청할 수 있습니다.)
Stack Exchange 이 구문 하이 라이터를 유지하지 않습니다 (최신 버전 설치 제외). 여기에 메타에 버그 보고서 나 기능 요청을 게시해도 수정되거나 구현되지 않습니다.
무엇이든, 올바른 강조 표시가 켜져 있는지 확인 하십시오.
구문 강조 표시는 어떻게 사용하나요?
모든 조건이 위의 내 코드가 올바르게 강조 표시되지 않는 이유는 무엇입니까? 섹션에서 질문의 태그를 기반으로 코드 블록에서 강조 표시가 자동으로 시작됩니다 ( 4. 질문의 태그에는 작동 방식에 대해 위의 구문 강조 표시가 활성화되어 있습니다 .) 인라인 코드 (예 : this
)는 강조 표시되지 않습니다.
명시 적으로 재정의 합니다. 이는 코드 서식 지정의 코드 펜스 (```
) 방법을 사용할 때만 지원됩니다. CommonMark 구현 부터는 4 칸 들여 쓰기 방법을 사용하는 코드 블록에서 더 이상 지원되지 않습니다 * :
```lang-or-tag-here code goes here ```
언어 코드 또는 태그 이름 a을 사용할 수 있습니다. > 언어 힌트에서 구문 강조를 활성화합니다. highlight.js 지원 언어 코드의 전체 목록은 아래를 참조하세요.
예 :
Here is a code block with language code (with "lang-" prefix) as a hint: ```lang-js function greet(person) { return "Hello " + person; } var user = "John Doe"; alert(greet(user)); ``` Here is a code block with tag name (no "lang-" prefix) as a hint: ```typescript var arr = [0, 1, 2]; // will highlight if typescript tag exists ```
원하지 않는 경우 구문 강조를 사용하려면 lang-none
언어를 사용할 수 있습니다.
```lang-none [code here] ```
언어 힌트를 적용 할 수도 있습니다. 게시물의 모든 코드 블록에 추가 할 수 있으므로 게시물의 상단 에 HTML 주석을 추가하여 각 코드 앞에 힌트를 추가 할 필요가 없습니다. 그러면 힌트가 네 공백 들여 쓰기 또는 HTML <pre><code>
를 사용하는 코드 블록을 포함하여 게시물 내의 모든 코드 블록에 적용됩니다.
<!-- language-all: lang-or-tag-here -->
질문에 사용될 때 답변의 강조 표시 언어를 재정의하지 않습니다 . 질문의 태그에 따라 기본적으로 강조 표시됩니다.
현재 Stack Exchange에서 사용할 수있는 언어 코드
이것은 모든 식별자의 전체 목록입니다. 구문 강조 표시를 위해 언어 힌트에서 사용할 수 있습니다. 각 그룹의 모든 언어 힌트는 동일한 형광펜을 가리 킵니다. highlight.js에서 설정 한 다른 언어 별칭도 작동 할 수 있지만 다음 식별자 만 Stack Exchange에서 공식적으로 지원됩니다.
- 기본값 : 코드 해석 및 추측
lang-default
- 없음 : 구문 강조를 명시 적으로 사용하지 마십시오.
lang-none
,lang-plaintext
,lang-text
,lang-txt
- 배시
lang-bash
,lang-sh
,lang-zsh
- C, C ++ 및 기타 C-likes
lang-c
,lang-h
,lang-cpp
,lang-hpp
,lang-c++
,lang-h++
,lang-cc
,lang-hh
,lang-cxx
,lang-hxx
,lang-c-like
- C #
lang-cs
,lang-csharp
,lang-c#
- 클로저
lang-clojure
,lang-clj
- CoffeeScript
lang-coffee
,lang-coffeescript
,lang-cson
,lang-iced
- CSS
lang-css
- 다트
lang-dart
- Erlang
lang-erl
,lang-erlang
- 이동
lang-go
,lang-golang
- Haskell
lang-hs
,lang-haskell
- HTML, XML, XSL 등.
lang-html
,lang-xml
,lang-xsl
,lang-xhtml
,lang-rss
,lang-atom
,lang-xjb
,lang-xsd
,lang-plist
,lang-wsf
,lang-svg
- HTTP 헤더
lang-http
,lang-https
- Ini 및 TOML
lang-ini
,lang-toml
- 자바
lang-java
,lang-jsp
- 자바 스크립트
lang-js
,lang-javascript
,lang-jsx
,lang-mjs
,lang-cjs
- JSON
lang-json
- Kotlin
lang-kotlin
,lang-kt
- LaTeX, TeX
lang-latex
,lang-tex
- 낮음
lang-less
- Lisp
lang-lisp
- 루아
lang-lua
- Makefile
lang-makefile
,lang-mk
,lang-mak
- 마크 다운
lang-markdown
,lang-md
,lang-mkdown
,lang-mkd
- MATLAB
lang-matlab
- 목표 -C
lang-objectivec
,lang-mm
,lang-objc
,lang-obj-c
- OCaml
lang-ocaml
,lang-ml
- 파스칼, 델파이
lang-pascal
,lang-delphi
,lang-dpr
,lang-dfm
,lang-pas
,lang-freepascal
,lang-lazarus
,lang-lpr
,lang-lfm
- Perl
lang-pl
,lang-perl
,lang-pm
- PHP
lang-php
,lang-php3
,lang-php4
,lang-php5
,lang-php6
,lang-php7
- PHP 템플릿
lang-php-template
- 프로토콜 버퍼
lang-protobuf
- Python
lang-py
,lang-python
,lang-gyp
,lang-ipython
- R
lang-r
- 루비
lang-rb
,lang-ruby
,lang-gemspec
,lang-podspec
,lang-thor
,lang-irb
- 녹
lang-rs
,lang-rust
- 스칼라
lang-scala
- 계획
lang-scheme
- SCSS
lang-scss
- 쉘
lang-shell
,lang-console
- SQL
lang-sql
- 스위프트
lang-swift
- TypeScript
lang-typescript
,lang-ts
- VHDL
lang-vhdl
- VB.NET
lang-vbnet
,lang-vb
- YAML
lang-yaml
,lang-yml
하이라이트 .js에서 인식하지 못하는 게시물에 사용 된 모든 언어 식별자는 기능적으로 기본적으로 lang-default
로 설정됩니다.
힌팅 : 태그
사이트에 존재하는 모든 태그 를 지정할 수 있으며 현재 해당 태그와 연결된 모든 언어 코드 ( null (힌트 없음), 기본값 또는 특정 언어 코드).
기본적으로 모두 태그는 언어 코드로 none
로 시작합니다. 언어 코드로 none
가 지정된 태그는 무시되고 로 되돌아갑니다. div id = “f85ddb0eaf”>
.
none
키워드를 사용하여 구문 강조 표시를 수동으로 지정하지 않을 수도 있습니다. lang-none
코드 위.
* 강조 표시 언어를 지정하는 이전 방법은 여전히 HTML 코드 블록에 사용할 수 있습니다. HTML 주석을 배치하십시오. <!-- language: lang-or-tag-here -->
<pre><code>
태그 앞에 있으면 작동합니다.
또한 이전 이 메소드는 들여 쓰기가 4 칸인 코드 블록에 대해 완전히 제거되지는 않았지만 단지 사용되지 않을뿐입니다. 4 칸 들여 쓰기 코드 블록에서는 당분간 작동하지만 향후 제거 될 수도 있습니다.
편집자 참고 사항 :
추가하지 마십시오. 당신이 100 % sur e 존재합니다.
입력 한 내용이 강조 표시된 것처럼 보여 있기 때문입니다. 정확하게 은 식별자가 실제로 시스템에 존재한다는 것을 의미하지 않습니다 . 잘못된 식별자는 기본값 으로 되돌아갑니다.
또한 highlight.js의 문서 는 highlight.js 의 Stack Exchange 버전에서 실제로 지원되지 않을 수 있습니다. Stack Exchange에 배포 할 수없는 별도의 모듈입니다.
이러한 점 때문에 메타 질문에 링크하십시오. 목록에 새 힌트를 추가 할 때 편집 요약에 힌트가 있는지 확인합니다.
댓글 작성자 참고 사항 :
이 FAQ에 대한 의견은 FAQ에서 이해할 수없는 사항에 대한 설명을 요청하여 수정할 수 있도록하는 것입니다. 향후 특정 언어가 지원되는지 묻지 마십시오. . 이는 Stack Exchange가이 형광펜을 유지하지 않기 때문에 답변 할 수있는 질문이 아닙니다 . 언어 지원은 highlight.js 를 방문하세요.
댓글
- '이 답변에 표시된 환경 설정 (규칙이 아님)이 있어야합니다. 언어 코드 또는 태그 이름 (일부 한정자 포함)을 사용하는 경우 예 : " Z가 아니라면 Y보다 X를 사용하는 것이 좋습니다. " (MSO에 대한 약간의 관련 질문 (댓글에서 ) : ' 구문 강조 표시와 관련하여 두 코드 서식 스타일 (코드 펜스 대 들여 쓰기 된 블록) 간의 차이점은 무엇입니까? ? )
- 현재 해당 태그와 관련된 모든 언어 코드를 사용합니다. 이러한 매핑의 공식 목록이 어디서나 사용할 수 있습니까?
- 섹션 4, " 4. 질문의 태그에 구문 강조 표시가 활성화되어 있고 " , @JoshGoebel
- @Josh 직접 질문으로 , 저는 ' 현재 관련 언어가있는 모든 태그를 포함하는 목록 이 없다고 생각합니다. 또한 ' SEDE를 사용하여이 정보에 액세스 할 수있는 것처럼 보이지 않으며 ' 태그 테이블에 없습니다.
을 찾을 수있는 모든 정보가 있는지 확인하십시오.
https://github.com/highlightjs/
프로젝트의 표준 색상을 사용합니까 아니면 SE 사이트가 자체 색상 세트를 사용합니까? 색상과 색상 톤을 변경할 수 있나요?Language Categories
=All
및Themes
=Stackoverflow Light
는이 테마가 정확히 사용 된 것과 동일합니다. SE 사이트에서?lang-default
에 어떤 언어가 사용됩니까?