【问题标题】:Prism.js syntax highighting not workingPrismjs语法突出显示不起作用
【发布时间】:2017-10-20 08:58:34
【问题描述】:

我正在使用 Docsify 提供有关我的项目的文档。 对于语法突出显示,我想使用 prism.js。可悲的是,突出显示部分不起作用。我也尝试了here提到的所有建议。

在我的 index.html 中,我包含 <script src="//unpkg.com/prismjs/components/prism-ruby.js"></script>,正如 docsify 提到的 here。在我的file.md 中我想展示一些 Ruby 代码:

<pre><code class="language-ruby">
  def hello(name)
    p "Hello #{name}"
  end
</code></pre>

但是 Ruby 代码没有被突出显示。

正在渲染的 HTML:

<pre><code class="language-ruby">
  def hello(name)
    p "Hello #{name}"
  end
</code></pre>

我在这里错过了什么?

【问题讨论】:

    标签: ruby-on-rails prism.js docsify


    【解决方案1】:

    尝试手动调用 Prism.highlightAll()

    <script defer src="./docsify.min.js"></script>
    <script defer src="./prism.js"></script>
    <script defer lang="javascript">
       window.$docsify = {
          // call Prism.highlightAll() in vue hook
          plugins: [
             function (hook, vm) {
                hook.doneEach(function (html) {
                   Prism.highlightAll()
                   console.log('mounted,', Prism, Prism.languages.flow)
                })
    
             }
          ]
       }
    </script>

    【讨论】:

      【解决方案2】:

      经过一些测试后,似乎出于某种原因,当手动放置标签时,docsify 不会要求 Prism 突出显示。

      如果没有什么能阻止你使用标准的 markdown 语法,你应该更喜欢它:

      ```ruby
      def hello(name)
          p "Hello #{name}"
      end
      ```
      

      【讨论】:

      • 为澄清起见,在 markdown 代码块中使用 markdown 代码块是自愿的,因为这会显示用户想要在其 .md 文件中写入的 markdown。
      • (=> 我们想在答案上显示三重`)
      猜你喜欢
      • 1970-01-01
      • 2016-05-13
      • 2016-11-26
      • 1970-01-01
      • 2020-01-31
      • 2014-01-22
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      相关资源
      最近更新 更多