remark-images-download

2.8.3 • Public • Published

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/',
    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.

  • 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

Keywords

install

npm i remark-images-download

Downloadsweekly downloads

35

version

2.8.3

license

MIT

repository

Gitgithub

last publish

collaborators

  • avatar
  • avatar
Report a vulnerability