Skip to content

dyedd/RemoteDownload

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

RemoteDownload

Typecho 粘贴自动下载远程附件插件,这是我在 23 年做的一个小玩具。

Version Typecho

简介

这是一款专为 Typecho 打造的生产力插件,实现了外链附件的自动识别与下载。当你从 Typora、Markdown 编辑器或其他网站复制内容到 Typecho 编辑器时,插件会自动捕获其中的外链资源,无需手动下载、上传,真正做到粘贴即完成

为什么开发这个插件?

问题的起源

如果你也有这样的写作习惯:

  • 在 Typora 或其他 Markdown 编辑器中撰写文章
  • 文章中插入了大量图片或附件
  • 复制到 Typecho 后,需要逐个下载外链图片,再重新上传

这个繁琐的流程,极大地打击了写作的热情。

现有方案的不足

我曾尝试过 PicGo 等工具,但 Typecho 的上传 API 抽离非常复杂,比如需要手动判断 cid 字段,而在编辑器中写作时,我们根本无法预知未自增的 cid 是多少。

我也发现了 AutoSaveImage 插件,但它存在以下问题:

  1. 破坏目录结构 —— 自己创建目录,无法保持 Typecho 原有的 年-月 格式
  2. 无法写入数据库 —— 下载的文件无法在后台管理,像孤儿一样存在
  3. 无法兼容其他插件 —— 直接使用 curl 下载,无法配合 COS、OSS 等插件工作
  4. 只支持图片 —— 无法下载其他类型的附件

本插件的解决方案

于是,RemoteDownload 诞生了。它的核心思路是:模拟 Typecho 原生的上传流程,让下载的附件与手动上传的文件享受同等待遇。


功能特点

核心功能

  • 智能识别外链 —— 粘贴内容时自动检测外链资源,立即下载
  • 保留本地链接 —— 已经上传的本地链接不做任何处理
  • 完美融入 Typecho —— 调用原生上传逻辑,保持目录结构、数据库记录
  • 兼容其他插件 —— 支持 COS、OSS、水印等插件的 Hook 机制
  • 支持多种文件类型 —— 不仅限于图片,只要能 Base64 编码的附件都能下载
  • 可配置 Ctrl 键触发 —— 可选择按住 Ctrl 键才启用粘贴下载功能

隐藏的额外价值

  1. 自动压缩 —— 如果外链来源已经过压缩处理,相当于自带压缩功能
  2. 自动水印 —— 如果外链已经添加水印,省去了本地水印插件的步骤
  3. 跨平台迁移 —— 从 CSDN、掘金等平台迁移文章时,自动转存所有图片
  4. 统一管理 —— 所有下载的附件都记录在数据库中,便于后台管理和删除

使用演示

demo


安装方法

手动安装

  1. 下载本插件的压缩包
  2. 解压后将 RemoteDownload 文件夹上传到 /usr/plugins/ 目录
  3. 在 Typecho 后台「控制台 → 插件」中启用插件

Git 安装

cd /path/to/typecho/usr/plugins
git clone https://github.com/dyedd/RemoteDownload.git

然后在 Typecho 后台启用插件。


配置说明

插件启用后,进入插件配置页面,你可以看到以下选项:

配置界面

配置项说明

配置项 说明 默认值
Ctrl 附加键设置 是否需要按住 Ctrl 键才触发粘贴下载 禁用
处理的文件类型 允许下载的文件扩展名,用 | 分隔 jpg|png|gif|bmp|jpeg

使用方法

  1. 在 Typora 或其他编辑器中复制包含外链图片的 Markdown 内容
  2. 粘贴到 Typecho 编辑器中
  3. 插件自动识别外链并下载,无需任何手动操作
  4. 下载完成后,附件会出现在右侧的「附件管理」列表中

注意事项

  • 只处理外链资源,本地链接不会重复下载
  • 下载的附件会写入数据库,可在后台删除管理
  • 支持自定义文件类型,但需要确保 Typecho 支持该类型
  • 如果外链资源无法访问,不会影响文章保存

致谢

感谢所有使用和反馈的用户,让这个插件不断完善。

如果你觉得这个插件有用,欢迎 Star ⭐️ 支持!

About

typecho粘贴自动下载远程附件

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages