Greasy Fork

Greasy Fork is available in English.

copy-notion-page-content-as-markdown

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

当前为 2023-10-16 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
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 事件;

参考资料