AltSearch是LibreOffice Writer的一个用于自动化执行复杂文本替换操作的扩展,能够在不需要复杂编程的条件下进行一些文档格式的手动与批量转换和调整。该扩展除了支持普通文本与正则表达式的查找与替换外,还能够进行文本与段落样式的匹配与替换,这是其他的排版软件,包括微软的Office,所不具备的。利用这些功能,将其写为简单的批处理脚本,就可以自动地格式化文件,满足常见的学习与工作需求,大大提高工作效率。本文以格式化由Kindle 导出的笔记为例,介绍AltSearch的基本使用方法。

由Kindle iPad版导出的芝加哥格式的笔记直接存为LibreOffice Writer文件,其格式基本与纯文本无异,并不适合结构化的浏览或发布为豆瓣笔记。所以,需要对文本格式进行调整。对此,首先在LibreOffice Writer中点击绿色望远镜按钮,打开AltSearch对话框:

然后依次执行如下步骤:

  • 删除“标注(黄色)”之类的标记和后面的(原版书)页码:

    • 搜索:^标注\(.*\)\s*-\s*第\s*\d+\s*页·

    • 替换为空字符

  • 搜索“笔记”并删除后面的(原版书)页码:

    • 搜索:^(笔记\s*-\s*)第\s*\d+\s*页·

    • 替换:\1

  • 将“位置”替换为“P”并将其与下一行合并:

    • 搜索:位置\s*(\d+)\s*\p

    • 替换: P\1

  • 将所有段落设为“Quotations”样式:

    • 搜索:.*

    • 替换:\P{Quotations}

  • 将所有以“笔记”开头的段落设为“Text Body”样式:

    • 搜索:^\s*笔记

    • 替换:\P{Text Body}

上述步骤手动操作起来比较繁琐,我们可以利用AltSearch的批处理模式将其写为脚本。点击AltSearch对话框中的“Batch”按钮:

在如下打开的批处理模式对话框中点击“Edit”,打开文本编辑器编辑脚本。需要注意的是,如果是第一次运行AltSearch,点击“Edit”后会提示使用什么编辑器进行编辑,直接输入编辑器的命令名确认即可(在Linux下可以使用kate,在Windows下用notepad)。

然后,将下面的脚本拷贝到文件末尾“[End]”的前一行即可。

[Name] Process the selected Kindle notes in Chicago format[Parameters]   MsgOff Regular CurrSelection[Find]^标注\(.*\)\s*-\s*第\s*\d+\s*页·[Replace][Command] ReplaceAll[Find]^(笔记\s*-\s*)第\s*\d+\s*页·[Replace]\1[Command] ReplaceAll[Find]位置\s*(\d+)\s*\p[Replace]P\1 [Command] ReplaceAll[Find].*[Replace]\P{Quotations}[Command] ReplaceAll[Find]^\s*笔记[Replace]\P{Text Body}[Command] ReplaceAll

可以看出,这个脚本的语法非常简单:方括号中的单词表示需要执行的命令,括号之后则为该命令执行所需的参数。目前用到命令有:

  • Name:定义脚本功能名称。

  • Parameters:指定脚本功能执行时的参数,包括:

    • MsgOff:关闭提示信息。

    • Regular:使用正则表达式查找与替换。

    • CurrSelection:仅操作当前选中的文本。

  • Find:指定待查找的文本或正则表达式。

  • Replace:指定需替换的文本或样式

    • \1:反斜线后加一个数字N,表示正则表达式中第N括号中匹配的部分。

    • \P{Paragraph style name}:将名称为“Paragraph style name”的段落样式应用于查找到的文本。该段落样式需事先在LibreOffice Writer中定义好。

  • Command:指定需要执行的命令。ReplaceAll则表示对所有匹配的文本执行替换。

更多AltSearch的功能可以查阅其说明书。

接下来,点击“Refresh”钮,则可以看到刚才新添加进去的脚本功能:

这时,在LibreOffice Writer选中所有需要处理的文本,在AltSearch对话框中选中需要执行的脚本功能,点击“Execute”,便可以完成自动化处理工作。最后,根据个人需要,可以再手动设置Kindle图书中各个章节的标题样式。至此,就可以得到一份漂亮的读书笔记了。

转载于:https://www.cnblogs.com/quantumman/p/9384897.html

使用AltSearch格式化Kindle读书笔记相关推荐

  1. Kindle读书笔记——第一个月2017.01.22-02.21

    1. 天才在左,疯子在右  [2017/01/21, ¥3.99] 看这本书之前以为是讲天才和疯子的共性的,结果看完才发现是讲常见心理疾病的.书中谈到的心理疾病也很常见,但是要严重到例子中那样可能却不 ...

  2. freemarker 导出html格式word_如何导出 Kindle 上的读书笔记

    如何把 Kindle 上的读书笔记导出来,网上有很多奇门遁甲的方法,这里介绍一个比较直接的办法,只要开启了云端同步功能,就可以使用这个方法导出读书笔记,而且不需要用到 Kindle 设备. 安装 ki ...

  3. Go语言实战读书笔记

    2019独角兽企业重金招聘Python工程师标准>>> Go语言实战读书笔记 第二章 通道(channel).映射(map)和切片(slice)是引用类型.引用类型的对象需要使用ma ...

  4. 设计模式---读书笔记

    一.文章来由 按照惯例,来一个来由,这是<设计模式-可复用面向对象软件的基础>的读书笔记,整理给自己看的,整理的内容也会不断更新.大神轻喷~~如果不喜欢请留言说明原因再踩哦,谢谢,我也可以 ...

  5. ECMA-335 (CLI) 标准 读书笔记——总结CLI类型系统(上)

        看到类型系统的概述时,就忍不住按图索骥,想搞清楚CLI如何定义的整个类型系统.于是翻遍了整个标准,将类型系统中最核心的.与运行平台密切相关的类型定义与说明整理了出来,以供理清思路. 标准的第四 ...

  6. 简单使用Git和Github来管理自己的代码和读书笔记

    简单使用Git和Github来管理自己的代码和读书笔记 以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git 和Github来托管自己的代码和读 ...

  7. 读书笔记2013第16本:《删除:大数据取舍之道》

    这本书是看<大数据时代>后加入到待读书单中的,我想看看作者是如何从数GB的照片中只保留最有用的几MB的照片的,后来找到了kindle版的电子书,就读来试试,说实话,这本书写得是相当的啰嗦, ...

  8. 《CSS新世界》读书笔记

    前言 本文为<CSS新世界>的读书笔记.推荐去读原著. <CSS新世界>微信读书APP链接:CSS新世界-张鑫旭-微信读书 (qq.com) 1. 尺寸属性值:fit-cont ...

  9. 鸟哥的linux私房菜-基础学习篇 读书笔记

    从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...

  10. C语言深度解剖读书笔记

    开始本节学习笔记之前,先说几句题外话.其实对于C语言深度解剖这本书来说,看完了有一段时间了,一直没有时间来写这篇博客.正巧还刚刚看完了国嵌唐老师的C语言视频,觉得两者是异曲同工,所以就把两者一起记录下 ...

最新文章

  1. 智源-AI Time 5 | 无人驾驶距离我们还有多远?(活动报名)
  2. VLFeat库中加extern “C“
  3. Unity 3D:在现有的Android游戏场景中显示AdMob的横幅
  4. 我的爱好html子页模板,我的爱好
  5. 【视频】vue指令之v-else-if
  6. 初中数学四十二个几何模型_【初中数学】一题贯穿初中几何
  7. html 和 body标签的 css 设置
  8. .Net Core 读取文件时中文乱码问题的解决方法
  9. 速查 Git 常用命令
  10. Thread中的静态代理
  11. linux命令---ubuntu的vim命令用法
  12. 洛奇英雄传单机版服务器未响应,洛奇英雄传官方网站
  13. C# ObservableCollection集合排序
  14. 【论文解读IJCAI 2019】Extracting Entities and Events as a Single Task Using a Transition-Based NeuralModel
  15. java实时获取android网速_Android中获取实时网速(2)
  16. 数据仓库-hive分区表
  17. 二、数据模型和关系模型
  18. 改造WinRE 从隐藏分区安装Win7
  19. TI Sitara AM57x DSP+ARM + Xilinx Artix-7 FPGA核心板 规格书资料
  20. 发明专利的权利要求书怎么写?

热门文章

  1. Can't update 分支名 has no tracked branch
  2. mysql临时表关联查询_MySQL如何执行关联查询
  3. c语言程序编程实践总结,c语言编程实习心得
  4. GenBank数据格式
  5. HTTP协与Apache服务的搭建
  6. 8个PNG素材网站,每一个都让你觉得人生发亮
  7. vscode打开txt文件乱码
  8. 一个开源在线IDE项目
  9. crmeb 一号通使用方法
  10. 极速手游加速SDK快速指入指南+极速手游加速器SDK参考文档