Org 문법

2020년 7월 3일 수정

이 글은 Org Mode의 마크업 문법 중 개인적으로 사용하는 것들을 정리한다.

헤더

헤더에는 제목을 비롯하여 문서의 여러 프로퍼티를 정의할 수 있다.

#+TITLE: Title Text
문서의 제목이다. 거의 필수라고 생각하자.
#+DESCRIPTION: Description Text
문서의 핵심을 정리하는 내용이다. 익스포트 시 Meta 태그의 description 항목으로도 출력 된다.
#+KEYWORDS: foo, bar, ...
문서의 핵심 단어를 정리한다. 익스포트 시 Meta 태그의 keywords 항목으로 출력 된다.
#+OPTIONS: ...
문서의 다양한 옵션을 줄 수 있다. 예를 들어 toc:2 라는 옵션을 주게 될 경우 익스포트 시 목차(Table of Contents)를 2레벨 헤드라인 까지 정리한다.
#+FILETAGS: :foo:bar:
현재 파일에 foo와 bar라는 태그를 정의한다.
#+DATE: 2020-04-20
작성된 날짜와 시각을 기입할 수 있다.

제목줄(Headline)

제목줄은 아래와 같이 여러 레벨로 쓸 수 있다.

  • * Heading 1
  • ** Heading 2
  • *** Heading 3

제한은 없으므로 더 깊은 레벨도 쓸 수 있지만 적당히 쓰는 편이 간결한 문서를 만드는 데 중요한 것 같다.

링크(Link)

링크는 보통 아래처럼 쓴다.

[[URL]]
단순한 하이퍼 링크
[[URL][Name]]
특정 이름으로 표시되는 하이퍼 링크

당연하지만 링크는 HTML로 익스포트 시 알아서 A 태그로 하이퍼링크가 걸린다.

로컬 링크나 org 파일 링크를 직접 거는 경우라면 file 형식을 붙여주자.

[[file:somefile.org]]
특정 파일로 링크 걸기
[[file:foobar.org][Foo Bar]]
특정 파일 링크를 특정 이름으로 표시하기

이 경우 HTML로 익스포트 시 자동으로 .html 파일 등으로 알아서 링크가 걸린다.

텍스트 스타일(Text Styles)

아래와 같은 기본 스타일들이 있다.

*bold*  /italics/  _underline_  ~verbatim~  =code=  +strike-through+

물론 렌더링되면 bold italics underline verbatim code strike-through 로 표시된다.

verbatim과 code가 동일해 보이는데 사실 동일하다. 이 문법은 짧은 코드를 표시하기에 딱 적당하다.

블록 문법들

블록은 렌더링할 경우 blockquote나 pre 태그로 묶이게 렌더링 되는 문법으로 한 줄 이상의 넓은 범위를 지정할 수도 있다.

#+BEGIN_SRC 내용 #+END_SRC
기본적인 코드 블록이다. 별다른 프로세서가 없어서 그냥 pre 태그로 익스포트된다.
#+BEGIN_SRC python Python 코드의 pre 블록 #+END_SRC
메이저모드를 명시해서 문법 강조와 실행 지원을 얻을 수 있다. 지원되는 언어는 매우 많다. 예를 들어 c, python, swift, lisp, bash 등등…
#+BEGIN_QUOTE blockquote 내용 #+END_QUOTE
익스포트 시 인용 블록(blockquote)으로 출력된다.
#+BEGIN_COMMENT comment 내용 #+END_COMMENT
프로그래밍 언어의 주석과 비슷하게 이 블럭 안의 내용은 익스포트가 되지 않는다.
#+BEGIN_EXPORT html HTML 코드 #+END_EXPORT
이 블록 안의 내용은 HTML로 출력 시 아무런 변화 없이 그대로 출력된다. 따라서 간단한 Org Mode 문법에서 지원되지 않는 것을 표현하기 위해 HTML 태그를 적기에 적당하다.

테이블

아래와 같은 식으로 헤더를 쓰고

| Foo | Bar | Column |

그 아래에 |- 을 쓰고 TAB 키를 누르면 아래처럼 테이블 형태로 바뀐다.

| Foo | Bar | Column |
|-----+-----+--------+

이후 엔터나 탭키를 누르는 상황에 맞게 자동으로 테이블이 만들어 진다.

이 테이블은 잘 활용하면 스프레드쉬트를 흉내낼 수도 있다. Org 테이블 스프레드시트를 참고하자.

기타

-----
줄 긋기(hr 태그로 익스포트)