콘텐츠로 이동

Markdown

Hollo는 표와 ~~취소선~~을 포함한 Markdown 게시물을 지원합니다. 인스턴스 운영자는 MARKDOWN_EXTENSIONS로 문법을 추가할 수 있습니다. 확장은 로컬 게시물의 생성과 명시적 수정에 적용됩니다. 프로필 소개와 필드는 기존 Markdown 문법을 유지합니다.

.env에 사용할 확장을 설정한 뒤 Hollo를 재시작하세요.

터미널 창
MARKDOWN_EXTENSIONS=footnote,ruby,math

사용 가능한 이름은 footnote, deflist, sub, sup, mark, ruby, ins, abbr, tasklist, math입니다. 미설정 또는 빈 값이면 모두 꺼집니다. 이름 앞뒤 공백과 중복은 무시하며, 모르는 이름이 있으면 시작에 실패합니다.

설정을 바꿔도 저장된 원문과 HTML은 바뀌지 않으며 기존 게시물의 갱신을 전송하지 않습니다. 명시적으로 수정하면 현재 설정으로 다시 렌더링합니다. 확장을 끈 뒤 예전 게시물을 수정하면 원래 문법이 그대로 드러날 수 있습니다.

확장 원문 의미
footnote 본문[^1]과 [^1]: 각주 번호가 있는 각주
deflist 용어 다음 줄에 : 정의 정의 목록
sub H~2~O 아래 첨자
sup x^2^ 위 첨자
mark ==하이라이트== 강조 표시한 구절
ruby {漢字:한자} 루비 독음 주석
ins ++추가된 내용++ 삽입한 내용
abbr *[HTML]: Hyper Text Markup Language 약어 정의
tasklist - [x] 완료와 - [ ] 미완료 정적인 작업 상태
math $x^2$와 $$x^2$$ 인라인 수식과 별도 수식

해당 확장을 켠 상태에서 다음과 같이 작성할 수 있습니다.

어떤 주장[^1]. HTML 문서에는 요소가 있습니다.
[^1]: 뒷받침하는 설명.
용어
: 정의
*[HTML]: Hyper Text Markup Language
- [x] 작성
- [ ] 검토

각주는 실제 번호와 원본 게시물을 가리키는 절대 링크를 포함합니다. 정의 목록은 용어와 설명을 구분하는 문장 부호를 포함합니다. 루비에는 태그가 제거될 때를 위한 괄호가 있으며, Gukhanmun은 명시적 루비에 독음을 중첩해서 붙이지 않고 보존합니다.

약어는 대소문자와 단어 경계를 구분합니다. HTML5, html, HTML은은 HTML에 일치하지 않습니다. 일반 텍스트에서 처음 일치하는 약어에는 “HTML (Hyper Text Markup Language)”처럼 풀이가 보이게 붙습니다. 링크 글자, URL, 멘션, 해시태그, 코드, 수식은 제외합니다. 중복 정의는 첫 정의를 쓰며, 풀이는 일반 텍스트입니다.

작업 상태는 클릭할 수 있는 체크박스가 아니라 실제 [x] 또는 [ ] 글자로 남습니다. [X]도 완료 상태로 인식합니다. 표시 뒤에는 공백이나 줄 끝이 와야 합니다. 상태는 게시물을 수정해서 바꿉니다. - [x]: note 같은 줄은 작업 대신 Markdown 링크 정의가 될 수 있습니다.

문법 자체를 쓰려면 코드 구간을 쓰거나 구분자 앞에 역슬래시를 붙이세요. sup나 sub를 켜면 이모티콘이나 범위의 짝지어진 캐럿·물결표가 서식으로 바뀔 수 있습니다. \^_\^, 1\~2,3\~4처럼 쓰면 표기를 보존합니다. 첨자 안의 공백은 x^a\ b^처럼 이스케이프해야 합니다. 기존 ~~취소선~~ 문법도 계속 사용할 수 있습니다.

footnote를 켜면 ^[note]는 인라인 각주이며, sup를 켜면 ^[note]^는 위 첨자입니다. 수신 소프트웨어에서 첨자가 평문으로 바뀔 수 있으므로 중요한 지수는 “x의 a+b제곱”처럼 일반 텍스트로도 설명하세요.

인라인 $...$는 줄을 넘을 수 없습니다. 여는 $ 뒤와 닫는 $ 앞에는 공백이 올 수 없으며, 닫는 $ 바로 뒤에는 숫자가 올 수 없습니다. 따라서 $5와 $20 and $30은 일반 통화 표기로 남습니다. 달러 기호 자체는 \$로 이스케이프하거나 코드 구간에 쓰세요.

별도 수식은 줄 처음의 $$로 시작하며, 앞에 들여쓰기가 있어도 됩니다. 닫는 $$ 뒤의 같은 줄에는 공백만 올 수 있습니다. $$x^2$$처럼 한 줄로 쓸 수도 있지만, 문장 중간의 별도 수식은 지원하지 않습니다.

인라인 수식은 $x^2$입니다.
$$
\frac{a}{b}
$$

수식은 FEP-dc88에 설명된 접근에 따라 MathML과 TeX 주석을 사용합니다. 잘못된 수식이나 안전하지 않은 명령, 렌더링 상한에 걸린 수식은 이스케이프한 원문으로 표시합니다. 수식마다 매크로 상태가 독립적이며, 전개와 크기를 제한합니다.

상한은 수식당 UTF-16 코드 단위 8,192개, 게시물당 수식 64개, 수식당 출력 256 KiB, 수식 출력 합계 1 MiB입니다. 게시물 원문이 UTF-16 코드 단위 65,536개를 넘으면 수식 해석만 꺼집니다. 일반 Markdown과 멘션·해시태그·링크 처리는 계속합니다. 이때 달러 구분자 안의 텍스트도 보호된 수식이 아니라 일반 Markdown 규칙으로 해석합니다.

수신 서버와 클라이언트는 서식을 제거할 수 있습니다. 아래·위 첨자, 하이라이트, 삽입 표시, 약어 툴팁이 사라질 수 있으므로 중요한 정정과 정의는 실제 본문에도 쓰세요. Mastodon과 Misskey의 루비 지원은 내용과 수신 버전에 따라 달라집니다.

Mastodon은 수식 주석을 달러로 감싼 TeX 텍스트로 표시할 수 있으며, 이는 수식 조판을 보장하지 않습니다. Misskey에서는 수식 표시 텍스트와 TeX 주석이 이어 붙을 수 있습니다. 서버와 클라이언트마다 표시가 다를 수 있습니다. 수식이 핵심 의미를 전달한다면 일반 언어로 된 설명도 함께 쓰세요.

실제 서버 간 수락 테스트에서 Mastodon 4.7.3과 Misskey 2026.10.0 모두 열 가지 예시를 수신했습니다. Mastodon은 수정을 반영했지만, Misskey 2026.10.0은 Note 갱신을 무시하고 최초 내용을 유지했습니다. 수신한 HTML/MFM과 손실 내역을 기록해 두었습니다. 브라우저·클라이언트·접근성 검증은 아직 완료하지 않았습니다.