语法高亮显示与coderay,asciidoctor无法正常工作

时间:2014-10-27 14:08:17

标签: ruby-on-rails syntax-highlighting coderay asciidoctor

我有像这样的asciidoctor markdown,如http://asciidoctor.org/docs/asciidoc-syntax-quick-reference/#source-code

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

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

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

但我在浏览器中的输出根本没有突出显示。 这些课程也没有应用。

我的Web开发人员工具输出如下所示: 如您所见,根据文档

,没有应用于文本的类
<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>

所以它似乎无法应用类,这些类可能无法与代码服务通信,或者无法找到正确的设置等。

我已经看到这个asciidoctor常见问题http://asciidoctor.org/docs/faq/解释你如何调整一些设置,但是它适用于从asciidoctor markdown生成html文档,而不是我正在做什么 - 这是保存markdown文本数据库,并在检索时解析该文本。那个faq问题似乎也假设一个文件结构和框架不是rails。所以它似乎不适用于我的情况。

我很茫然,因为我有正确的语法和设置,但不确定它失败的地方,目前没有任何方法可以调试或检查缺少或不正确的地方。

这个问题似乎是我得到的确切行为。 https://github.com/asciidoctor/asciidoctor/issues/947

1 个答案:

答案 0 :(得分:0)

电话应该是

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

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

然后您将看到代码块内容上标记的样式。

如果不起作用,也请更改

[source,ruby]

[source,ruby,role="my_css_class"]

html角色属性的具体值似乎并不重要。