2016-11-25 10 views
1

Kramdown имеет это прохладное Содержание поколения сKramdown расширение

{: .toc} 

Это генерировать хороший TOC, например, в порядке список/unorder в HTML как:

<ul id="markdown-toc"> 
    <li></li> 
    ... 
</ul> 

Но когда-нибудь я хочу, чтобы контролировать больше на нем нравится использовать Bootstrap List Group или даже использовать <div> разметку, а затем <ul><li></li></ul>.

Есть ли способ унаследовать/переопределить этот модуль toc для создания собственной разметки?

Примечание: Я использовал страницы github с jekyll.

ответ

1

К сожалению, не — синтаксиса {: toc} не принимает какую-либо иную, чем через toc_levels модификации (что позволяет вашим указать глубину toc, см the options documentation для более подробной информации). По существу, вы можете указать whether you'd like the list to be unordered or ordered в зависимости от того, используете ли вы

* Table of contents 
{: toc} 

или

1. Table of contents 
{: toc} 

Вы также можете исключить заголовки, используя {: .no_toc} вариант (по крайней мере, если вы используете auto-ids, поскольку, как только заголовки с идентификаторы добавляются, если вы не используете эту опцию, вы можете просто не предоставить идентификатор):

# Header 
{: .no_toc} 

Все е Если вы используете CSS, Javascript или постобработку. Тем не менее, это часто относительно просто, так как вы можете обернуть весь toc в <div>, если хотите, или добавить какой-либо класс, который вы хотите, к <ul>/<ol>, прилагающему toc. Если у вас возникли проблемы с получением toc для генерации в пределах вашего div, убедитесь, что вы разрешаете block level parsing либо с parse_block_html глобально, либо markdown="block" опциями самого содержания. Например,

# Header 

<div markdown="block" id="xyzzy"> 
* TOC 
{: toc .class} 
</div> 

должны генерировать

<h1 id="header">Header</h1> 

<div id="xyzzy"> 
<ul class="class" id="markdown-toc"> 
    <li><a href="#header" id="markdown-toc-header">Header</a></li> 
</ul> 

</div>