org转html时的换行

前言

在使用pandoc转换org-mode文件到html文件的过程中,
会发现相邻的两行会变成一行,有点类似latex.
这里为了使html能换行,有一些方法.

妥协:更改自己的编辑

为了使html文件换行,在编辑阶段有两个方法.
看起来一样的效果,实际上原因不同.

  1. 在org文件对应的位置使用两个换行,这样被视为两个段落,从而换行
  2. 在段落结尾使用两个反斜杠,这样被视为段落内的换行 `<br />`

如果是为了阅读html时的体验像正常书籍一样, 就需要妥协,使用空行开隔断

如果执着与编辑时换行表示句子的停顿,
一段话中无论多少句都不肯使用空行隔断(已经有换行表示句子停顿了为什么要再停顿一次),
那么就在行尾使用双反斜杠,尽管这样会很不美观.

转换阶段的情况

由于个人需要,常常将org文件以更为受欢迎的markdown格式保存. 将markdown传递到笔记软件查看,
或者将markdown处理为博客内容查看.

目前转换时换行的变化如下,为了描述方便,将一个回车称为换行,两个回车成为分段

org到html

换行将合并为一行,分段还是分段.

org到markdown再到html

  1. org到markdown
    • pandoc转换,主流是将换行合并为一行,
    • 可能会根据空格,标点等自动换行.
  2. markdown到html
    • pandoc转换,没有特殊配置则换行合并为一行.
    • typora自带了pandoc,且没有太多复杂配置,表现相同.
      • 不过注意typora在显示markdown时,换行还是换行,不会成为一段
        • 造成了markdown的显示与html输出不匹配
        • 为了显示的markdown与输出的html匹配,用户通过typora输入一个换行时,typora在文件中使用两个换行.
    • 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时都选择硬换行.