【发布时间】:2019-09-06 13:11:57
【问题描述】:
格式化代码时,有时需要发生换行(如果行很长),但应该明确说明换行。
理想情况下,我希望能够写出类似的东西
<code class="sourceCode">
this is a very long long long long long long long long long long long long long line which is broken.
</code>
但是如果代码需要被包裹,而不是添加水平滚动条,会显示如下
this is a very long long long long long long long long long long long long ↲
long line which is broken.
或
this is a very long long long long long long long long long long long long
↳ long line which is not broken
即,当需要换行时,将添加一个“↳”或“↲”符号(最终还会添加一些空格)。
我正在尝试渲染这样的东西:
用纯html/css(抓图来自this discussion,使用tex/latex和pandoc来渲染这个文档)。
这个问题似乎与
无关- work-break,因为我没有破坏任何词,
- 也不是 word-wrap 属性,因为我真的不在乎单词是否损坏。
但假设code 元素应用white-space: pre; 或pre-wrap 样式。
我觉得应该存在一个聪明的ccs 解决方案,而无需实际接触html,但我找不到它。
一个例子的开头可能是:
<!DOCTYPE html>
<html>
<head>
<style>
code{white-space: pre-wrap;}
body{width: 25em}
</style>
</head>
<body>
<code class="sourceCode">
this is a very long long long long long long long long long long long long long line which is broken.
</code>
</body>
</html>
即使我使用的代码实际上是由pandoc 生成的,并且看起来更像:
code{white-space: pre-wrap;}
a.sourceLine { display: inline-block; line-height: 1.25; }
.sourceCode { overflow: visible; }
code.sourceCode { white-space: pre; position: relative; }
body{width: 25em}
<div class="sourceCode">
<pre class="sourceCode">
<code class="sourceCode">
<a class="sourceLine">this is a very long long long long long long long long long long long long long line which is broken.</a>
<a class="sourceLine">I can have a short line as well</a>
<a class="sourceLine">And empty lines, as well.</a>
<a class="sourceLine">this is a very long long long long long long long long long long long long long line which is broken.</a>
</code>
</pre>
</div>
【问题讨论】: