Redcarpet не генерирует огороженный кодовый блок с Jekyll
Во-первых, я довольно новичок в Jekyll (и размещаю сообщения в Stackru), но пока мне это удалось. В какой-то момент я заставил Джекилла выводить выделенные фрагменты кода внутри огороженного блочного кода. Через некоторое время я вернулся к работе над вещами и заметил, что форматирование вернулось к этому, без номеров строк и <a>
теги:
<code class="ruby language-ruby" data-lang="ruby">
<span class="k">def</span>
<span class="nf">print_hi</span><span class="p">(</span><span class="nb">name</span><span class="p">)</span>
<span class="nb">puts</span>
<span class="s2">"Hi, </span><span class="si">#{</span><span class="nb">name</span><span class="si">}</span><span class="s2">"</span>
<span class="k">end</span>
<span class="n">print_hi</span>
<span class="p">(</span><span class="s1">'Tom'</span><span class="p">)</span>
<span class="c1">#=> prints 'Hi, Tom' to STDOUT.</span>
</code>
Выше код получен из:
```ruby
def print_hi(name)
puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.
```
Мой _config.yml:
name: Your New Jekyll Site
markdown: redcarpet
pygments: true
permalinks: pretty.
Одна ключевая вещь, которую я заметил, состояла в том, что когда я бегу rvm use system
в терминале он обслуживает jekyll с ruby 1.8.7 и дает мне знать в terminak (что, я полагаю, было бы проблемой. В качестве альтернативы, когда я использую ruby 2.0.0-p247, он просто обслуживает его, но не говорит мне, какой версия, с которой он обслуживается.
Выдернуть мои волосы над этим!
1 ответ
Еще несколько ночных часов, и я обыграл ту же проблему (по крайней мере, она похожа на упомянутую вами).
В любом случае, для меня это произошло из-за более новой установленной версии Python, чем (согласно этому источнику), поддерживаемой скриптом 'Pygments', который отвечает за обработку этих блоков.
Самая новая версия (на данный момент) была 3.3. После игры и экспериментов, переустановка 2.7.5 версии Python обратно решила проблему.
Я пользователь Windows (я полагаю, это не большая разница для Linux в текущей ситуации), и я использовал сервер jekyll локально.
Кроме того... не уверен, какой именно подход вы используете (я пытался также установить Jekyll на бесплатном хостинге Heroku dyno, как это упоминалось здесь), поэтому испытывал ту же проблему там (то есть, те же результаты), но после некоторых исследований обнаружил, что эти парни предоставляют Python 2.7.4 с использованием по умолчанию, и мне пришлось явно указать следующее в файле конфигурации _config.yml Jekyll:
markdown: redcarpet
pygments: true
для Пигментов вещь для работы.
(даже думал, что они говорят, что в последней версии Jekyll (по состоянию на 1.1) по умолчанию используется redcarpet... во всяком случае, это может быть связано с некоторыми глубокими отношениями между всеми настройками ruby /python/jekyll - я просто позволил ему уйти, он он).