@flowershow/remark-wiki-link

中文文档
4.0.1发布于 2026/10/26MITTypeScriptESM + CJS构建来源已验证近 30 天下载 5.2万

解析并渲染出wiki风格的链接,特别是Obsidian风格链接.

中文使用文档
文档目录14 节
  1. 支持的特性
  2. 安装
  3. 使用量
  4. 配置选项
  5. format
  6. files
  7. permalinks
  8. className
  9. newClassName
  10. urlResolver
  11. aliasDivider
  12. 生成文件列表
  13. 与 Obsidian 永久链接使用
  14. 正在测试

备注-wiki-link

remark 解析和渲染wiki风格链接的插件 [[...]] 财务报告和审定财务报表 ![[...]] 在马克下。 这不管你有多厉害 财务报告和审定财务报表 它特别是为了支持"Obsidian"风格链接.

支持的特性

  • 支助 [[Internal link]]
  • 支助 [[Internal link|With custom text]]
  • 支助 [[Internal link#heading]]
  • 支助 [[Internal link#heading|With custom text]]
  • 支助 ![[Image.png]] (带有可选维度的图像: ![[image.jpg|200x300]](中文(简体) )
  • 支助 ![[Video.mp4]] (带有可选维度的视频: ![[video.mp4|640x480]](中文(简体) )
  • 支助 ![[Audio.mp3]]
  • 支助 ![[Document.pdf]]

未来支助:

  • 支助 ![[Embed note]]
  • 支助 ![[Embed note#heading]]

安装

npm install @flowershow/remark-wiki-link

使用量

import { unified } from "unified";
import remarkParse from "remark-parse";
import wikiLinkPlugin from "@flowershow/remark-wiki-link";

const processor = unified().use(remarkParse).use(wikiLinkPlugin);

配置选项

format

类型 : "regular" | "shortestPossible" 默认 : "shortestPossible"

维基链接目标与文件的匹配控制 :

  • "regular": 精确路径匹配 。 维基链接目标必须精确匹配文件路径(不包括扩展).
    • 示例 [[blog/my-post]] 只会匹配 blog/my-post.md
  • "shortestPossible": Obsidian-风格相配. 维基链接目标与文件路径的结尾相匹配,并使用最短的匹配路径.
    • 示例 [[my-post]] 可以匹配两者 blog/my-post.md 财务报告和审定财务报表 docs/my-post.md,但将决心 任何有短路径
    • 您可以使用短维基链接, 如 [[my-post]] 而不是完全的路径像 [[blog/my-post]]

files

类型 : Array<string> 默认 : []

用于匹配wikilinks的文件路径列表. 支持两者 .md 财务报告和审定财务报表 .mdx 文档。 没有匹配文件的 Wikilink 将拥有 new 课.

(当使用时) format: "shortestPossible",此列表用于解决被缩短的路径到其完整路径. )

类型 : Record<string, string> 默认 : {}

文件路径图到它们自定义的永久链接(例如. { "path/to/file.md": "/custom-permalink" }) (中文(简体) ). 当一个wikilink匹配一个已定义了 permalink 的文件时, 将使用 permalink 代替 urlResolver。这对 Obsidian 风格的 permalink 支持有用,因为您需要特定文件的 URL .

示例

const processor = unified()
  .use(remarkParse)
  .use(wikiLinkPlugin, {
    files: ["blog/my-post.md", "docs/guide.md"],
    permalinks: {
      "blog/my-post.md": "/blog/custom-url",
      "docs/guide.md": "/documentation/guide",
    },
  });

使用此配置 :

  • [[blog/my-post]] 将链接到 /blog/custom-url
  • [[blog/my-post#heading]] 将链接到 /blog/custom-url#heading
  • [[docs/guide]] 将链接到 /documentation/guide

className

类型 : string 默认 : "internal"

类名添加到所有wiki链接并嵌入了节点.

newClassName

类型 : string 默认 : "new"

分类名称添加到没有匹配的 permalink 的节点( 已通过 ) permalinks 选项).

urlResolver

类型 : (name: string) => string 默认 : (name: string) => name

一个能解决一个维基链接(或嵌入)目标到URL路径的函数. 目标在 [[target|alias]] 或者说 ![[target]]。 。 。 .

aliasDivider

类型 : string 默认 : "|"

在解析和字符串化期间,用于将链接目标与其在维基链接中的别名相分离的字符. 例如,在 [[target|alias]],分词是 |。 。 。 .

此选项允许您使用不同的维基链接语法. 例如,你可以使用 : 设置为分隔符 aliasDivider: ":",将链接解析和字符串为 [[target:alias]]。 。 。 .

生成文件列表

如果您在维基链接中使用了尽可能短的路径格式,则需要设置 option.format: "shortestPossible" ,并向插件提供您内容文件夹中的文件列表 option.files您可以使用自己的脚本生成此列表,也可以使用类似文件系统工具 glob数字 :

import { unified } from "unified";
import remarkParse from "remark-parse";
import wikiLinkPlugin from "@flowershow/remark-wiki-link";
import glob from "glob";

// Get all markdown files (both .md and .mdx)
const files = glob.sync("**/*.{md,mdx}", { cwd: "content" });

const processor = unified().use(remarkParse).use(wikiLinkPlugin, {
  format: "shortestPossible",
  files,
});

如果您正在使用 Obsidian 并想要将特定文件映射到自定义 URL( permarinks), 您可以使用 permalinks 选项 :

import { unified } from "unified";
import remarkParse from "remark-parse";
import wikiLinkPlugin from "@flowershow/remark-wiki-link";
import glob from "glob";

// Get all markdown files (both .md and .mdx)
const files = glob.sync("**/*.{md,mdx}", { cwd: "content" });

// Create a map of file paths to their custom permalinks
const permalinks = {
  "blog/2024/my-post.md": "/blog/my-custom-url",
  "docs/getting-started.md": "/docs/start",
  // ... more mappings
};

const processor = unified().use(remarkParse).use(wikiLinkPlugin, {
  format: "shortestPossible",
  files,
  permalinks,
});

正在测试

npm test

版本与发布记录

@flowershow/remark-wiki-link 共发布 24 个版本,首次发布于 2022/12/21;过去 12 个月发布了 7 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.0.1latest2026/10/2621 天前
4.0.02026/06/244 个月前
3.4.02026/02/188 个月前
3.3.12025/12/0811 个月前
3.3.02025/12/0811 个月前
3.2.12025/11/2011 个月前

关于 @flowershow/remark-wiki-link 的常见问题

@flowershow/remark-wiki-link 是什么?

解析并渲染出wiki风格的链接,特别是Obsidian风格链接.

如何安装 @flowershow/remark-wiki-link?

在项目目录运行 npm install @flowershow/remark-wiki-link,或使用 pnpm add / yarn add / bun add。

@flowershow/remark-wiki-link 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@flowershow/remark-wiki-link 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@flowershow/remark-wiki-link 可以商用吗?

@flowershow/remark-wiki-link 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@flowershow/remark-wiki-link 的下载量有多少?

根据 npm 官方下载统计,@flowershow/remark-wiki-link 在 2026/10/15 – 2026/11/13 这 30 天内被下载 52,085 次,日均约 1,736 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@flowershow/remark-wiki-link 还在维护吗?

最新版本 4.0.1 发布于 2026/10/26(21 天前);至今共发布 24 个版本,其中过去 12 个月发布了 7 个;首次发布于 2022/12/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。