소스 코드
이 문서는 AsciiDoc 에서 소스 코드를 표현하는 방법에 대해 설명합니다.
1. Source Code
문서에서 소스 코드를 표현하기 위해서는 [source,언어명]와 소스 블록(----)을 사용하고 결과물은 다음과 같다.
|
2. Stack Trace
문서에서 Stack Trace를 표현하기 위해서는 [%collapsible]와 블록(====)을 사용하고 결과물은 다음과 같다.
2.1. AsciiDoc 소스
Stack Trace를 작성하는 AsciiDoc 소스 다음과 같다.
.Show stacktrace [%collapsible] ==== [source] ---- Error: Content repository not found (url: https://git.example.org/repo.git) at transformGitCloneError at git.clone.then.then.catch Caused by: HttpError: HTTP Error: 401 HTTP Basic: Access Denied at GitCredentialManagerStore.rejected at fill.then ---- ====
3. 텍스트 그대로 출력
입력한 대로 출력 텍스트를 표시한다.
-
인라인 패스 매크로: 인라인일 경우 사용한다.
-
리터럴 블록: 블록으로 지정할 때 사용한다.
-
블록 내 패스 매크로: 블록 내 패스 매크로 사용 방법
-
subs 속성: 블록(및 특정 인라인 요소)에 적용되는 대체 규칙
3.1. 인라인 패스 매크로 (pass:[ ])
인라인 텍스트의 서식이 지정되지 않도록 하는 특수 구문이다.
3.3. AsciiDoc 소스
Stack Trace를 작성하는 AsciiDoc 소스 다음과 같다.
-
출력에서 텍스트에 굵은 텍스트 서식이 적용되지 않는다.
-
세 개의 연속된 마침표가 줄임표 유니코드 문자로 대체되지 않는다.
3.4. 블록 내 패스 매크로
리터럴(….) 및 소스 블록(----) 내에서 pass를 사용하는 경우 pass가 매크로 대체라는 사실을 잊기 쉽다. pass를 활성화하려면 "subs 속성"에 macros값을 할당한다.
3.4.1. AsciiDoc 소스
블록에서 Inline pass를 작성하는 AsciiDoc 소스 다음과 같다.
[source,java,subs="+quotes,+macros"] ---- protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() **.antMatchers("/resources/pass:[**]").permitAll()** .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll(); ----
3.5. subs 속성
블록(및 특정 인라인 요소)에 적용되는 대체 규칙은 subs 요소 속성을 사용하여 변경하거나 수정할 수 있다.
3.5.1. 종류
다음은 그 대체 단계 및 그룹이다.
none |
모든 대체를 비활성화하는 대체 그룹. |
normal |
콜아웃을 제외한 모든 대체 유형을 수행하는 대체 그룹. |
specialchars |
<, > 및 &를 해당 엔티티로 대체하는 대체 단계. 소스 블록의 경우, 이 대체 단계는 구문 강조 표시를 활성화한다. |
callouts |
리터럴, 목록 및 소스 블록에서 콜아웃을 처리하는 대체 단계. |
quotes |
인라인 텍스트 서식을 적용하는 대체 단계. |
attributes |
속성 참조를 대체하는 대체 단계. |
macros |
인라인 및 블록 매크로를 처리하는 대체 단계. |
post_replacements |
줄 바꿈 문자(+)를 처리하는 대체 단계. |
|
3.5.2. 블록에 subs 속성 설정
소스 블록에서 인라인 서식 마크업을 처리하고 싶은 경우
기본적으로 소스 블록(----))은 특수 문자와 콜아웃만 적용된다. 이 동작은 블록의 속성 목록에서 subs 속성을 설정하여 변경할 수 있다.
AsciiDoc 소스
subs 속성을 작성하는 AsciiDoc 소스 다음과 같다.
// 기본 소스 블록 [source,java] ---- System.out.println("Hello *<name>*") ---- // subs 속성 설정 [source,java,subs="+quotes"] ---- System.out.println("Hello *<name>*") ----
결과
subs 속성을 사용하는 경우 본문 형태는 다음과 같다.