org转html时的换行
前言
在使用pandoc转换org-mode文件到html文件的过程中,
会发现相邻的两行会变成一行,有点类似latex.
这里为了使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~linebreaks~`.
用于使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时都选择硬换行.