Как добавить номера строк при использовании google prettify в классе nocode?

связанные Как добавить номера строк ко всем строкам в Google Prettify?

Я просматриваю 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>

обновить

благодаря Габи, теперь это работает. Вот окончательный результат

введите здесь описание изображения


person Nasser    schedule 30.12.2013    source источник


Ответы (1)


Поместите класс 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/< /а>

person Gabriele Petrioli    schedule 30.12.2013