You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何阻止Jekyll将---转为<hr />以兼容remark.js幻灯片?

我给你整理了几个实用的方案,能解决Jekyll把remark.js幻灯片的---转成<hr />的问题:

  • 局部禁用Jekyll对幻灯片内容的处理
    Jekyll本身支持用Liquid的{% raw %}{% endraw %}标签来“保护”一段内容,让Jekyll跳过对这部分的预处理和Markdown转换。你可以把整个幻灯片的MD内容都套在这对标签里,这样里面的---就完全不会被Jekyll改动,完美适配remark.js的幻灯片分隔需求。示例如下:

    {% raw %}
    # 我的第一张幻灯片
    ---
    # 我的第二张幻灯片
    ---
    # 我的第三张幻灯片
    {% endraw %}
    

    这个方法简单直接,适合你的幻灯片内容里不需要Jekyll处理动态内容(比如Liquid变量、模板片段)的场景。

  • 转义幻灯片分隔符---
    如果你不想完全禁用Jekyll处理,比如幻灯片里还有需要Jekyll渲染的站点变量或组件,那可以给每个幻灯片分隔符的短横线加上反斜杠,写成\---。Jekyll的Markdown解析器会把\---渲染成普通的---,不会转成水平线,同时remark.js依然能识别这个分隔符来切换幻灯片。示例:

    # 我的第一张幻灯片
    \---
    # 我的第二张幻灯片
    \---
    # 我的第三张幻灯片
    

    这个方法灵活性高,只需要修改分隔符部分,不影响其他内容的Jekyll处理。

  • 修改Jekyll全局配置,禁用水平线转换
    如果你有多个remark.js幻灯片文件,不想逐个修改内容,可以通过调整Jekyll的全局配置来解决。
    Jekyll默认用kramdown作为Markdown解析器,你可以在站点根目录的_config.yml里添加以下配置,直接禁用水平线的自动转换:

    kramdown:
      horizontal_rule:
        enable: false
    

    要是你切换到redcarpet解析器(需要确认站点支持),可以这样配置:

    markdown: redcarpet
    redcarpet:
      extensions: ["no_horizontal_rule"]
    

    这个方法一劳永逸,但要注意:如果你的站点其他页面本来需要用---来生成水平线,这个配置会影响那些页面的渲染,所以要根据实际情况选择。

内容的提问来源于stack exchange,提问作者tcs

火山引擎 最新活动