= 소스 코드 Heywon Choi <heywon.choi@bankwareglobal.com> [abstract] .문서개요 -- 이 문서는 AsciiDoc 에서 {doctitle} 를 표현하는 방법에 대해 설명합니다. -- == Source Code 문서에서 소스 코드를 표현하기 위해서는 [source,언어명]와 소스 블록(----)을 사용하고 결과물은 다음과 같다. [NOTE] ==== AsciiDoc에서 특수하게 사용되는 문자가 포함된 경우 xref:06sourcecode.adoc#text_print["텍스트 그대로 출력"]을 참고한다. ==== === AsciiDoc 소스 소스 코드를 작성하는 AsciiDoc 소스는 다음과 같다. .... [source,c] ---- #include <stdio.h> int main() { printf("Hello, World!"); return 0; } ---- .... === 결과 소스 코드를 사용하는 경우 본문 형태는 다음과 같다. **** [source,c] ---- #include <stdio.h> int main() { printf("Hello, World!"); return 0; } ---- **** == Stack Trace 문서에서 Stack Trace를 표현하기 위해서는 [%collapsible]와 블록(====)을 사용하고 결과물은 다음과 같다. === 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 ---- ==== .... === 결과 Stack Trace를 사용하는 경우 본문 형태는 다음과 같다. **** .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 ---- ==== **** [#text_print] == 텍스트 그대로 출력 입력한 대로 출력 텍스트를 표시한다. * 인라인 패스 매크로: 인라인일 경우 사용한다. * 리터럴 블록: 블록으로 지정할 때 사용한다. === 인라인 패스 매크로 (pass:[pass:[ ]]) 인라인 텍스트의 서식이 지정되지 않도록 하는 특수 구문이다. ==== AsciiDoc 소스 Inline pass를 작성하는 AsciiDoc 소스 다음과 같다. .... [source,java] ---- protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() **.antMatchers("/resources/pass:[**]").permitAll()** .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll(); ---- .... ==== 결과 Inline pass를 사용하는 경우 본문 형태는 다음과 같다. **** [source,java] ---- protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() **.antMatchers("/resources/pass:[**]").permitAll()** .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll(); ---- **** === 리터럴 블록 (pass:[....]) 리터럴 블록은 소스에서 보는 그대로 작성한 텍스트를 표시한다. ==== AsciiDoc 소스 Literal Block을 작성하는 AsciiDoc 소스 다음과 같다. ---- .... Kismet: Where is the *defensive operations manual*? Computer: Calculating ... Can not locate object. .... ---- ==== 결과 Literal Block을 사용하는 경우 본문 형태는 다음과 같다. **** .... Kismet: Where is the *defensive operations manual*? Computer: Calculating ... Can not locate object. .... **** . 출력에서 텍스트에 굵은 텍스트 서식이 적용되지 않는다. . 세 개의 연속된 마침표가 줄임표 유니코드 문자로 대체되지 않는다.