Я использую реализацию Markdown в Python с опцией codehilite
и lineos
.Он производит код, подобный этому:
1
2
<span class="k">def</span>
<span class="nf">func</span>
<span class="p">(</span>
<span class="n">n</span>
<span class="p">):</span>
<span class="k">return</span>
<span class="n">n</span>
<span class="o">**</span>
<span class="mi">2</span>
<span class="o">+</span>
<span class="mi">3</span>
<span class="o">*</span>
<span class="n">n</span>
<span class="o">+</span>
<span class="mi">1</span>
Это таблица с одной строкой и двумя ячейками;первая ячейка для номеров строк, а вторая ячейка для фактического кода.Содержимое каждой ячейки находится внутри элемента div
и pre
, а элементы span
используются для окрашивания синтаксиса.
Я хотел бы отобразить горизонтальную полосу прокрутки, если строка кода слишком длинная, но у меня проблемы, потому что это таблица.
В идеале, я бы хотел, чтобы полоса прокрутки просто на ячейке кода (td.code
), но это работает, только если установить ширину таблицы на 100%, что делает обе клетки длинными 50%.Я хочу, чтобы ячейка с номером строки (td.linenos
) была такой же длины, сколько требуется для отображения фактических номеров строки.
Вот мой текущий CSS:
pre, code { overflow:auto; }
table.codehilitetable { table-layout: fixed; white-space: nowrap; width:100%; }
Если это невозможно, то я бы хотел иметь полосу прокрутки для всего ряда (tr
).Но приведенный выше код не работает со строками таблицы.