06sourcecode.adoc 3.71 KB
Newer Older
heywon.choi's avatar
heywon.choi committed
1 2 3 4 5 6
= 소스 코드
Heywon Choi <heywon.choi@bankwareglobal.com>

[abstract]
.문서개요
--
heywon.choi's avatar
heywon.choi committed
7
이 문서는 AsciiDoc 에서 {doctitle} 를 표현하는 방법에 대해 설명합니다.
heywon.choi's avatar
heywon.choi committed
8 9 10 11 12
--

== Source Code
문서에서 소스 코드를 표현하기 위해서는 [source,언어명]와 소스 블록(----)을 사용하고 결과물은 다음과 같다.

heywon.choi's avatar
heywon.choi committed
13 14
[NOTE]
====
heywon.choi's avatar
heywon.choi committed
15
AsciiDoc에서 특수하게 사용되는 문자가 포함된 경우 xref:./06sourcecode.adoc#text_print["텍스트 그대로 출력"]을 참고한다.
heywon.choi's avatar
heywon.choi committed
16 17
====

heywon.choi's avatar
heywon.choi committed
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
=== 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
----
====
****
heywon.choi's avatar
heywon.choi committed
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152

[#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.
....
****
. 출력에서 텍스트에 굵은 텍스트 서식이 적용되지 않는다.
. 세 개의 연속된 마침표가 줄임표 유니코드 문자로 대체되지 않는다.