Ruby redcarpet 未正确解释 Markdown

Posted

技术标签:

【中文标题】Ruby redcarpet 未正确解释 Markdown【英文标题】:Markdown not interpreted by Ruby redcarpet correctly 【发布时间】:2015-09-23 08:13:24 【问题描述】:

我的slate 项目有以下降价:

---
title: API Reference
language_tabs:
  - http
  - javascript
search: true
---
# Getting Started
## Logout
# Call Management
## Call States
```javascript


```
## Call Notification
## Caller ID Called Number
## Call Information During Call

我使用middleman 为网站提供服务:bundle exec middleman server。但是,最后一个小节标题未被正确解释为 h2 标记(屏幕截图)。如果我通过rake build 构建它,结果是一样的。

不过,如果我把这个标记放在其他解释器上,比如http://stackedit.io,那就没问题了。

所以我怀疑我的降价解释器 (Ruby redcarpet) 不知何故坏了。我没有在控制台上收到任何警告/错误消息。我尝试了不同版本的红地毯。解释的 html 也是错误的,尽管错误是不同的。我想 Ruby 和 Redcarpet 的某种组合会成功吗?

这是我的config.rb

# Markdown
set :markdown_engine, :redcarpet
set :markdown,
fenced_code_blocks: true,
smartypants: true,
disable_indented_code_blocks: true,
prettify: true,
tables: true,
with_toc_data: true,
no_intra_emphasis: true

谁能说出可能的原因是什么?或者如何恢复?

【问题讨论】:

你使用的是什么操作系统? 我无法在我的计算机上使用相同的 Gemfile 重现此问题。您是否以某种方式更改了slate 引擎?通常代码 sn-ps 在另一列中显示为slate 你的 markdown 对我来说编译得很好。我只需要评论therubyracer gem,因为它给我带来了一些悬而未决的问题(并安装nodejs 包)。 @AlexeyShein 我在 Win7 x64 上。我很确定 markdown 语法是正确的,因为其他解释器运行良好。我只是想得到一些提示,至少,关于可能的原因在哪里?日志文件,或重新安装哪个 gem,等等。 【参考方案1】:

更新到 RedCarpet 的最新版本 (3.3.3) 解决了我的问题。


更新 1

好吧,它仍然存在问题:我什至无法更改 Markdown 文件中的单个字母。否则,生成的 HTML 标记会再次出错……


更新 2

终于解决了。将RedCarpet 切换为kramdown 即可解决。

我的config.rb

# set :markdown_engine, :redcarpet
set :markdown_engine, :kramdown
set :markdown,
    fenced_code_blocks: true,
    smartypants: true,
    disable_indented_code_blocks: true,
    prettify: true,
    tables: true,
    with_toc_data: true,
    no_intra_emphasis: true

【讨论】:

以上是关于Ruby redcarpet 未正确解释 Markdown的主要内容,如果未能解决你的问题,请参考以下文章

:footnotes 扩展在 Redcarpet Ruby gem 中不起作用

Rails & Redcarpet:在 ApplicationHelper 中使用时未初始化的常量 Redcarpet::Render

是否可以将 Redcarpet 扩展为从链接自动嵌入 youtube 视频?

使用 Redcarpet 和 Pygments.rb 在我的 Rails 4.0.4 应用程序中突出显示代码语法?

Ruby - Binance API:签名未正确签名

红毯 2.0.1