【日常】有道云笔记markdown数学公式格式转换脚本

最近开始用有道云笔记,发现其markdown数学公式的写法实在毒瘤。别人都是:

$$

$$

他是:

```math

```

无奈之下写了一个脚本。实现起来很简单,用正则替换一下就行。

# -*- coding: utf-8 -*-
import argparse
import re

import pyperclip

parser = argparse.ArgumentParser(
    description='将有道云笔记Markdown和正常Markdown的进行互相转换(数学公式的格式)')
parser.add_argument('--type', default='m2y', choices=['y2m', 'm2y'],
                    help='转换类型, m2y: md -> youdao; y2m: youdao -> md')
parser.add_argument(
    '--in', dest='input', help='转换后的 markdown 的输入文件;不填则自动读取剪贴板')
parser.add_argument(
    '--out', dest='output', help='转换后的 markdown 的输出文件;不填则自动写入剪贴板')
args = parser.parse_args()


def main():
    y2m_pat_block = r'```math((.|\n)*?)```'
    y2m_pat_inline = r'`\$(.*?)\$`'
    m2y_pat_block = r'\$\$((.|\n)*?)\$\$'
    m2y_pat_inline = r'(?<!`)\$(.*?)\$(?!`)'
    src_content = ''
    if args.input:
        with open(args.input, encoding='utf-8') as f:
            src_content = f.read()
    else:
        src_content = pyperclip.paste()

    if args.type == 'y2m':
        des_content = re.sub(y2m_pat_block, r'$$\1$$', src_content)
        des_content = re.sub(y2m_pat_inline, r'$\1$', des_content)
    else:
        des_content = re.sub(m2y_pat_block, r'```math\1```', src_content)
        des_content = re.sub(m2y_pat_inline, r'`$\1$`', des_content)

    if args.output:
        with open(args.output, 'w', encoding='utf-8') as f:
            f.write(des_content)
    else:
        pyperclip.copy(des_content)


if __name__ == '__main__':
    main()

再写个 bat 脚本

@echo off
:: 注意改成自己本机的 py 路径
set py=D:\Software\Enviroment\Miniconda3\python.exe
call %py% %~dp0\YouDaoMD.py %*

放到环境变量中,就可以用了

D:\Data\SrcCode\Python\Toy\杂项脚本>youdaocvt --help
usage: YouDaoMD.py [-h] [--type {y2m,m2y}] [--in INPUT] [--out OUTPUT]

将有道云笔记Markdown和正常Markdown的进行互相转换(数学公式的格式)

optional arguments:
  -h, --help        show this help message and exit
  --type {y2m,m2y}  转换类型, m2y: md -> youdao; y2m: youdao -> md
  --in INPUT        转换后的 markdown 的输入文件;不填则自动读取剪贴板
  --out OUTPUT      转换后的 markdown 的输出文件;不填则自动写入剪贴板

猜你喜欢

转载自blog.csdn.net/frostime/article/details/104321953
今日推荐