2017-02-21 7 views
1

kramdown에서 일반적으로 텍스트를 약간의 비트에 추가하는 것은 쉽습니다. 여기에, 예를 들어, 인용구는 다음과 같습니다Kramdown의 표 행에 클래스 추가

> This is a blockquote. 
{:.example} 

HTML 출력 :

<blockquote class="example">This is a blockquote.</blockquote> 

이 기술은 여러 곳에서 작동하지만,이 테이블에 대해 작업 표시되지 않습니다. 테이블 행에 클래스를 설정하려고합니다. 내가 기대하는 트릭을 수행하려면 다음 즉

... 
|one|two|three|{:.example} 
... 

, 나는 다음과 같은 부분 출력 예상 :

<tr> 
    <td>one</td> 
    <td>two</td> 
    <td>three</td> 
    <td>{:.example}</td> 
</tr> 

I :

<tr class="example"> 
... 
</tr> 

내가 실제로 얻을 것은이입니다 HTML로 표를 작성할 수 있다는 것을 알고 있지만 kramdown의 가독성을 선호합니다. 내가 원하는 것을 kramdown에서 할 수 있습니까? 그렇지 않다면, HTML로 떨어 뜨리는 것보다 나은 해결책이 있습니까?

+0

"duplicate"는 다른 라이브러리 (Kramdown vs. Python-Markdown)에 대한 것이 아니지만 대부분 같은 결과입니다 : [Python markdown add to class to table] (http://stackoverflow.com/ a/21885984/866026) – Waylan

답변

1

이것은 현재 kramdown에서 가능하지 않습니다. #417#436 호를 참조하십시오. 순수한 kramdown에 머 무르려면 HTML을 사용해야합니다.

약간의 사후 후 처리를 원한다면 일부 정규 표현식을 사용할 수 있습니다. 예를 들어, 테이블에만 두 번째 행의 스타일을 원하는 경우

| foo | bar | baz | 
| xyzzy | plugh | thud | 

다음

$ kramdown file.md | perl -pe 's{tr}{++$n == 2 ? "tr class=\"waldo\"" : $&}ge' 

또는

$ kramdown file.md | tr '\n' '^' | sed 's/<tr/<tr class="waldo"/2' | tr '^' '\n' 

모두 생산 :

<table> 
    <tbody> 
    <tr> 
     <td>foo</td> 
     <td>bar</td> 
     <td>baz</td> 
    </tr> 
    <tr class="waldo"> 
     <td>xyzzy</td> 
     <td>plugh</td> 
     <td>thud</td> 
    </tr> 
    </tbody> 
</table> 

변경 2 어느쪽으로 든 좋아하는 번호. 그것은 kludge이지만, kramdown을 사용하고 HTML 테이블로 돌아 가지 않는 다른 솔루션에 대해서는 잘 알지 못합니다.