Подтвердить что ты не робот

Синтаксис, выделяющий коды кода уценки в Jekyll (без использования жидких меток)

Кажется, подсветка синтаксиса в Jekyll ограничена использованием жидких меток и таких же явлений:

{% highlight bash %}
cd ~
{% endhighlight %}

Но я импортировал свой существующий блог из Wordpress, и он был написан в методе уценки (с использованием блоков кода разметки), и я не хочу проходить через каждый пост и исправлять блоки кода. Кроме того, я хочу сохранить свои сообщения в чистом формате разметки, если мне когда-либо понадобится снова переключаться на платформы для ведения блога.

Я переключил свой парсер Jekyll на redcarpet с надеждой на то, что я могу использовать этот синтаксис уценки:

```bash
cd ~
```

Но это не работает. Он просто обертывает его в нормальный блок code. Любые идеи?

4b9b3361

Ответ 1

В итоге я переключился на kramdown, чтобы проанализировать разметку, которая поставляется с coderay для синтаксиса подсветка. Это имеет преимущество быть чистым рубиновым решением, которое работает на герою.

Ответ 3

Альтернативное решение

Markdown позволяет HTML, поэтому, если вы не возражаете добавить немного JS, вы можете сделать это:

## A section

Here is some Ruby code.

<pre>
  <code class="ruby">
    puts "hello"
  </code>
</pre>

Затем вы можете использовать Highlight.js (документация здесь), чтобы добавить подсветку на основе этого класса.

Это не идеальное решение, но оно должно работать с любым анализатором Markdown.

Ответ 4

Шаг 1. Установите Redcarpet.

gem install redcarpet

Шаг 2. Обновите настройки сборки в _config.yaml следующим образом.

# Build settings
#markdown: kramdown
markdown: redcarpet

Ответ 5

В последних блоках кода поддержки jekyll, но если вы используете более старую версию, вам нужно взломать.

Как насчет ниже? Попробуйте добавить ниже файл в качестве _plugin/triple-backtick.rb

module Jekyll
  class MarkdownConverter
    alias :old_convert :convert
    def convert(content)
      content.gsub!(/(?:^|\n)```(\w*)\n(.*\n)```\n/m) do |text|
        cls = $1.empty? ? "prettyprint" : "prettyprint lang-#{$1}"
        "<pre class=\"#{cls}\"><code>#{$2}</code></pre>"
      end
      old_convert(content)
    end
  end
end

Ответ 6

Redcarpet интегрирован в Jekyll по умолчанию, и подсветка кода будет функционировать должным образом.

Для старших блогах Джекила:

  • Установите драгоценный камень redcarpet:

    gem install redcarpet

  • Обновить _config.yaml

    markdown: redcarpet
    

Для справки и дополнительной информации см.:

Закрытая проблема Github

Обновлена ​​Jekyll Codebase

Ответ 7

Я описал 2 альтернативных решения для добавления правильно отформатированных фрагментов кода на сайт Jekyll. http://demisx.github.io/jekyll/2014/01/13/improve-code-highlighting-in-jekyll.html. Они не полагаются на плагины 3-го лица и совместимы со свободным хостингом на странице GitHub.

Ответ 8

Таким образом, я столкнулся с этой проблемой, и после того, как я ударил головой по множеству мест, наконец, с официальной поддержкой redcarpet2 в Jekyll, это довольно просто. Напишите это в _config.yml

# Conversion
markdown: redcarpet
highlighter: pygments
redcarpet:
  extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]

Удостоверьтесь, что у вас есть файл cсий pygments, и он включен. ЭТОТ ШАГ ВАЖНО.

Вы можете прочитать мое сообщение в блоге http://blog.championswimmer.in/2015/10/jekyllsyntax-highlighting-in-github-favoured-markdown-codeblocks/ для деталей.