如何在Google Prettify的所有行中添加行号?

时间:2011-12-06 11:59:59

标签: javascript css prettify

我正在使用美化:

<pre class="prettyprint linenums">
  some code
</pre>

它有效,但行号显示每5行而不是每行。我正在使用这些文件

<link href="../src/prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../src/prettify.js"></script>

基本上在本页末尾http://google-code-prettify.googlecode.com/svn/trunk/styles/index.html你可以看到我想要的,但我查看了那段代码,我无法理解。

3 个答案:

答案 0 :(得分:44)

在prettify.css中的根本原因是list-style-type: none

/* Specify class=linenums on a pre to get line numbering */
ol.linenums { margin-top: 0; margin-bottom: 0 } /* IE indents via margin-left */
li.L0,
li.L1,
li.L2,
li.L3,
li.L5,
li.L6,
li.L7,
li.L8 { list-style-type: none /* <<< THIS is the cause! */ }
/* Alternate shading for lines */
li.L1,
li.L3,
li.L5,
li.L7,
li.L9 { background: #eee }

您可以删除该规则或使用以下内容覆盖该规则:

.linenums li {
    list-style-type: decimal;
}

答案 1 :(得分:30)

解决方案

您可以简单地添加一行CSS来实现所需的行为,而不是修改CSS:

<style>

    .prettyprint ol.linenums > li { list-style-type: decimal; }

</style>  

实施例

完整示例可能包含以下代码。 View results via jsfiddle或见下文

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.css" />

    <style>
        .prettyprint ol.linenums > li { list-style-type: decimal; }
    </style>

<pre class="prettyprint linenums">
 foo
 bar
 bis
 sed
 awk
 cat
</pre>


<script src="//cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/prettify/r298/run_prettify.js"></script>

http://img801.imageshack.us/img801/8498/al6c.png

答案 2 :(得分:3)

我喜欢交替的背景颜色,所以这样做:

/* White background color for all even-numbered lines */
li.L0,
li.L2,
li.L4,
li.L6,
li.L8  { background-color: #fff; }
/* Light-gray background color for all odd-numbered lines */
li.L1,
li.L3,
li.L5,
li.L7,
li.L9 { background-color: #eee; }