我已经看了几个Javascript程序,为页面上的代码块添加了语法高亮,但是我发现它们都需要在代码块上设置一个属性来告诉它正在使用什么语言。我正在使用Markdown生成HTML,所以我无法设置这些属性,是否会自动执行此操作并且不需要设置属性?
我能想到这个工作的唯一方法是使用shebang线;
#!/usr/bin/ruby
def foo(bar)
bar
end
它会知道它是Ruby,甚至可能没有显示shebang线(有一个或两个线段的shebang将会很累)。
我不需要它来做任何非常模糊的语言,但如果我能轻松编写新的定义,那就太棒了。
感谢。
答案 0 :(得分:6)
Google Prettifier应该做的工作。 StackOverflow也使用它(使用Markdown生成的标记)。它会自动确定语言。
答案 1 :(得分:2)
我的理解是Markdown spec允许存在实际标记作为后备:
对于任何未涵盖的标记 Markdown的语法,你只需使用HTML 本身。没有必要为它做序 或划定它以表明你是 从Markdown切换到HTML;您 只需使用标签。
唯一的限制是 块级HTML元素 - 例如 < div>,< table>,< pre>,< p>等 - 必须与周围分开 内容按空白行,并开始 块的结束标签不应该 用缩进或空格缩进。
所以,如果你有一个语法高亮显示器,你真的喜欢它不会自动检测,你可以简单地将一个带有适当属性的文字<code>
块放入你的Markdown。我不认为这特别违反了Markdown的目标,或者......这是一个相当简单易读的指标。
在DOM准备就绪后,首先执行的脚本也可能不那么难,找到代码块,并根据您设计的一些启发式方法为您选择的语法高亮显示器插入适当的属性他们的内容,但如果有一个已经有它的图书馆,显然这有一些优势。 :)