3.0.4 • Published 25 days ago

remark-images-download v3.0.4

Weekly downloads
453
License
MIT
Repository
github
Last release
25 days ago

remark-images-download Build Status Coverage Status

This plugin downloads images to a custom directory, replacing images URLs with the path to the downloaded file.

Installation

npm:

npm install remark-images-download

Usage

Dependencies:

const unified = require('unified')
const remarkParse = require('remark-parse')
const stringify = require('rehype-stringify')
const remark2rehype = require('remark-rehype')

const remarkImagesDownload = require('remark-images-download')

Usage:

unified()
  .use(remarkParse)
  .use(remarkIframe,
  .use(remarkImagesDownload, {
    disabled: true,
    downloadDestination: './img/',
    defaultImagePath: 'black.png',
    defaultOn: {
      statusCode: true,
      mimeType: false,
      fileTooBig: false,
    },
    maxlength: 1000000,
    dirSizeLimit: 10000000,
    localUrlToLocalPath: (localUrl) => localPath
  })
  .use(remark2rehype)
  .use(stringify)

Configuration options:

All options are optional.

  • disabled: bool, default: false

    If true, disables the plugin.

  • downloadDestination: string, default: /tmp

    Parent destination folder for downloads.

  • defaultImagePath: string or boolean, default: false

    Image path to fallback to for images that couldn't be found. Set to false or keep default value to disable.

  • defaultOn: object, with properties,

    Cases when the default image should be used.

    • statusCode: boolean, default false

      The status code is different than 200.

    • mimeType: boolean, default false

      The MIME type does not match an image.

    • fileTooBig: boolean, default false

      The file size exceed the maxFileSize limit.

  • maxFileLength: number, default: 1000000

    Any file with a bigger size than this number (in bytes) will be skipped.

  • dirSizeLimit: number, default: 10000000

    Download directory size limit (in bytes). When reached, subsequent images are skipped.

  • localUrlToLocalPath: (localUrl: string): string => localPath or [from: string, to: string], default: <none> (skip local images)

    If provided, local images referenced in Markdown source (such as ![](/img/example.png)) will be copied to downloadDestination after applying this function to the path to obtain the local location of example.png, e.g. localUrlToLocalPath('/img/example.png') === '/opt/assets/example.png'. It will get renamed to a shortId just like any downloaded image.

    In case a two-element array is provided, the string from will get replaced by to using the following RegExp:

    '/img/example.png'.replace(new RegExp(`^${from}`), to)

    If not provided, local images will not end up in downloadDestination.

Example

Two small images:
![](https://example.com/example.png)
![](https://example.com/example2.png)

And an image of 1Tb!
![](https://example.com/example_1Tb.png)

with the previous configuration remark-images-download will download the two first images in img/UUID/otherUUID.png and img/UUID/yetAnotherUUID.png where UUID is a random string and it does not download example_1Tb.png because the file is too large.

vfile.data.imageDir will be set to the path to the folder where images were downloaded.

License

MIT © Zeste de Savoir

3.0.4

25 days ago

3.0.3

3 months ago

3.0.2

2 years ago

3.1.0

3 years ago

3.0.1

3 years ago

3.0.0

4 years ago

2.9.3

4 years ago

2.9.0

5 years ago

2.8.8

5 years ago

2.8.7

5 years ago

2.8.6

5 years ago

2.8.5

5 years ago

2.8.4

5 years ago

2.8.3

6 years ago

2.8.2

6 years ago

2.8.1

6 years ago

2.8.0

6 years ago

2.7.3

6 years ago

2.7.2

6 years ago

2.7.1

6 years ago

2.7.0

6 years ago

2.6.0

6 years ago

2.5.1

6 years ago

2.5.0

6 years ago

2.4.2

6 years ago

2.4.1

6 years ago

2.4.0

6 years ago

2.3.0

6 years ago

2.2.0

6 years ago

2.1.0

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.0.0

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago