中文网络写作上的规则习惯
我一直在思考,什么时候应该使用粗体、什么时候应该使用斜体…… 以下是我的看法,相当于抛砖引玉。
强调
之前我提到过,我给博客的粗体效果添加了点状线,让它看上去更加突出。后面我还是将粗体改回了最开始的仅 fontWeight 样式。一是有读者提醒我粗体太显眼可能会导致其他读者只读了粗体的内容,但无视了其他内容;二是我自个儿也觉得这个粗体太碍眼。
我以前通常会在这些情况下使用粗体:
- 强调语气,通常是一个句子里的一部分文字变粗体
- 强调我觉得有意思的内容
- 强调总结
如果是后两者的话,添加点状下划线感觉也不错。但是一篇文章里出现太多总结或者我觉得有意思的句子,该怎么办呢?实在是无法让读者好好阅读非粗体的内容。也就是说,粗体也分级别。我感觉出来的级别划分如下:
- 总结了整篇文章的,可以使用粗体和点状下划线
- 总结了一个要点或者一个自然段的,只使用粗体
- 有意思的内容,使用其他样式
关于其他样式,我还在摸索中。不过有读者向我推荐了 text-emphasis,让人眼前一亮。
经过一些自问自答后,我认为读者们看到粗体,第一时间想到的是「如果这里不看,后面会出问题」。也就是说,粗体是信息结构的一部分,而非装饰。这和我上述提到的「强调总结」一致。重要的是,粗体是可以改变读者的阅读路径的,因为它实在是太突出太突出了。人们看文章的第一眼,其实就会发现粗体、并且阅读它。
而着重号(也就是 text-emphasis 可以达成的效果,两者不是同个东西。以下依旧简称着重号)不会改变读者的阅读路径。只有在读者看到这一段的时候,读者才会发现着重号。它可以用来做我先前提到的两个事情:「强调语气」和「强调我觉得有意思的内容」。用法可以很多样:反讽、微妙的强调、我觉得这个点很妙、需要读者慢下来体会的一小段词……
还有两个可以用于强调的样式:下划线和斜体。下划线我几乎不使用,不过斜体我很常用。除了处理需要括起来的英文(比如书名),我也会用于异化语气。
作为例子:
当我排查这个问题的时候,其实一开始完全没往 Hexo 的标签实现上想。我以为是 Markdown 渲染器在处理 HTML 时出了 bug,直到我把生成的内容原样打印出来,才发现真正的问题点。Hexo 在渲染标签时返回的是多行字符串,而 Markdown 在解析时会把这些行首的空白当成缩进,从而直接识别为代码块。
这也就解释了为什么页面最后会出现 <pre><code>...</code></pre> 这样的结构:只要返回的不是一行 HTML,就一定会触发这个行为。
更微妙的是,这个问题并不是每次都会暴露出来。如果你生成的标签内容本身比较短,看起来就像是正常输出;但一旦 HTML 稍微复杂一点,被拆成了多行,问题就立刻出现了。这里的「多行」并不是一个实现细节,而是整个渲染流程里最容易被忽略、却又最致命的条件。
所以后来我干脆换了一个思路:不去试图「修复」Markdown 的解析逻辑,而是接受它的规则,反过来约束自己生成的 HTML 结构。从结果来看,这个策略反而简单得多,也稳定得多。
关于我先前提到的分级,整套系统我觉得没有什么问题,不过没有详细解释粗体的密度。我想了这么一个规则:
- 文章里的粗体是有限资源。对于小于一千字的短文,不要使用超过 5-7 次粗体;对于长文,每 3-5 个自然段,最多 1 处粗体。
- 如果读者只看粗体,他能不能复述你的结论?如果不能,不要使用粗体;如果能,那用得好。
换行
不过呢,还有一个有意思的东西可以用于强调 —— 换行。
在中文网络写作中,换行的强调力会小于粗体,但是大于其他样式。拆段是一件很重要的事情。通常读者对段落长度的容忍度是这样的:
- 2-4 行:舒服
- 5-6 行:还能接受
- 7 行以上:开始跳读
提出这一点的原因是,这些都是为了可读性,那么就要从读者的视角出发。段落是组成文章的重要元素之一,不在这上面花功夫怎么行呢?
通常来说,会建议在一个自然段内只推进一个信息点。不过我认为没必要这么极端,推进两三个信息点也没有关系,取决于这个信息点的内容。