教程 · 文本 → HTML

把纯文本变成 HTML 段落

文字直接粘到页面里会挤成一整块,因为 HTML 不管你的换行。在浏览器眼里,连着的空白一律算一个空格。

两条规则决定了整个结果:空行分段,单个换行由你决定。别的都是从这两条推出来的。

去转换器

空行分段

两块文字之间空一行,出来是两个 <p>。分段规则就这一条,跟三十年来所有纯文本邮件的约定是一样的。

一行里只有空格或制表符,仍然算空行。连着好几个空行仍然只断一次,不会出现空段落。

如果你的文本里根本没有空行,你会得到一个长段落 —— 这是对的,因为没有可分的地方。转换器发现这种情况会当场说明,而不是让你过一会儿才发现。

文本
First thought.

Second thought.
HTML
<p>First thought.</p>
<p>Second thought.</p>

单个换行:<br> 还是空格

段落里面的单个换行有两种去处,选哪个完全看这段文字是什么。

行末本身有意义的,保留成 <br>:地址、诗、签名档、歌词。被老编辑器按 72 列硬折过的散文,让它自己流 —— 换行变成空格。那种情况留成 <br>,你会得到一段右边参差不齐、在手机上还不会重排的文字。

文本
12 Bridge Street
Manchester
HTML,保留换行
<p>12 Bridge Street<br>
Manchester</p>

把裸网址变成链接

开了自动链接之后,以 http://、https:// 或 www. 开头的都会变成 <a>。邮箱地址变成 mailto: 链接。

匹配是刻意收窄的。裸写的 example.com 不会变链接,因为没法把它和一句以文件名结尾的话、或者一个带点的缩写区分开。那儿猜错就是造出一堆指向虚无的链接。

结尾的标点不算在链接里,所以句末的网址不会把句号一起吞掉。链接带 rel="noopener nofollow",也不会在新标签页打开。

纯文本说不清的事

这儿的东西全都变成段落。没有别的输出形式,而这是输入本身的性质,不是功能上的欠缺。

一行以连字符开头,你看着像列表,但它就是一个连字符加一个空格。底下用等号划一行,你看着像标题,但它就是一排等号。猜错的次数会多到比不猜更糟。

所以:没有列表,没有标题,没有代码块。缩进作为字符保留下来,但在浏览器里会塌掉,也就是说 ASCII 表格和缩进的代码出来会挤成连成一片的文字。如果你的文本其实是 Markdown,用 Markdown 那一页 —— 在那儿这些约定是有意义的。

有一件事你不用操心

尖括号、&、引号全部转义,一个不留。文字里的 <b>bold</b> 会在页面上原样显示这几个字符,而不是变粗。

这是这个工具的定义,不是外加上去的一道安全措施。纯文本就是纯文本:要是它能含标记,它就不叫纯文本了。

粘上文字或者拖一个 .txt 进来,选好单个换行怎么处理,把 HTML 复制走。全程在你的浏览器里跑。

文本 → HTML