一个能将你markdown文件里的图片从一个地方迁移到另外一个图床的PicGo插件。
- 这个插件既可以被用在 命令行 版本的PicGo里也可以用在 GUI 版本的PicGo里!
- 它迁移支持本地相对路径或者绝对路径的图片,也支持迁移远端URL的图片。
- 它支持 markdown 文件中 markdown 格式的图片链接以及 html 格式的图片链接。(从 v1.3.0 开始支持)
举个例子,我们手上有一个 test.md
:
![](./js.jpg)
![](http://xxx.com/js.jpg)
<!-- 从 v1.3.0 开始,支持 img 标签的图片链接迁移 -->
<img src="http://yyy.com/js.jpg" />
如果你选择了 imgur
作为你的默认图床, 那么迁移过后:
![](https://i.imgur.com/xxx.jpg)
![](https://i.imgur.com/xxxx.jpg)
<!-- 从 v1.3.0 开始,支持 img 标签的图片链接迁移 -->
<img src="http://i.imgur.com/xxxxx.jpg" />
picgo-plugin-pic-migrater <= 1.2.2
需要 PicGo-GUI 版本 2.0.2 ~ 2.2.0, PicGo-Cli 版本 1.4.0 ~ 1.5.0-
.
picgo-plugin-pic-migrater > 1.2.2
需要 PicGo-GUI 版本 2.3.0 ~ 目前最新开发版
, PicGo-Cli 版本 1.5.0-alpha.1 ~ 目前最新alpha版本
.
picgo install pic-migrater
安装之后 pic-migrater
会注册一个叫做 migrate
的命令。
在插件设置页面搜索插件
使用之前请配置一下插件!
因为在迁移某个markdown文件里的图片之后会在同一个文件夹里生成一个新的markdown文件(防止原本文件丢失)。所以你要配置一下这个新的文件的文件名后缀。
picgo set plugin pic-migrater
打开插件配置页面,找到pic-migrator
的右下角配置按钮,点击配置
。
新文件名的后缀
举个例子,如果你原本的文件名为 2019.md
并且你将 newFileSuffix
设置成 _new
,那么迁移过后,将会生成一个叫做 2019_new.md
的新文件。
只包含
如果你配置了 include
字段,那么migrator只会迁移包含这个字段值的图片地址。
举个例子,如果你将 include
配置为 sinaimg.cn
,那么migrator只会迁移那些URL或者路径里带有sinaimg.cn
字符串的图片。
不包含
如果你配置了 exclude
字段,那么migrator将不会迁移包含这个字段值的图片地址。
举个例子,如果你将 exclude
配置为 sinaimg.cn
,那么migrator不会迁移那些URL或者路径里带有sinaimg.cn
字符串的图片。
从 v1.3.0 开始
如果你吧 oldContentWriteToNewFile
配置成 true
,那么旧的文件内容将会写入新的文件中,而迁移的结果将会写入旧的文件中。
$ picgo migrate -h
Usage: migrate [options] <files...>
migrating pictures url from markdown files
Options:
-h, --help output usage information
Note:
You should configurate this plugin first!
picgo set plugin pic-migrater
Examples:
# migrate file or files
$ picgo migrate ./test.md ./test1.md
# migrate markdown files in folder
$ picgo migrate ./test/
const { PicGo } = require('picgo')
const PluginMigrater = require('picgo-plugin-pic-migrater')
const picgo = new PicGo()
picgo.setConfig({
'picgo-plugin-pic-migrater': {
newFileSuffix: '_new',
include: '',
exclude: ''
}
})
const plugin = PluginMigrater(picgo)
plugin.migrateFiles(['/xxx/yyy.md']) // { total: number, success: number }
感谢 @Moyf 提供了本插件最初的python版本的构想。