2

相关如何将行号添加到 Google Prettify 中的所有行?

我正在查看 google 的http://code.google.com/p/google-code-prettify/以显示我在网页中用 Mathematica 编写的代码。

Mathematica 是不支持的语言。所以,即使我认为我可以做到以下几点

<pre class="prettyprint linenums">
Manipulate[
 tick;
 Module[{a1, a2, a3, v1, v2, v3, h1, a1d, a2d, a3d, z},
]
</pre>

并且在显示行号方面有效,但是使用的语法突出显示已关闭并且对于我使用的语言不正确,因为它当然不受我理解的支持。

我很乐意只列出代码,使用nocode类,没有突出显示,但我也希望能够获得行号。所以,我尝试了这个:

<pre class="prettyprint linenums"> 
<span class="nocode">  <!-- also tried <span class="nocode linenums"--->
Manipulate[
 tick;
 Module[{a1, a2, a3, v1, v2, v3, h1, a1d, a2d, a3d, z},
</span>
</pre>

但行号没有显示在nocode类内。

有没有办法修改prettify.js并使其也显示 nocode 的行号?我将主要使用它来列出代码,但需要查看行号。

这是一个完整的 MWE

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8"/> 
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>
</head>
<body onload="prettyPrint()">        

<pre class="prettyprint linenums">
<span class="nocode linenums">
Manipulate[
 tick;
 Module[{a1, a2, a3, v1, v2, v3, h1, a1d, a2d, a3d, z},

  Which[state == "init" || state2 == "on",
   state2 = "off";
   If[state == "init", state = "paused"];  
 state == "running" || state == "step",
   If[currentTime > maxTime, currentTime = 0]
   ]; 
]
</span>
</pre>

</body>
</html>

更新

感谢 Gaby,它现在正在工作。这是最终结果

在此处输入图像描述

4

1 回答 1

2

nocode类放在pre元素上..

<pre class="prettyprint linenums nocode">

演示在 http://jsfiddle.net/gaby/8Jwja/1/


更新

要显示所有数字(并在数字后不带点显示它们),您必须覆盖 CSS

添加

ol.linenums{
    counter-reset:linenumber;
}
ol.linenums li{
    list-style-type:none;
    counter-increment:linenumber;
}
ol.linenums li:before{
    content: counter(linenumber);
    float:left;
    margin-left:-4em;
    text-align:right;
    width:3em;
}

演示在 http://jsfiddle.net/gaby/8Jwja/2/

于 2013-12-30T01:44:22.990 回答