【问题标题】:Javascript syntax highlighter that plays nicely with Markdown与 Markdown 配合得很好的 Javascript 语法荧光笔
【发布时间】:2010-12-18 18:47:08
【问题描述】:

我查看了一些 Javascript 程序来为页面上的代码块添加语法突出显示,但我发现的所有这些程序都需要在代码块上设置一个属性来告诉它正在使用什么语言。我正在使用 Markdown 生成 HTML,所以我无法设置这些属性,有没有可以自动执行此操作并且不需要设置属性的方法?

我能想到的唯一方法是使用 shebang 线;

#!/usr/bin/ruby
def foo(bar)
    bar
end

它会知道它是 Ruby,甚至可能不显示 shebang 行(对于一两行片段使用 shebang 会很累)。

我不需要它来编写任何非常晦涩的语言,但如果我可以轻松编写新定义,那就太好了。

谢谢。

【问题讨论】:

    标签: javascript syntax-highlighting


    【解决方案1】:

    Google Prettifier 应该可以完成这项工作。 StackOverflow 也使用它(使用 Markdown 生成的标记)。它会自动确定语言。

    【讨论】:

    • 我想知道 SO 使用什么,但我确实注意到我的短代码示例没有突出显示语法。我假设这么短的代码示例不足以唯一确定语言。
    • @Jeffrey Aylesworth:很有趣。起初我没有注意到这一点。是的,这个 sn-p 可能太短了。
    【解决方案2】:

    据我了解,Markdown spec 允许存在实际标记作为后备:

    对于任何未涵盖的标记 Markdown 的语法,你只需使用 HTML 本身。不需要前言 或将其定界以表明您是 从 Markdown 切换到 HTML;你 只需使用标签。

    唯一的限制是 块级 HTML 元素——例如

    、、

    等 -- 必须与周围分开 内容由空行和开始 和块的结束标签不应该 用制表符或空格缩进。

    所以,如果你有一个你真正喜欢的不能自动检测的语法荧光笔,你可以简单地将具有适当属性的文字 <code> 块扔到你的 Markdown 中。我也不认为它特别违反了 Markdown 的目标……它是一个相当简单易读的指标。

    根据您设计的一些启发式方法,滚动您自己的脚本也可能并不难他们的内容,但如果那里有一个图书馆已经这样做了,那显然有一些优势。 :)

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 1970-01-01
      • 2010-10-23
      • 2011-02-22
      • 2019-06-20
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多