2017-05-19 5 views

Répondre

0

Pour limiter kramdown la génération automatique d'ID d'en-tête jusqu'à h4, vous avez deux options:

Write ID propre dans les en-têtes supérieur à 4:

##### I have a custom id 
{: #my_custom_id} 

Désactiver la génération id auto pour les en-têtes:

##### I don't have id! 
{::options auto_ids="false" /} 
+0

Je vois, malheureusement, ces solutions ne correspondent pas à mes besoins. Espérons que les développeurs en mettent en place un meilleur un jour. – Cowboy

0

Il n'y a pas de fonctionnalité intégrée pour cette option, mais vous pouvez appliquer un patch de singe. La source de la méthode de conversion est ici: https://github.com/gettalong/kramdown/blob/master/lib/kramdown/converter/html.rb#L125

Alors vous pouvez faire quelque chose comme ceci:

module Kramdown 
    module Converter 
    class Html 
     def convert_header(el, indent) 
     attr = el.attr.dup 
     level = output_header_level(el.options[:level]) 
     if @options[:auto_ids] && !attr['id'] && (level <= 4) 
      attr['id'] = generate_id(el.options[:raw_text]) 
     end 
     @toc << [el.options[:level], attr['id'], el.children] if attr['id'] && in_toc?(el) 
     format_as_block_html("h#{level}", attr, inner(el, indent), indent) 
     end 
    end 
    end 
end 

L'ajout du && (level <= 4) fait se comporter comme vous le désirez.