Skip to content

feat: 粘贴链接支持转为 Notion 风格书签卡片 - #1176

Open
ushaio wants to merge 2 commits into
codexu:devfrom
ushaio:feat/bookmark_card
Open

feat: 粘贴链接支持转为 Notion 风格书签卡片#1176
ushaio wants to merge 2 commits into
codexu:devfrom
ushaio:feat/bookmark_card

Conversation

@ushaio

@ushaio ushaio commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

功能说明

粘贴链接时可像 Notion 一样将其转换为书签卡片,自动抓取网页标题、描述、站点名与封面图。

  • 在编辑器中粘贴纯 URL 时,自动插入为链接并选中,气泡菜单浮窗随即弹出,在"打开链接"右侧新增"粘贴为卡片"按钮
  • 光标停在任何已有 http(s) 链接上(包括点击链接后的 [文本](url) 源码编辑态)时,同样可通过该按钮转换
  • 卡片展示标题、描述(两行截断)、favicon + 站点名,右侧为 og:image 封面(无则隐藏);点击卡片用系统浏览器打开
  • 卡片悬停操作:刷新元数据 / 转回普通链接

实现

  • 存储格式:由于笔记为 .md 文件,卡片以 ```bookmark 代码块内嵌 JSON(url/title/description/icon/cover/siteName)形式存储,Markdown 往返无损,元数据本地化、打开文件无需重新联网;在其他渲染器中降级为代码块显示
  • 节点扩展:新增 bookmarkCardbookmark-extension.tsx),结构参照现有 mermaid 扩展(atom 节点 + NodeView + markdownTokenizer/renderMarkdown/parseMarkdown)
  • 元数据抓取:复用现有 capturePublicWebPage()(20s 超时);抓取失败(登录墙/验证码等)降级为域名简卡片并可点刷新重试;保存时尚未完成抓取的卡片,下次打开文件自动续抓
  • 预览/导出StreamdownRenderer 注册了 bookmark 代码块渲染,预览与 PDF 导出显示同样式卡片(JSON 非法时降级为普通代码块)
  • 补充 en / zh / zh-TW / ja / pt-BR 五种语言文案

测试

  • 粘贴纯 URL → 浮窗 → 转卡片、已有链接与源码编辑态转卡片、刷新、转回链接、保存重开续抓均已在本地应用中验证
  • tsc --noEmit / eslint 通过

截图

image image

ushaio added 2 commits July 31, 2026 11:47
- 新增 bookmarkCard 节点扩展:以 ```bookmark 代码块(JSON)形式存储于
  Markdown,卡片展示标题/描述/站点/封面,点击用系统浏览器打开,
  支持刷新元数据与转回普通链接
- 粘贴纯 URL 时自动插入链接并选中,触发气泡菜单浮窗;
  在"打开链接"右侧新增"粘贴为卡片"按钮
- 元数据抓取复用 web-capture(标题/摘要/og:image/站点名),
  失败时降级为域名简卡片并可重试;保存时未完成抓取的卡片
  下次打开自动续抓
- StreamdownRenderer 预览/导出同步渲染书签卡片
- 补充五种语言文案
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant