静读天下mrexpt转md
第一版
1.在平板或手机上标注的笔记导出上传到电脑
2.git clone https://gitclone.com/github.com/wangandi520/ClippingsToMarkdown.git
3.把 *.mrexpt
文件放到该项目下
4.执行命令 python .\MoonReaderProToMrexpt.py car.mrexpt
5.在该目录下即可看到转换的md文件
参考:
1)https://andi.wang/2021/03/15/文石Boox,Kindle,静读天下专业版,微信读书,KOReader的标注转换为Markdown格式/
2)https://github.com/wangandi520/ClippingsToMarkdown
第二版
由于转换出来的样式不太符合我个人的偏好,所以对代码进行了调整,同时也不需要在控制台输入文件名(在python代码里输入即可)。主要是对输出内容和传参做了改动:
# encoding:utf-8 # https://github.com/wangandi520/ClippingsToMarkdown # tested Moon Reader Pro 9.0 # Programmed by Andy # v0.7 # 2024.01.28 from pathlib import Path import sys import time def readfile(filename): # 读取.mrexpt文件 with open(filename, mode='r', encoding='UTF-8') as file: filereadlines = file.readlines() for i in range(len(filereadlines)): filereadlines[i] = filereadlines[i].rstrip() return filereadlines def writefile(filename,filereadlines): # 写入.md文件 newfile = open(Path(filename).parent.joinpath(Path(filename).stem + '标注.md'), mode='w', encoding='UTF-8') newfile.writelines(filereadlines) newfile.close() print('完成:' + str(Path(filename).name)) def convertMoonReadermrexpt(filename): # 设置文章标签tags myTags = ['阅读', '标注', '读书笔记'] # 设置文章分类categories myCategories = '读书笔记' # 设置hexo文章头部信息Front-matter myFrontMatter = '---\ntitle: ' + str(Path(filename).stem) + ' 标注\ntoc: true\ntags:\n- ' + '\n- '.join(myTags) + '\ncategories: \n- ' + myCategories + '\ndate: ' + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + '\n---' # 读取文件 filereadlines = readfile(filename) print('处理:' + str(Path(filename).name)) # 存储所有标注 allContent = [] for i in range(4, len(filereadlines), 17): eachContent = [] # filereadlines[i+4] = 第几章,从0开始 # filereadlines[i+6] = 这一章内的位置 eachContent.append([int(filereadlines[i+4]), int(filereadlines[i+6])]) # 划线标注 eachContent.append(filereadlines[i+12]) # 手写的批注 if filereadlines[i+11] != '': eachContent.append(filereadlines[i+11]) # 标注时间 clippingTime = float(filereadlines[i+9])/1000 clippingTimeTransfered = time.strftime("%Y.%m.%d %H:%M:%S", time.localtime(clippingTime)) eachContent.append(clippingTimeTransfered) allContent.append(eachContent) # 按照标注添加的时间顺序 = 1,还是按住标注所在书中的先后顺序 = 2,排列 getOrder = 2 if getOrder == 2: allContentSorted = sorted(allContent, key=lambda x: (x[0])) else: allContentSorted = allContent # 输出 outputContent = [] #outputContent.append(myFrontMatter) for myIndex in range(0, len(allContentSorted)): outputContent.append('- ' + allContentSorted[myIndex][1] + '\n\n') # 写入.md文件 writefile(filename, outputContent) def main(): # 放入需要转换的文件名 convertMoonReadermrexpt('car.mrexpt') if __name__ == '__main__': try: main() except IndexError: pass
效果图如下:
使用 vscode 替换角标:[\d+]
分类:
技术 / python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2021-12-22 MySQL 某一列的值加入到另一列