코드 또는 사전 포맷된 텍스트 게시

:bookmark: 이 가이드에서는 Markdown, BBCode, HTML 형식을 사용하여 Discourse에서 코드나 미리 형식화된 텍스트를 게시하는 방법을 설명합니다.

:person_raising_hand: 필요한 사용자 수준: 모든 사용자

공유해야 할 코드 한 줄이 있나요? 아니면 사이트의 오류 로그를 공유해야 할 수도 있습니다. 형식이 지정되지 않은 코드를 읽는 것은 특히 코드가 공백에 의존하거나 Discourse가 변환하는 특수 문자를 포함하고 있는 경우 어려울 수 있습니다.

요약

이 가이드에서 다음을 배웁니다:

  • 인라인 코드 형식 지정 방법.
  • 코드 전체 줄 형식 지정 방법.
  • 코드 블록 형식 지정 방법.
  • 코드 형식 지정을 위한 BBCode 및 HTML 사용 방법.
  • 자동 코드 스타일링 비활성화 방법.

인라인 코드 형식 지정

텍스트의 특정 섹션을 형식 지정하려면 코드 양쪽에 단일 백틱(`)을 사용하십시오. 이는 일반 텍스트 내에서 또는 코드가 단독으로 한 줄을 차지할 때 수행할 수 있습니다. 인라인 형식은 자동 코드 형식 지정(아래 참조)을 적용하지 않으며, 백틱 사이의 텍스트에만 "코드 스타일"을 적용합니다.

예제 1:

입력:

`This is a line of code`

결과:

This is a line of code

예제 2:

입력:

Here’s some text with `a bit of code` inside!

결과:

Here’s some text with a bit of code inside!

전체 줄 코드 형식 지정

전체 줄을 형식 지정하려면 줄의 시작 부분에 4개의 공백을 추가하십시오. 다음 줄바꿈까지의 모든 텍스트가 코드로 처리됩니다.

예제:

입력:

    All text after 4 spaces will be formatted.

결과:

All text after 4 spaces will be formatted.

블록 코드 형식 지정

여러 줄의 코드를 생성하기 위해 4공백 방법을 사용할 수는 있지만, 이는 특히 복사 및 붙여넣기를 수행하고 여러 줄의 텍스트에 4개의 공백을 입력해야 하는 경우 번거로울 수 있습니다.

대신, 코드 위와 아래에 단독으로 한 줄에 3개의 백틱(```)을 사용하십시오. 백틱이 있는 줄에 공백이 없도록 하십시오. 그렇지 않으면 작동하지 않습니다.

예제:

입력:

``` 
public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("I can format code now!");
    }
}
```

결과:

public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("I can format code now!");
    }
}

BBCode 및 HTML

Markdown 외에도 Discourse는 BBCode와 HTML의 하위 집합을 지원합니다.

HTML의 경우 <pre><code> 태그를 사용하십시오:

<pre><code>
public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("I can format code now!");
    }
}
</code></pre>

BBCode의 경우 [code] 태그를 사용하십시오:

[code]
public class CodeFormatting {
    public static void main(String[] args) {
        System.out.println("I can format code now!");
    }
[/code]

프로그래밍 언어 지정

기본적으로 Discourse는 코드의 언어를 감지하고 이에 따라 스타일을 적용합니다.

코드 블록의 프로그래밍 언어를 수동으로 지정하려면 첫 번째 백틱 세트 바로 뒤에 언어 이름을 입력하십시오:

``` your_language
# Your code here

예제

Ruby를 지정하려면:

입력:

``` ruby
3.times do |stuff|
    stuff.do
end
```

결과:

3.times do |stuff|
    stuff.do
end

언어는 사이트의 구문 하이라이팅에 구성된 highlighted languages 중 하나여야 합니다. 기본 목록은 config/site_settings.yml에서 highlighted_languages를 검색하여 찾을 수 있습니다.

default code lang 사이트 설정을 사용하여 기본 코드 언어를 설정할 수도 있습니다.

하이라이팅 억제

구문 하이라이팅을 완전히 방지하려면 언어로 text를 사용할 수 있습니다:

예제

입력:

``` text
Your text to NOT highlight here

결과:

Your text to NOT highlight here

모범 사례

  • 명확성을 위해 인라인 코드가 항상 단일 백틱으로 감싸지도록 하십시오.
  • 더 큰 코드 스니펫을 공유할 때는 블록 코드 형식 지정을 사용하십시오.
  • 언어별 스타일링에서 이점을 얻지 못하는 텍스트나 로그를 공유할 때는 자동 코드 스타일링을 피하십시오.
  • 자동 감지가 코드를 올바르게 인식하지 못하는 경우 언어를 지정하십시오.

추가 자료

15개의 좋아요

A fixed, and safer, link for the default list of enabled languages for syntax highlighting is https://github.com/discourse/discourse/blob/c4de8565eceeadda8f2a800226a02d0c40752ae6/config/site_settings.yml#L1086-L1087

3개의 게시글이 새 주제(코드 블록이 포함된 주제를 게시할 수 없음)으로 분리되었습니다.