org转html时的换行
前言
在使用pandoc转换org-mode文件到html文件的过程中,
会发现相邻的两行会变成一行,
有点类似latex.
这里提供一些在转换org到html时保留换行的方法.
妥协:更改自己的编辑
为了使html文件换行,在编辑阶段有两个方法.
看起来一样的效果,实际上原因不同.
- 在org文件对应的位置使用两个换行
- 这样被视为两个段落,从而换行
- 在段落结尾使用两个反斜杠
- 这样被视为段落内的换行
<br />
- 这样被视为段落内的换行
如果是为了阅读html时的体验像正常书籍一样,
就需要妥协,使用空行开隔断
如果执着与编辑时换行表示句子的停顿,
一段话中无论多少句都不肯使用空行隔断(已经有换行表示句子停顿了为什么要再停顿一次),
那么就在行尾使用双反斜杠,
尽管这样会很不美观.
转换阶段的情况
由于个人需要,常常将org文件以更为受欢迎的markdown格式保存.
将markdown传递到笔记软件查看,
或者将markdown处理为博客内容查看.
目前转换时换行的变化如下,
为了描述方便,将一个回车称为换行,两个回车成为分段
org到html
换行将合并为一行,分段还是分段.
org到markdown再到html
-
org到markdown
pandoc转换,主流是将换行合并为一行,
可能会根据空格,标点等自动换行. -
markdown到html
- pandoc转换,没有特殊配置则换行合并为一行.
- typora自带了pandoc,且没有太多复杂配置,表现相同.
- 不过注意typora在显示markdown时,换行还是换行,不会成为一段
- 造成了markdown的显示与html输出不匹配
- 为了显示的markdown与输出的html匹配,用户通过typora输入一个换行时,typora在文件中使用两个换行.
- 不过注意typora在显示markdown时,换行还是换行,不会成为一段
- hexo保持了markdown的文件外观与html外观相同,即换行还是换行
总结
- 如果都使用pandoc,即使在org到markdown时有部分换行还是换行,
在转换成html后还是会成为一行.
换行合并,分段还是分段. - 先pandoc再hexo框架,则看pandoc脾气
哪里不会换行,哪里会换行说不定.
不妥协:在转换时想办法
为了编辑和阅读时感受统一,
可以强制html按照org的换行来换行.
不过这样有一个缺点是当阅读时遇到更窄的屏幕,
在编辑org文件阶段设定的换行就没有了意义,
还是不能一行看完一小句话.
pandoc提供了markdown专属的一个extension,
名为 hard_line_breaks
.
用于使markdown文件与上游或下游文件使用同样的换行效果.
1 | pandoc -f org -t gfm+hard_line_breaks |
将使org中的换行在转换为markdown后还是换行.
1 | pandoc -f gft+hard_line_breaks -t html |
将使markdown中的换行在转换为html后还是换行.
注意:
- org与html都不支持该扩展,所以必须要markdown中介.
- 如果markdown转换html时没有使用硬换行,则半途而废
- 使用pandoc的硬换行方式
- 或者使用hexo框架
从html中来,到html中去
编辑org后为了导出为html查看,
而编辑org时的内容又有可能是从html粘贴过来的,
那么就有,html转换为org时的问题
pandoc默认配置下,
html中的外观上的换行仍旧是换行.
不过br会变成双反斜杠显示.
如果删除则会导致org再转换成html时,
原先html中br位置的换行被删除,一段话紧密挨在一起.
但为了美观一定要删除.
为了删除双反斜杠后还原成html时还能保留换行,
可以使用上面的方式,
在org转换为markdown和markdown转换为html时都选择硬换行.