我正在研究Markdown命令行程序,我想在html输出中格式化源代码块比简单的< pre>< code> ….< / code>< /预取代.
我的标准是:
>我想要在每行前面显示行号
>我希望代码本身可以选择,这样我就可以只将代码(而不是行号)复制到剪贴板
我试图使用DIV,因为表似乎格式不好,但我对任何事情持开放态度.
我尝试了什么:
>单行表,单元格1是预/代码格式的行号块,单元格2是源代码.问题:带行号的第一列总是占用大量空间(自动调整宽度似乎变得困惑)
>具有多行的表,与具有1行的行相同的问题
> DIV,我似乎无法让DIV以我想要的方式布局
任何人都可以给我一个如何获得我想要的指针吗?
这是一个示例(明显的限制是我使用Markdown来显示这里的示例):
01 | Source code line 1
02 | Source code line 2
03 | Last line of source code
现在,如果我在第一行单击并选择,并向下拖动多行,我不希望选择包含行号列,否则这将很容易.
那么,任何指针?
我不需要的一个奖励功能是,如果我使窗口太窄而不能包含源代码,我不需要将它分成两行.我能理解该功能如何工作的唯一方法是单独格式化每一行,而不是单独格式化每一行,以便在发生换行时调整行号.由于我希望只能复制源代码,因此我认为我需要自己格式化每个列.
这是我尝试过的东西:
这有一个背景颜色的问题,我希望背景颜色一直延续到浏览器窗口的右侧,而是它停在恰好的代码右边,即.这样的事情:
+----+-------------+
| 01 | SELECT * |
| 02 | FROM TABLE |
| 03 | WHERE A = B |
+----+-------------+
当我想要这样的东西时:
+----+--------------------------------------------------------------------------+
| 01 | SELECT * |
| 02 | FROM TABLE |
| 03 | WHERE A = B |
+----+--------------------------------------------------------------------------+
最佳答案
你可以单独制作< pre>行号的标记,并使用float:left使其与< pre>相邻与来源.
编辑:Demo
第二次编辑:Demo with full background