Noddity-lingifier 是一个使用 npm 包管理器的前端类技术,它可以将一个文件中的相对链接转换成绝对链接,并支持 Markdown 这样的轻量级标记语言。
安装
首先需要安装 Node.js 以及 npm,还需要一个已经完成的项目。
然后通过以下命令来安装 noddity-linkifier:
npm install noddity-linkifier --save-dev
使用
安装完成之后,可以在项目的任何位置调用 noddity-linkifier。
-- -------------------- ---- ------- ----- ------- - ----------------------------- ----- -- - -------------- ----- ------------ - ------------------------------------------- --------------------- ------- -------- -- - -- ------- - ---------------------- -------- ------- ------- - --------------------- ---
在上面的示例中,我们首先引入 noddity-linkifier 和 fs 模块。然后使用 fs 读取 article.md 这个文件的内容,并将其转成字符串格式。
接下来,调用 linkify 函数,将 fileContents 作为参数传进去。linkify 函数还接收一个回调函数作为参数,当处理完毕之后会调用这个回调函数。
需要特别注意的是,linkify 函数会返回处理之后的内容,也就是说在回调函数中可以直接使用 content。
深入理解
在理解 noddity-linkifier 的使用方法之后,我们需要进一步了解它的一些特性。
预设默认的目录
noddity-linkifier 在处理相对链接的时候,默认使用的目录是传入文件的目录。如果想要修改默认的目录,可以使用 setPrefix 函数。
linkify.setPrefix({ filePath: './path/to/file.md' });
在上面的示例中,我们设置了 filePath 的值为 './path/to/file.md'。这个设置会在处理相对链接的时候,将当前的默认目录改成 './path/to'。
支持 Markdown 语法
由于 Markdown 语法中,链接有两种写法,所以 noddity-linkifier 也提供了两种方式来支持 Markdown 语法。
1. Markdown-style 风格
在 Markdown 语法中,链接有一种类似于如下链接的写法:
[这里是链接的文字](http://这里是链接的url)
在 noddity-linkifier 中,使用 Markdown-style 风格支持相对链接的写法也非常容易。
[这里是链接的文字](./path/to/file.md)
在上述示例中,链接的路径使用了相对路径。在进行预处理时,noddity-linkifier 就可以根据传入文件的目录,帮助我们将相对链接转成绝对链接。
2. Reference-style 风格
在 Markdown 中,还存在另外一种写法,叫做 Reference-style 链接。
[这里是链接的文字][1] [1]: http://这里是链接的url
在 noddity-linkifier 中支持相对链接的写法,我们只需要简单的调整这种写法,就可以完成相对链接的处理。
[这里是链接的文字][filePath] [filePath]: ./path/to/file.md
在 noddity-linkifier 中,'[filePath]' 将会在处理时自动被替换成绝对路径。
能够快速处理大量文件
noddity-linkifier 除了可以处理单一文件之外,还可以处理一整个目录下的所有文件。
-- -------------------- ---- ------- ----- -- - -------------- ----- ---------------- - ----------------------------- ------------------ --------- ------------------- ------------ ------- ---------- ---- -- --------------- - -- ------- - ------ --------------------- - -------------------- ----- ------------- ---
在上述示例中,我们传入了一个被称为“配置对象”的参数。这是一个很有用的形式,可以让 noddity-linkifier 处理基于这个配置所指定的一整个目录下的所有想要处理的文件。
在配置中,我们传入了 basePath,filePattern 和 recursive,其中:
- basePath 表示处理的文件目录。
- filePattern 表示文件类型的匹配,这里使用的是 Markdown 文件 '/*.md'。
- recursive 表示是否递归整个目录来查找这些文件和文件夹。
总结
通过本文的学习,我们不仅掌握了 noddity-linkifier 的使用方法,它的深度和学习特性,更能够将它应用到实际场景中去。
到目前为止,我们已经了解了 npm 包 noddity-linkifier 的一些基本用法和特性。通过它,我们能够优雅地处理相对链接,避免在之后修改链接的时候出现继续修改引用这个链接的其他文件的场景。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/181900