HTML 표 처리
개요
Quarto 1.3에서는 표 처리 방식에 몇 가지 변경을 적용했습니다. 최근 Pandoc 버전은 HTML 표를 Pandoc의 네이티브 데이터 구조(행/열 병합 등 포함)로 파싱하는 지원을 추가했으며, Quarto는 이를 활용해 더 많은 형식에서 올바르게 서식이 지정된 표를 만들기 쉽게 했습니다.
HTML 표가 이제 모든 형식에서 처리됨
구체적으로 Quarto는 이제 html 형식의 RawBlock 노드에 있는 HTML 표를 파싱하여 출력 형식과 무관하게(비-HTML 형식 포함) 마크다운 표로 변환하려고 시도합니다. 그 결과 문서에서 HTML 표 문법을 사용할 수 있고, 모든 형식에서 마크다운 표로 올바르게 변환됩니다. 또한 HTML 형식으로 계산 표를 출력하는 라이브러리도 다른 출력 형식에서 동작할 수 있습니다. 추가로 Lua 필터가 HTML 형식으로 지정된 표의 내용을 조작할 수 있게 됩니다.
라이브러리 작성자라면 출력에 HTML 표를 생성하는 것을 고려해 주시기 바랍니다. 이렇게 하면 사용자가 모든 형식에서 Quarto의 표 처리 기능을 최대한 활용할 수 있습니다.
다만 HTML 표 처리 방식이 라이브러리의 처리와 충돌할 수도 있습니다. 그런 경우에는 다음 데이터 속성을 표에 추가하여 Quarto의 HTML 표 처리를 비활성화할 수 있습니다:
<table data-quarto-disable-processing="true">
...
</table>
Bootstrap 클래스를 표에 추가 가능
표 캡션 옆에 속성으로 지정된 Bootstrap 표 클래스가 이제 <table> 요소에 삽입됩니다. 허용되는 클래스는 표 전체에 적용되는 클래스이며, 다음과 같습니다: "primary", "secondary", "success", "danger", "warning", "info", "light", "dark", "striped", "hover", "active", "bordered", "borderless", "sm", "responsive", "responsive-sm", "responsive-md", "responsive-lg", "responsive-xl", "responsive-xxl". 예를 들어 다음 마크다운 표는 줄무늬가 적용되고, 행에 마우스를 올리면 강조 표시됩니다:
| fruit | price |
|--------|--------|
| apple | 2.05 |
| pear | 1.37 |
| orange | 3.09 |
: Fruit prices {.striped .hover}
임베디드 마크다운 콘텐츠 지정 가능
또한 Quarto는 이제 표 안에 임베디드 마크다운 콘텐츠를 지정할 수 있습니다. 이는 임베디드 span 또는 div 노드에 qmd 또는 qmd-base64 데이터 속성을 제공함으로써 가능합니다. 이러한 노드는 표의 머리글, 바닥글, 셀, 캡션 등 콘텐츠가 허용되는 어디든 위치할 수 있습니다. 예를 들어 다음 표를 살펴보세요:
<table>
<caption><span data-qmd="As described in @Lovelace1864, computers are great."></span></caption>
<thead>
<tr>
<th><span data-qmd="_Header 1_"></span></th>
<th><span data-qmd="_Header 2_"></span></th>
</tr>
</thead>
<tbody>
<tr>
<td><span data-qmd=""></span></td>
<td>Regular output</td>
</tr>
</tbody>
</table>
data-qmd 속성을 가진 span 노드는 임베디드 마크다운 콘텐츠로 처리됩니다. 이를 통해 인용, 비디오 등 임의의 마크다운 콘텐츠를 표에 삽입할 수 있습니다. 한 가지 유의할 점은 data-qmd의 내용이 올바르게 이스케이프되어야 한다는 것입니다. 표 출력을 생성하는 라이브러리 작성자는 data-qmd-base64 속성 사용을 고려하세요. 이는 디코딩된 뒤 Quarto가 처리합니다.
제한 사항
Quarto는 다음의 처리를 지원하지 않습니다:
- 중첩된
<table>요소 - 유효하지 않은 HTML 표. 생성한 HTML이 유효성 검사를 통과하는지 확인하세요.