Jekyll 将kramdown头ID的自动生成限制在<;h4>;

Jekyll 将kramdown头ID的自动生成限制在<;h4>;,jekyll,github-pages,kramdown,Jekyll,Github Pages,Kramdown,是否可以将kramdown头ID的自动生成限制为,即 文档中的更多信息:要将kramdown头ID的自动生成限制为h4,您有两个选项: 在大于4的标题中写入您自己的id: ##### I have a custom id {: #my_custom_id} 禁用这些标题的自动id生成: ##### I don't have id! {::options auto_ids="false" /} 该选项没有内置功能,但您可以使用monkey补丁。转换方法的来源如下: 所以你可以这样做: modu

是否可以将kramdown头ID的自动生成限制为,即


文档中的更多信息:

要将kramdown头ID的自动生成限制为
h4
,您有两个选项:

在大于4的标题中写入您自己的id:

##### I have a custom id
{: #my_custom_id}
禁用这些标题的自动id生成:

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

该选项没有内置功能,但您可以使用monkey补丁。转换方法的来源如下:

所以你可以这样做:

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
Kramdown模块
模块转换器
类Html
def convert_标题(el,缩进)
attr=el.attr.dup
级别=输出\标题\级别(标高选项[:级别])

如果@options[:auto_id]&&!attr['id']&(level)这是在自动生成的toc中有高达h4的头?不,与toc无关。这是关于自动生成的IDS的,不幸的是,这些解决方案不适合我的需要。希望有一天开发人员实现得更好。