最近在使用org2blog来将以前用org-mode写的笔记上传到博客的过程中, 发现有些笔记上传老是失败, 连个错误提示也没有. 通过二分法只保留部分笔记重新上传的方法, 最终发现是由于python代码块的存在导致了这个问题. 也就是说, 如果笔记中出现:

#+BEGIN_SRC python

print("hehe")

#+END_SRC

这样的内容, 上传就会失败, 而将代码语言改为其他或者干脆不指明语言就没问题. 作为强迫症晚期患者, 不找到解决方法就是不太安心. 首先我试着不用org2blog, 直接导出为html, 发现也不行, 那应该和org2blog没什么关系了. 通过Messages里的日志, 发现导出时以下记录:

org-babel-exp process python at line 52...

while: end of buffer

然后就没下文了. 而shell语言在导出时日志是这样的:

org-babel-exp process sh at line 52...

Setting up indent for shell type bash

Indentation variables are now local.

Indentation setup for shell type bash

看样子应该是babel的问题了. 但是网上以”babel org export html”作为关键字搜索却搜不出想要的解决方案, emacser比起vim党还是小众了点. 自己看elisp代码又完全看不懂, 最后还是向码农圣地stackoverflow求助. 果然, 在某个不起眼的角落发现有人提过一样的问题:

简单来说就是org exporter的一个bug, 只要把ox-html.el中的

1:(save-excursion

2: (let ((beg (point-min))

3: (end (point-max)))

4: (goto-char beg)

5: (while (progn (end-of-line) (< (point) end))

6: (put-text-property (point) (1+ (point)) 'face nil)

7: (forward-char 1))))

改为

1:(save-excursion

2: (let ((beg (point-min))

3: (end (point-max)))

4: (goto-char beg)

5: (while (progn (end-of-line) (< (point) end))

6: (let ((oldpos (point)))

7: (put-text-property (point) (1+ (point)) 'face nil)

8: (goto-char oldpos))

9: (forward-char 1))))

然后重新编译一下就行了. 说明一下, python-mode中上面的原始代码的第六行, put-tex-property 函数莫名其 妙的把光标位置往前移动了一格, 导致已经到了缓冲区末尾, 下一行 forward-char 函数就失败了. 于是答主在 put-text-property 前先保存当前位置, 然后执行完后恢复.

orgmode导出html,含有python代码块的ORG-MODE导出为HTML时出错相关推荐

  1. 6个非常实用的 Python 代码块,适合收藏~

    大家好,今天分享几个平时我会用到的 Python 代码块,每个都小而精,喜欢记得关注.点赞.收藏. 1,批量修改文件名 日常工作中,可能会有这样的需求:把一个文件夹下所有 jpg 图片转化为 png ...

  2. python代码块-python代码块

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 开发准备cas 的 python sdk 包含了用于访问和操作 cas ...

  3. python 代码块批量添加 Tab缩进 取消缩进 anaconda

    #每天一点点# python 代码块批量添加 Tab缩进,取消缩进 选择需要缩进的代码块 Tab :集体向右缩进 Shift + Tab :集体向左回缩 我用anaconda

  4. 表示python代码块的是_编写高质量Python代码的59个有效方法,你用过几个

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 这个周末断断续续的阅读完了<Effectiv ...

  5. python代码块-python小数据池,代码块的最详细、深入剖析

    一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了,什么是内存地址呢? 你只要创建一个数据(对象)那么都会在内存中开辟一个空间,将这个数据临时加在到内存中,那么这个空间是 ...

  6. python代码块使用缩进表示-Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?...

    大家好,这是"Python为什么"系列节目的文字稿(文末有观看地址). 本期话题:Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 "end ...

  7. python代码块-Python中的代码块和非代码块是什么

    Python中的代码块和非代码块是什么 发布时间:2020-06-26 13:53:30 来源:亿速云 阅读:150 今天就跟大家聊聊有关Python中的代码块和非代码块是什么,可能很多人都不太了解, ...

  8. python代码块-Python 代码块

    代码块 骏马金龙https://www.cnblogs.com/f-ck-need-u/p/9925021.html 代码块可以使得一段python代码作为一个单元.一个整体执行. 几种代码块 模块文 ...

  9. python代码块使用缩进表示-python中的代码块使用缩进来表示。

    [填空题]Python 运算符中用来计算整商的是( ). (2.0分) [判断题]python中的多行语句可以使用反斜杠来实现. (2.0分) [填空题]在python中,int表示的数据类型是( ) ...

最新文章

  1. 生信小白的福音——免费在线分析扩增子数据SILVAngs
  2. html表单全选框,form表单里如何实现全选和全不选
  3. 加密软件漏洞评测系统_所有雷电接口电脑5分钟内即可破解,漏洞无法软件修复,微软Surface笑了...
  4. JavaScript类型总览(图)
  5. wifi 信道_说了这么久的信道和频宽,这回总算能弄明白啦
  6. php 元_PHP 享元模式 - 304158的个人空间 - OSCHINA - 中文开源技术交流社区
  7. leetcode-507-Perfect Number
  8. Nuget没办法使用了。
  9. 不支持给定路径的格式_【国考那些事】2021国/省考,申论答题格式,建议收藏!...
  10. lisp 计算三点的夹角_平面三点计算夹角
  11. Unity+JetBrainsRider2020+EmmyLua调试Lua(XLua)
  12. 【利用编程来解决问题】——解数学题
  13. 小布什逗留香港6小时 赴知名裁缝店做18套西装——中新网
  14. 华为“吐出”的高端市场,小米 Ov 却吃不下
  15. 微软遥测服务服务器,使用 .REST 配置 Azure 媒体服务遥测 | Microsoft Docs
  16. shell:sed 替换换行符
  17. 人,羊,狼,菜过河问题的计算机编程实现的matlab程序,人狼羊菜渡河问题(含Matlab程序)...
  18. 1253. 将数字转换为16进制
  19. LeetCode3:合并两个有序数组 给你两个有序数数组,nums1和nums2,请你将nums2合并到nums1中,使nums1成为一个有序数组.
  20. android 关机闹钟 实现,android 关机闹钟

热门文章

  1. 计算机浏览器应用程序,基于浏览器的应用程序
  2. 大罗讲SQL:如何优雅的进行SQL编写?
  3. MySQL从零到一解读增量同步数据到elasticsearch canal adapter方式(binlog)实现
  4. 6种常见的地标识别算法整理和总结
  5. 带你了解Python炫酷的颜色输出与进度条打印
  6. 用Anaconda3搭建自己的TensorFlow环境
  7. mysql新密码认证_MySQL原生密码认证
  8. TikZ绘图示例——尺规作图: 鸭蛋圆形的近似画法
  9. poj 2439 ArcticNetwork 最小生成树Kruskal、(Prim方法还没做
  10. 使用scrapy报错:attrs() got an unexpected keyword argument 'eq'解决办法