copy-notion-page-content-as-markdown

一键复制 Notion 页面内容为标准 Markdown 格式。

目前為 2023-10-16 提交的版本,檢視 最新版本

作者
Seven Steven
評價
0 0 0
版本
2.0
建立日期
2023-10-09
更新日期
2023-10-16
尺寸
10.9 KB
授權條款
MIT
腳本執行於

一键复制 Notion 页面内容为标准 Markdown 格式

说明

一键复制 Notion 页面内容为标准 Markdown 格式。

分析

插件装载时机

  • 对于 view / database 等页面:Notion Page 可能会显示在 Center Peek / Side Peek 中。需要动态监听最近的祖先元素子节点变动,动态装载/卸载插件。

页面结构如下:

  • div#notion-app

    • div.notion-app-inner
      • div.notion-cursor-listener 到这里是一定会有,再往下是 Peek,不一定会有
      • div.notion-peek-renderer
        • div.layout.layout-side-peek
        • div.notion-page-content
    • 对于正常的 Notion Page 页面,只需要装载插件就好,不需要卸载。

结构如下:

  • div#notion-app
    • div.notion-app-inner
    • div.notion-cursor-listener
      • main.notion-frame
      • div.notion-page-content

综上,我们只需要这样做:

  • 开局就找 .notion-page-content
    • 如果找得到,装载插件,结束
    • 如果找不到,不做任何事情,结束。
  • 同步查找 #notion-app main.notion-frame .notion-page-content
    • 如果找得到,代表当前页面是正常的 Notion Page 页面,装载插件
    • 如果找不到,代表当前页面是 view / database 页面, 给 #notion-app 添加 observe,监听其子节点变动,根据子节点变动情况动态装载 / 卸载插件。结束。

插件行为

  • 先给 window 追加一个类型为 copyEventListener,事件触发时,读取剪切板内容并修正 Markdown 格式;
  • 往页面注入一个“复制”按钮,用户点击按钮时,自动选中 Notion 页面内容并触发 copy 事件;

参考资料

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址