node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


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.



npm install remark-images-download



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')


  .use(remarkImagesDownload, {
    disabled: true,
    downloadDestination: './img/',
    maxlength: 1000000,
    dirSizeLimit: 10000000,
    localUrlToLocalPath: (localUrl) => localPath

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.


Two small images:
And an image of 1Tb!

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. will be set to the path to the folder where images were downloaded.


MIT © Zeste de Savoir