web-dev-qa-db-ja.com

Google Prettifyのすべての行に行番号を追加するにはどうすればよいですか?

私は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 あなたは私が望むことを見ることができますが、私はそのコードを見ましたそして、私はそれを理解することができません。

42
aurel

根本的な原因はlist-style-type: none in prettify.css:

/* 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;
}
46
Simone

解決

CSSを変更する代わりに、CSSの行を追加するだけで、目的の動作を実現できます。

<style>

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

</style>  

完全な例には、以下のコードが含まれる場合があります。 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>

29
cwd

私は交互の背景色が好きなので、このようにしました:

/* 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; }
3
djunod