PicGo / picgo-plugin-pic-migrater

:truck:A PicGo plugin for pictures in markdown files migrating from one picBed to another one.
MIT License
145 stars 16 forks source link
picgo picgo-plugin

picgo-plugin-pic-migrater

PicGo Convention

A PicGo plugin for pictures in markdown files migrating from one picBed to another one.

中文说明

Features

  1. This plugin can be used in CLI & GUI version of PicGo!
  2. It supports absolute and relative path of images, and the url path of images.
  3. It supports both markdown format and html format image url in markdown file. (Since v1.3.0)

For example, a test.md:

![](./js.jpg)
![](http://xxx.com/js.jpg)

<!-- since v1.3.0, support migrating img src -->
<img src="http://yyy.com/js.jpg" />

if you choose imgur as your migrated picBed, after migrating:

![](https://i.imgur.com/xxx.jpg)
![](https://i.imgur.com/xxxx.jpg)

<!-- since v1.3.0, support migrating img src -->
<img src="http://i.imgur.com/xxxxx.jpg" />

Version required

picgo-plugin-pic-migrater <= 1.2.2 requires PicGo-GUI version 2.0.2 ~ 2.2.0, PicGo-Cli version 1.4.0 ~ 1.5.0-.

picgo-plugin-pic-migrater > 1.2.2 requires PicGo-GUI version 2.3.0 ~ latest beta, PicGo-Cli version 1.5.0-alpha.1 ~ latest alpha.

Installation

CLI

picgo install pic-migrater

Then pic-migrater will registe a command named migrate.

GUI

search for pic-migrater

Configuration

Please configurate this plugin first!

After migrating, a new markdown file will be written in the same folder. So you should configurate this new file name's suffix first.

CLI

picgo set plugin pic-migrater

GUI

Open the setting page in the menu of the plugin.

Details

newFileSuffix

For example, if your origin file named 2019.md & if you set the newFileSuffix to _new, then after migrating, a new file named 2019_new.md will be created.

include

If you set the include configuration then migrator will only migrate the files' path or url which match the include.

For example, if your set the include to sinaimg.cn, then migrator will only migrate the url or path includes sinaimg.cn.

exclude

If you set the exclude configuration then migrator will only migrate the files' path or url which don't match the exclude.

For example, if your set the exclude to sinaimg.cn, then migrator will only migrate the url or path doesn't includes sinaimg.cn.

oldContentWriteToNewFile

Since v1.3.0

If you set the oldContentWriteToNewFile to true, then the old content will be written to the new file and the migrated content will be written to the old file.

Usage

CLI

$ 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/

GUI

Node.js Project(v1.2.3+)

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 }

Thanks

Thanks to @Moyf with the python version of this plugin.