Techioz Blog

マークダウンが Ruby レッドカーペットによって正しく解釈されない

概要

私のスレートプロジェクトには次のようなマークダウンがあります。

---
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

そして、サイトにサービスを提供するために仲介者を使用します。bundle exec middleman サーバーです。ただし、最後のサブセクションのタイトルは 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

考えられる原因が何であるか誰か教えていただけますか?それともどうやって回復するのですか?



## 解決策
RedCarpet の最新バージョン (3.3.3) に更新すると、問題が解決しました。

まあ、それでも問題はあります。Markdown ファイル内の 1 文字も変更できません。そうしないと、生成された HTML マークアップが再び失敗します...

ついに解決しました。 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

```