Подсветка синтаксиса с помощью coderay, asciidoctor не работает

У меня есть асцидоценовая уценка примерно так, как описано здесь http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/

:source-highlighter: coderay
:coderay-css: class
:stylesheet: coderay_railscasts.css.scss

[source,ruby]
.app.rb
----
require 'sinatra'

get '/hi' do
  "Hello World!"
end
----

Но мой вывод в браузере вообще не подсвечивается. Классы также не были применены.

Мой вывод инструментов веб-разработчика выглядит так: Как видите, к тексту не применяются классы, которые должны быть, согласно документации

<div class="listingblock">

    <div class="title"></div>
    <div class="content">
        <pre class="highlight">
            <code class="language-ruby" data-lang="ruby">

                require 'sinatra'

                get '/hi' do
                  "Hello World!"
                end

            </code>
        </pre>
    </div>

</div>

Таким образом, кажется, что ему не удалось применить классы, которые могут не взаимодействовать с кодовым массивом или не могут найти правильные настройки и т. Д.

Я видел этот FAQ по asciidoctor http://asciidoctor.org/docs/faq/ объясняющий, как вам нужно настроить некоторые параметры, но я его применяю при генерации html-документов из уценки asciidoctor, а не того, что я делаю - что сохранение текста уценки в базе данных и его анализ при получении. Этот часто задаваемый вопрос также предполагает файловую структуру и структуру, которые не являются рельсами. Так что, похоже, это не относится к моему делу.

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

Эта проблема, кажется, точное поведение, которое я получаю. https://github.com/asciidoctor/asciidoctor/issues/947

1 ответ

Решение

Звонок должен быть либо

== Asciidoctor.convert(@article.content, safe: 'safe')

или же

== Asciidoctor.render(@article.content, safe: 'safe')

Затем вы увидите стили, размеченные в вашем блоке кода.

Если это не работает, также измените

[source,ruby]

в

[source,ruby,role="my_css_class"]

Конкретное значение атрибута роли html, похоже, не имеет большого значения.

Другие вопросы по тегам