花了一整天写了个下载markdown图片到本地的库🆒

2,111 阅读1分钟

🖼️img-localizer

🖼️Fastly list or localize the images in markdown

效果图

命令行切换到任意含有markdown文档的目录中,执行 imgloc 即可一键下载并替换所有markdown中的图片链接🔗。

适用于 clone的github项目文档中的图片、爬虫生成的markdown中的外链图片 等。

详细文档请前往 gylidian/markdown-image-localizer 查看。

该模块我已经上传到 npm 上了,直接安装即可。

😳欢迎米娜桑来pull request哇呜呜呜,给个star也好鸭 ( •̀ ω •́) ✌

话说回来,有什么更好的思路找出或替换图片链接呢,我想到用AST语法树筛选图片。

Getting Started

In Node.js environment

Install with npm

npm install --save img-localizer

or you prefer yarn

yarn add img-localizer

Importing

const imgLoc = require("img-localizer"); // CommonJS environment
import imgLoc from "img-localizer"; // ESM supporting environment

With the CLI

Installation

npm i -g img-localizer

Usage

直接切换到含有markdown文档的目录中,

执行 imgloc 命令即可,

图片将会默认下载到该目录下的 assets 目录中。

Example

const dir = path.resolve(__dirname, "../markdown文件夹");

// 解析出一个目录中所有文件对应的所有图片链接
const dirImgObjArr = await imgLoc.extractDir(dir);

let current = 0,
    total = dirImgObjArr.length;
  
for (let dirImgObj of dirImgObjArr) {
    current++;
    console.log(
        `(${current}/${total}) 开始下载markdown图片 ${dirImgObj.path}`
    );

    // 下载单个文件对应的所有图片链接
    const res = await imgLoc.downDir(dirImgObj, {
        onSuccess: function(index, filename) {
            console.log(`  ${index}/${dirImgObj.image.length} 图片下载成功 ${filename}`);
        }
    });

    // 替换单个markdown文件中的图片链接
    imgLoc.replaceDir(res);

    console.log(`(${current}/${total}) markdown图片下载成功\n`);
}