내 코드가 렌더링 될 때 다른 색상으로 강조 표시되는 경우가 있습니다.
- 구문 강조 표시 란 무엇입니까?
- 어떻게 작동하나요?
- 왜 내 코드가 올바르게 강조 표시되지 않나요?
- 버그를 신고하거나 새 언어를 요청하려면 어떻게해야하나요?
- 구문 강조 표시는 어떻게 사용하나요?
- 현재 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에 어떤 언어가 사용됩니까?