【开源-文章迁移利器】MarkDown本地图片转云端存储脚本-支持目录递归查找转换

news2024/9/21 2:48:58

从一些笔记软件导出markdown文档后,图片都是本地图片,文档数量过多,用typora一一打开上传图片过于繁琐,特开发一个一键迁移文章图片的脚本,方便markdown文档的迁移。


文章目录

  • 大致需求
  • 开源地址
  • 设计思路
  • 脚本介绍
  • 快速使用
  • 使用效果
  • 自定义


大致需求

最近想把notion中所有的文件导出,然后导入其它笔记软件。但是notion导出的markdown文档中的图片都转换为了本地的图片,图片的路径也是本地的相对路径,如果直接导入其它笔记软件,那么图片都没有了。

有一种比较简单的办法,使用Typora的【上传所有本地图片】功能,可以一键上传到图床中。

但是导出的文档实在太多了,而且目录结构还比较复杂,如果一一点开上传,那么需要花不少时间,所有就寻思着能不能写个脚本,一键上传某个目录下所有markdown文件中所有的本地图片。

大致需求:

  • 支持单个markdown文件以及递归查找某个目录下所有markdow文件进行转换。
  • 完善的日志输出能力,能够查看具体上传情况。
  • 支持配置smms图床的token。

开源地址

https://gitee.com/ATFWUSa/markdown-img-convert

设计思路

思路很简单:

  • 递归查找某个目录下的所有markdown文件列表。
  • 正则的方式提取出某个markdown中所有的本地图片url。
  • 读取每张本地图片并上传到smms.app中,并获取转换后的url。
  • 全文中替换本地图片的路径为转换后的url。
  • 将替换完所有图片后的markdown内容写入新的文件。

脚本介绍

  • 支持单个markdown文件以及递归查找某个目录下所有markdow文件进行转换。
  • 完善的日志输出能力,能够查看具体上传情况。
  • 支持配置smms图床的token。

快速使用

下载脚本:

git clone https://gitee.com/ATFWUSa/markdown-img-convert.git

切换路径:

cd markdown-img-convert

下载脚本所需依赖:

pip3 install -r requirements.txt

使用范例:(递归转换当成目录下所有markdow文件,指定smms.app API的token,并将日志输出到文件convert_log.txt中)(如何获取smms.app API token请自行百度)

python3 convert.py -t catalog -p . -stoken te1i**********PaBKNWiSls2EHpkxXt -log convert_log.txt

所有参数:

usage: convert.py [-h] -t CONVERT_TYPE -p CONVERT_PATH -stoken SMMS_TOKEN [-log LOG_PATH]

optional arguments:
  -h, --help            show this help message and exit
  -t CONVERT_TYPE, --convert-type CONVERT_TYPE
                        convert one [file] or one [catalog]
  -p CONVERT_PATH, --convert-path CONVERT_PATH
                        convert path
  -stoken SMMS_TOKEN, --smms-token SMMS_TOKEN
                        smms.app API token
  -log LOG_PATH, --log-path LOG_PATH
                        output the log into a file

使用效果

在这里插入图片描述
在这里插入图片描述

自定义

  • 可以简单修改配置支持更多的图片文件。
  • 可以简单修改配置达到公网文件转储的功能。
  • 可以添加代码做到自定义图床。
  • 可以参考源代码做到更多自定义功能后。

ATFWUS 2023-07-08

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/733512.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯专题-真题版含答案-【大衍数列】【圆周率】【分糖果】【等额本金】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

Java csv文件上传下载中的相关转换

目录 一. 需求二. List<Entity>转List<List<String>>2.1 实体类2.2 转换 三. 上传csv文件转List<Map>3.1 csv文件3.2 前台3.3 实体类3.4 转换3.5 效果 一. 需求 &#x1f914;项目中遇到了两个需求 1.查询数据库&#xff0c;得到List<Entity>这…

快速搭建一个美观且易用的 Django 管理后台 —— django-xadmin

Django-xadmin&#xff08;也称为Xadmin&#xff09;是一个第三方的 Django 应用程序&#xff0c;它提供了一系列工具和模板来快速开发基于 Django 的后台管理界面。使用 Django-xadmin 可以用很少的代码就创建出一个强大的、具备实时查看数据、增、删、改等基本操作的 Django …

leetcode-704.二分查找

leetcode-704.二分查找 文章目录 leetcode-704.二分查找一.题目描述二.第1次代码提交(非二分查找)三.第2次代码提交(非二分查找&#xff0c;std::find和std::distance)四.第3次代码提交(二分查找)五.关于C中int型的奇数除以2 一.题目描述 二.第1次代码提交(非二分查找) class …

Linux 学习记录47(QT篇待完成)

Linux 学习记录47(QT篇) 本文目录 Linux 学习记录47(QT篇)一、将资源文件加载到项目1. 将资源文件放到项目下2. 添加到项目 二、信号与槽机制1. 信号与槽机制概念2. 信号与槽概念 三、四、思维导图练习1. main_page.cpp2. main.cpp3. main_page.h4. login.cpp5. login.h 一、将…

Delphi 11必备指南:使用Git集成Python4Delphi的完整步骤

在Delphi中使用Python有很多好处&#xff0c;可以扩展Delphi的功能并利用Python强大的科学计算和数据分析库。但是&#xff0c;为了将Python集成到Delphi中&#xff0c;我们需要安装Python for Delphi (P4D)组件套件。在这篇博客中&#xff0c;我将介绍如何使用Git安装P4D组件套…

N-122基于springboot,vue网上订餐系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术 &#xff1a;VueElementUI 服务端技术&#xff1a;springbootmybatisredis 本系统分用户前台和管理后台两部分&#xff0c;…

python_day3_list

数据容器 &#xff1a; list&#xff08;列表&#xff09; tuple&#xff08;元组&#xff09; str&#xff08;字符串&#xff09; set&#xff08;集合&#xff09; dict&#xff08;字典&#xff09; 列表 list name_list [java, c, python] print(name_list) print(type…

【LeetCode每日一题合集】2023.7.3-2023.7.9

文章目录 2023.7.3——445. 两数相加 II&#xff08;大数相加/高精度加法&#xff09;2023.7.4——2679. 矩阵中的和2023.7.5——2600. K 件物品的最大和&#xff08;贪心&#xff09;代码1——贪心模拟代码2——Java一行 2023.7.6——2178. 拆分成最多数目的正偶数之和&#x…

C. Vampiric Powers, anyone? - 思维+前缀和

分析&#xff1a; 添加新元素的操作可以理解为添加任意一段以n结尾的异或和&#xff0c;当原数组总异或和与新加的元素进行异或又可以得到剩余的前缀的异或和&#xff0c;假设新加的元素的值是i到n的异或和x&#xff0c;那么总异或和sumpre^x&#xff0c;所以sum^xpre&#xff…

Git gui教程---第四篇 Git gui的使用 添加文件,并提交

添加文件&#xff0c;并提交 新建一个txt文件点击扫描重新扫描&#xff0c;未缓存改动多了我们刚刚新建的文件。 点击缓存改动&#xff0c;文件位置变换。 如果缓存选错&#xff0c;想撤销&#xff0c;在菜单栏选择“提交”&#xff0c;“从本次提交撤销”&#xff0c;文件变更…

RocketMQ重置消费位点源码分析

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 背景 最近在使用RocketMQ的重置消费位点的时候经常出现报错&#xff0c;所以就打算研究下RocketMQ是如何重置消费者的消费位点的 RocketMQ版本 5.1.0Dashboard…

基于matlab使用虚幻引擎模拟环境设计激光雷达SLAM算法(附源码)

一、前言 此示例演示如何记录来自 3D 仿真环境的合成激光雷达传感器数据&#xff0c;以及如何使用记录的数据开发同步定位和映射 &#xff08;SLAM&#xff09; 算法。 自动驾驶工具箱在Simulink中集成了虚幻引擎模拟环境。与此仿真环境相关的 Simulink 模块可以在库中找到。…

C++常用库函数——表

文章目录 1、常用数学函数2、常用字符串处理函数3、其他常用函数4、实现键盘和文件输入/输出的成员函数 1、常用数学函数 头文件 #include 或者 #include <math.h> 2、常用字符串处理函数 头文件 #include 或者 #include <string.h> 3、其他常用函数 头文件#i…

电动汽车充电站监控系统设计_kaic

1 绪论 1.1 引言 汽车工业的告诉发展&#xff0c;汽车带来的环境污染、能源短缺、资源枯竭和安全等方面的问题越来越突出。为了保持国民经济的可持续发展&#xff0c;保护人类居住环境和能源供给&#xff0c;各国政府不惜巨资&#xff0c;投入大量人力、物力&#xff0c;寻…

Docker更新后无法启动容器

前提&#xff1a; 由于使用的操作系统版本比较低&#xff0c;centos7.3&#xff0c;准备更新操作系统&#xff0c;随后执行了yum update 操作&#xff0c;结果&#xff0c;docker也从忘记了的某个版本更新到了最新的 24版本&#xff0c;导致使用的容器也没有了&#xff0c;这下…

【离散数学】实践三 PageRank体验

文章目录 PageRank算法工作原理简化版本完整版本 graphs分析graphs代码 [^4] 结语 PageRank算法工作原理 算法原理1 简化版本 若页面B,C,D…N都有链接到页面A上&#xff0c;则页面A的PageRank值如下&#xff1a; P R ( A ) ( P R ( B ) L ( B ) P R ( C ) L ( C ) P R (…

ES6: 模版字符串

前言: ES5 中我们表示字符串的时候使用 或者 "" 作用: 在 ES6 中&#xff0c;我们还有一个东西可以表示字符串&#xff0c;就是 &#xff08;反引号&#xff09; let str hello worldconsole.log(typeof str) // string和单引号还有双引号的区别: 反引号可以换行…

【设计模式】设计模式简介+七大设计原则介绍

设计模式介绍 简介 设计模式是对软件设计中普遍存在(反复出现) 的各种问题&#xff0c;所提出的解决方案。 为什么学习设计模式 软件要做大&#xff0c;要先进行设计&#xff0c;才能保证其有高的稳定性、扩展性&#xff08;容易按照新的需求添加功能&#xff09;、复用性&…

MySQL-分库分表详解(五)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…