Jekyll中自定义HTML元素内Markdown无法被kramdown解析如何解决?
解决方案
你可以通过修改Jekyll的全局配置,把自定义HTML元素加入kramdown的识别列表来解决这个问题,无需嵌套额外的标准HTML标签:
- 编辑站点根目录下的
_config.yml,添加kramdown相关配置,把你的自定义元素加入块级元素白名单:
kramdown: # 在此处添加所有你用到的自定义块级元素 block_elements: - my-element1 - my-element2 # 如果是自定义行内元素,添加到下方配置即可 # span_elements: # - my-inline-element
- 配置完成后重启Jekyll服务,之后直接在自定义元素上添加
markdown="1"属性,内部的Markdown内容就可以被正常解析:
<!-- 自定义元素内部Markdown可正常解析 --> <my-element1 markdown="1"> This is *markdown* with a bit of `code`. </my-element1>
- 可选优化:如果你不想每次都手动添加
markdown="1"属性,可以在上述kramdown配置中额外添加parse_block_html: true,开启后kramdown会默认解析所有已识别块级元素内部的Markdown内容:
kramdown: block_elements: - my-element1 - my-element2 parse_block_html: true
注意:开启
parse_block_html后所有标准块级HTML元素内部的Markdown都会被默认解析,如果有部分元素不需要解析内部内容,需要给对应元素添加markdown="0"属性手动关闭。
内容的提问来源于stack exchange,提问作者user13156775
相关产品推荐
相关产品推荐

