Обратные кавычки Kramdown не распознаются в режиме GFM

Я пытаюсь получить несколько очень простых страниц для правильного рендеринга с помощью Jekyll, используя kramdown для обработки уценки и румян для выделения синтаксиса. Однако Kramdown, похоже, не интерпретирует тройные обратные кавычки даже в режиме GFM.

Я считаю, что следовал инструкциям в письме, и все работает нормально, когда их помещают на страницы github, но моя локальная настройка просто игнорирует обратные кавычки.

Если это поможет, то это наблюдалось в OS X с Jekyll 3.1.1. Командная строка, используемая для вызова jekyll, - jekyll serve --config "_config.yml".

Я сузил проблему до следующего минимального теста:

_config.yml

markdown: kramdown
highlighter: rouge

kramdown:
  input: GFM

index.md

---
layout: default
---

```scala
def test(i: Int): Unit = {
  println(i)
}

```

layout / default.html

<!doctype html>
<html>
  <body>{{ content }}</body>
</html>

Результат index.html

<!doctype html>
<html>
  <body><p>```scala
def test(i: Int): Unit = {
  println(i)
}</p>

<p>```</p>
</body>
</html>

person Nicolas Rinaudo    schedule 11.02.2016    source источник
comment
Мне удалось это воспроизвести. Похоже, что в Jekyll 3.1.1 есть ошибка, из-за которой не соблюдается input параметр конфигурации, поэтому GFM не используется. Однако Jekyll 3.0.3 работает (поэтому ответ ниже работает; использование Gemfile с гемом github-pages закрепляет версию Джекилла до 3.0.3).   -  person matt    schedule 11.02.2016
comment
Что объясняет его. Зная это, я удалил все и сбросил установку из github-pages зависимостей, и все работает нормально. Спасибо!   -  person Nicolas Rinaudo    schedule 11.02.2016
comment
Я изучал это, и похоже, что это действительно исправлено в мастере Jekyll; см. github.com/jekyll/jekyll/issues/4427 и github.com/jekyll/jekyll/commit/, поэтому в следующем выпуске будет работать. Поскольку вы используете страницы Github, вам, вероятно, лучше придерживаться того решения, которое у вас есть.   -  person matt    schedule 12.02.2016


Ответы (1)


Предлагаю вам поступить так. Я протестировал ваш кодовый блок со следующей конфигурацией, и он работал нормально:

config.yml :

highlighter: rouge
markdown: kramdown
kramdown:
  input: GFM

Затем в ваш файл index.md:

```scala
def test(i: Int): Unit = {
   println(i)
 }
```

Примечание. Я заметил, что перед ```scala был пробел, и его не должно быть.

Затем запустите jekyll serve с упаковщиком:

Откройте свой терминал и:

  1. Установить сборщик: gem install bundler

  2. Обновите все свои драгоценные камни (если хотите): bundle update

  3. Добавьте Gemfile (не добавляйте никаких расширений файлов) к своему сайту root и вставьте в него приведенный ниже код. Это рекомендуемый метод для страниц GitHub.

    source 'https://rubygems.org'
    
    gem 'github-pages'
    
  4. Перейдите в корневую папку вашего проекта (на терминале) и запустите: bundle install (это позволит убедиться, что у вас установлены все необходимые драгоценные камни и их зависимости локально). Gemfile.lock будет сгенерирован для вас в корне вашего сайта. Оставь это там.

  5. Запустите bundle exec jekyll serve --watch, чтобы просмотреть свой сайт локально на http://localhost:4000

Выполнено!

Сообщите мне, работает ли это для вас, да?

person Virtua Creative    schedule 11.02.2016
comment
Это сработало отлично, спасибо вам большое! Поскольку мой сайт создается динамически, мне все еще нужно решить, как сделать то, что вы только что предложили, но в масштабе всей системы, но ваш ответ - именно то, что мне нужно. Спасибо! - person Nicolas Rinaudo; 11.02.2016
comment
Большой! Рад, что помог! :) если вам что-то еще нужно, мы здесь, чтобы помочь! ;) - person Virtua Creative; 11.02.2016
comment
Это не работает для встроенного кода с одним обратным апострофом, например. foo - person nietras; 25.05.2020