惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Engineering at Meta
Engineering at Meta
博客园_首页
J
Java Code Geeks
Jina AI
Jina AI
B
Blog RSS Feed
量子位
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
L
LangChain Blog
Microsoft Security Blog
Microsoft Security Blog
小众软件
小众软件
博客园 - 聂微东
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
I
InfoQ
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
爱范儿
爱范儿
Y
Y Combinator Blog
Vercel News
Vercel News
雷峰网
雷峰网

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次
imba97 Blog
imba97 · 2026-05-31 · via BlogFinder

前因后果

上次我们探讨了本博客使用 Vite SSG 的构建方案,可以将 Markdown 转为 Vue 组件,其中底层就是基于,这是一个用于解析 Markdown 的库。同时它提供了编写插件的能力,可以方便地扩展 Markdown 的功能

于是我实现了一个一直以来想实现的功能

我的需求

在博客中会有一些跳转到博客其他文章的链接,常见写法一般是这样的固定写法

但如果文章标题或者 /post 路径部分发生了变化

比如之前的重构,从 /archives 改成了 /post,那么首先不可避免的需要将之前的链接设置永久重定向,其次还需要将文章中的链接进行修改。虽然可以不改,但是我还是想处理一下

如果是修改了标题,比如想更正格式、大小写之类的,那么所有使用的地方都需要修改。虽说有一键替换和 AI 处理,但每次这么改链接一点也不优雅

解决方案

于是我写了个,Markdown It 的链接扩展插件,目前实现了两个我常用的链接扩展

一个是引用一篇博客内的文章时,只需要写 {link:post:814} 即可,它会自动转换为“《Hexo 迁移至 Vite SSG》”。未来即使标题变化,也不需要手动修改引用的地方

第二个是我常用的 GitHub 链接,我可以直接使用 {link:github:imba97/blog-vite},它会自动转换为“imba97/blog-vite

本质上这是个函数 {link:类型:参数1,参数2,...},并预留了适配器,你可以很方便地扩展其他类型

import { AbstractLink } from 'markdown-it-extra-link/abstract'

class BilibiliLinkType extends AbstractLink {
  readonly type = 'bili'

  protected handle(bvid = '') {
    bvid = bvid.trim()
    if (!bvid)
      return null
    return {
      href: `https://www.bilibili.com/video/${bvid}`,
      text: `Bilibili ${bvid}`
    }
  }
}

// 在配置中注册
md.use(MarkdownItExtraLink, {
  customTypes: [
    new BilibiliLinkType()
  ]
})

除此之外还有 RSS 支持以及 postgithub 的配置,详情可见