[목차]
== 개요 ==
* [[https://asciidoc.org/|공식 사이트]]
[[마크다운]]은 HTML에 비해 쉽고 단순했지만, 시간이 지나면서 오히려 그 단순함이 제약이 되었다. 예를 들면 기본 마크다운에는 [[취소선]] 등의 흔히 알고 있는 문법이 사실 없다! 이는 [[https://docs.github.com/en/github/writing-on-github|Github-Flavored Markdown]]의 문법으로, 기존 마크다운의 부족함을 상쇄하기 위해 각종 문법을 추가한 다양한 구현체가 난립하게 되는 문제도 생겨났다. 이를 위해 아예 마크다운 만으로 조판이 가능할 정도로 다양한 문법들을 처음부터 미리 지원하자는 목적으로 만들어진 언어이다.
== 문법 ==
##(이 문서는 현재 미완성이며, 작성중입니다.)
=== 문단 제목 ===
{{{= 제목1 Level 0 (
)
== 제목2 Level 1 (
)
=== 제목3 Level 2 (
)
==== 제목4 Level 3 (
)
===== 제목5 Level 4 (
)
====== 제목6 Level 5 (
)
}}}이때 주의할 점이, ==...= 와 제목 글자 사이에는 한 칸 이상이 공백이 필요하며, 각 제목과 본문 사이에도 한 칸 이상의 빈줄이 필요하다.
==== 문서 제목 ====
Level 0의 문단을 도큐먼트 헤더라고 하며, (doctype man을 제외하면) 전체 문서에 단 하나만 존재해야 한다.
이 헤더의 제목을 Document title이라고 하며,
{{{= Title
}}}처럼 표시한다.
또한 :로 부제목을 넣을 수 있다.
{{{= 나무위키: 여러분이 가꾸어 나가는 지식의 나무
}}}또한 바로 아래에 저작자/문서 작성자를 표기할 수 있다.
{{{= Harry Potter
J. K. Rowling
}}}Author line에는 <> 사이에 이메일을 표기할 수 있다.
{{{= Some Title
John Doe }}}Author line바로 아래에 리비전을 표시할 수 있다.
{{{= Document Title
some author
v3.0}}}:description: 등의 attribute로 메타데이터를 추가할 수 있다.
{{{= Asciidoc: the human-readable plain text authoring format
John Doe
2.1, January 20, 2021: some remark
:description: description about this Document
:keywords: markup, docbook, asciidoctor, HTML}}}
==== 문단 번호 ====
:sectnums: 속성으로 문단에 자동으로 번호를 표시하도록 만들 수 있다.
{{{= Main Title
:sectnums:
== some section
== another section
=== nested section
==== more nested section
===== max level is up to 3}}}다음은 아래처럼 렌더링된다(구현마다 다를 수 있다){{{Main Title
1. some section
2. another section
2.1 nested section
2.1.1 more nested section
max level is up to 3}}}
=== 문단 ===
asciidoc은 마크다운이나 html처럼 강제 개행을 인식하지 않고 모든 공백을 하나의 스페이스로 처리한다. 을 강제 적용하기 위해선 +를 사용할 수 있다.{{{Accusantium id laborum eos ut harum ratione +
Corporis quibusdam reprehenderit suscipit Eum atque delectus +
Expedita et aut recusandae quisquam Ut cumque quo.}}}이때, +와 문장의 마지막 글자 사이에는 하나 이상의 공백이 필요하다.
==== 정렬 ====
asciidoc은 텍스트를 정렬하기 위한 명령을 내장하고 있다. 사용 가능한 정렬의 종류는 text-left, text-center, text-right, text-justify가 존재한다. 예를 들어 다음은{{{Accusantium id laborum eos ut harum ratione
[.text-center]
Corporis quibusdam reprehenderit suscipit Eum atque delectus
Expedita et aut recusandae quisquam Ut cumque quo.}}}중간 문장만 가운데로 정렬한다.
=== 목록 ===
==== 순서 없는 목록 ====
마크다운처럼 *로 목록을 구분할 수 있다.{{{* 목록 하나
* 목록 두울
* 목록 세엣}}}중첩된 목록을 만들려면, 중첩된 깊이만큼 *를 써주면 된다.{{{* 첫번째 목록입니다
** 중첩된 목록입니다.
*** 세번 중첩되었어요
** 다시 빠져나옵니다
* 첫번째 목록과 같은 깊이의 목록입니다.}}}이는 다음의 마크다운과 동일하다.{{{#!syntax markdown
* 첫번째 목록입니다
* 중첩된 목록입니다.
* 세번 중첩되었어요
* 다시 빠져나옵니다
* 첫번째 목록과 같은 깊이의 목록입니다.}}}마크다운처럼 -도 구분자로 사용할 수 있지만, -는 깊이가 1인 목록에만 사용할 수 있다.
===== 체크리스트 =====
순서 없는 목록은 [ ]와 \[x]로 체크리스트를 만들 수 있다.{{{* [ ] 체크된 목록
* [x] 체크되지 않은 항목}}}이 코드는 다음과 같이 렌더링된다.{{{❏ 체크된 목록
✓ 체크되지 않은 항목}}}[* HTML이라면 등으로 나오는 것이 일반적이나, 구현마다 다를 수 있다.]
==== 순서 있는 목록 ====
마크다운처럼{{{1. first item
2. another item
3. last item}}}처럼 적을 수 있지만, HTML등으로 변환하면
태그가 대체해버려 상관이 없어지는 등 번거럽게 숫자를 입력하게 될 수도 있다. 또한 숫자로 길이가 달라지면 멀티커서 등으로 모든 항목을 일괄적으로 편집하기도 어려워진다. 이를 위해 아스키독에서는 숫자를 생략하고 .을 사용할 수 있다.{{{. first item
. another item
. last item}}}순서 없는 목록과 마찬가지로 목록을 중첩할 수 있다.{{{. 설치
.. 설치 요구사항
.. 플랫폼별 설치 가이드
. 작동 확인하기}}}이 코드는 다음과 같이 렌더링된다.{{{1. 설치
a. 설치 요구사항
b. 플랫폼별 설치 가이드
2. 작동 확인하기}}}중첩된 리스트에서 숫자를 사용하가 위해선 \[arabic]을 사용할 수 있다.{{{. 설치
[arabic]
.. 설치 요구사항
.. 플랫폼별 설치 가이드
. 작동 확인하기}}}이 코드는 다음과 같이 렌더링된다.{{{1. 설치
1. 설치 요구사항
2. 플랫폼별 설치 가이드
2. 작동 확인하기}}}
==== 기타 목록 문법 ====
===== 목록 캡션 =====
.<이름>으로 목록에 제목을 줄 수 있다.{{{.my recipe
* sandwich
* bibimbap
* spaghetti}}}
===== 다른 종류의 목록 중첩 =====
asciidoc에서는 다른 종류의 구분자가 나타나면 즉시 목록을 중첩한다. 즉 다음 코드는{{{* unordered list item1
* unordered list item2
. ordered list item1
.. nested ordered list item1
* unordered list item3}}}다음과 같다.{{{unordered list item1
unordered list item2
1. ordered list item1
a. nested ordered list item1
unordered list item3}}}
===== 목록 분리 =====
일반적인 경우엔, 전혀 다른 목록이 시작된다 하더라도 위의 목록에 중첩되어 나타난다. 즉 다음 코드는{{{. 어떤 목록1
. 어떤 목록2
* 위의 목록과
* 아무 상관없는 목록}}}다음으로 인식된다.{{{1. 어떤 목록1
2. 어떤 목록2
위의 목록과
아무 상관없는 목록}}}이를 위해 빈 속성 []를 사용해 목록을 구분할 수 있다. 즉 다음 코드는{{{. 어떤 목록1
. 어떤 목록2
[]
* 위의 목록과
* 아무 상관없는 목록}}}다음으로 인식된다.{{{1. 어떤 목록1
2. 어떤 목록2
위의 목록과
아무 상관없는 목록}}}또는 캡션이 있다면 다른 목록으로 인식된다. 즉 다음 코드는{{{. 어떤 목록1
. 어떤 목록2
.새로운 목록
* 위의 목록과
* 아무 상관없는 목록}}}다음으로 인식된다.{{{1. 어떤 목록1
2. 어떤 목록2
(새로운 목록) // html이라면
등의 태그로 변환될 것이다
위의 목록과
아무 상관없는 목록}}}
== 관련 문서 ==
* [[HTML]]
* [[위키#s-4|위키#문법]]
* [[나무마크]]
* [[BBCode]]
* [[타이포라]]
* [[마크다운]]
[[분류:마크업 언어]]