markdown图片上传工具(含Typora自定义命令图片上传功能)

该工具支持将Markdown笔记中的图片上传至CSDN、Gitee或FTP服务器,解决外链图片防盗链问题。用户可通过GUI界面或Typora自定义命令使用,支持图片下载、替换及新文件生成。配置文件包括CSDN的cookie信息,以及FTP服务器设置。
摘要由CSDN通过智能技术生成

背景

最近在找工作,闲来无事,准备把之前的写学习的笔记上传到CSDN上。看到CSDN发布界面上有导入markdown文件功能,试了一下发现图片不能显示
报错:“外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X8OFzPsM-1689014504327)(imgs/image-20230710023504050.png)”。
image.png
想了一下CSDN编辑界面应该是读不到我本地的图片,所以做了个本地上传到图床的工具
现在支持上传的文件服务器:ftp,gitee,csdn。

  • 使用csdn图床,需要在app.properties中配置自己的upload.csdn.cookie=

    注: CSDN作为上传服务,不修改cookie生成水印不是自己的

  • 使用gitee图床,可以参照这篇文章:利用Gitee搭建免费图床(详细教程)

  • 使用ftp作为图床,需要有服务器,配置ftp服务,并且配置nginx直接访问ftp文件储存路径

附上码云gitee地址

运行图

  • Typora上传图片自定义命令程序运行结果在这里插入图片描述

  • 上传图片并生成新文件窗口运行程序
    在这里插入图片描述

  • 上传图片并生成新文件控制台运行程序在这里插入图片描述

版本迭代

1.0.0版本:
  1. 上传到图床,替换成Html的标签并生成新文件; ;
  2. 上传到图床,替换成新URL并生成新文件;
  3. 下载图片到本地,替换成本地URL并生成新文件;
  4. 只下载到本地;
2.0.0版本:
  1. 新增GUI窗口
2.1.1版本:
  1. 新增typora自定义命令上传图片功能
    • 不需要下载图床上传工具

安装教程

  1. 下载压缩包或安装包(由于我是win10,不可以打包mac安装程序,只能下载mdius-x.x.x-mac.tar.gz直接解压运行,或者自行下载源码打包)

  2. 解压或安装到到你中意的目录

  3. linux/mac 安装或者解压后,注意授权安装文件夹为所有用户可读取写入 例: chmod 777 /opt/mdius,

  4. 找到conf目录下的配置文件,修改成你自己的git地址或ftp或CSDN配置信息
    image.png

GUI界面/typora自定义上传/控制台 使用说明

启动不需要java环境,文件夹中有瘦身过后的jre

1.GUI界面使用

1.1. 点击mdius.exe启动
image.png

1.2. 选择功能

image.png

1.3. 输入本地文件夹路径(要读取的,有markdown文件的文件夹)

image.png

1.4. 输入你要替换的url,也就是你可以访问到的图片资源地址 (我这里是用csdn)

image.png

1.5. 选择上传服务的类型

image.png

1.6. 执行结束后会生成替换url的新文件

image.png

2.typora自定义上传命令使用

2.1. 找到conf目录下的app.properties中配置文件

  • 设置默认上传服务 upload.type=

  • 设置上传后返回的URL file.image_bed_url=
    img.png

  • ftp/csdn/gitee配置
    image.png

2.2. typora图像设置

image-20230915031202340

  • 默认上传服务命令:

    @chcp 65001 >nul & cmd /d/s/c call "D:\Program Files\mdius\mdius-console-run.cmd" -upload
    
  • 指定上传服务命令(服务配置见2.1):

    @chcp 65001 >nul & cmd /d/s/c call "D:\Program Files\mdius\mdius-console-run.cmd" -upload -csdn
    

2.3. 点击[验证图片上传选项]按钮,验证成功后即可使用

image-20230915031340342

3.控制台使用

3.1. 运行mdius-console-run.cmd/mdius-console-run.sh脚本
image.png

3.2. 选择功能

image.png

3.3. 输入本地文件夹路径(要读取的,有markdown文件的文件夹)

image.png

3.4. 输入你要替换的url,也就是你可以访问到的图片资源地址 (我这里是用ftp上传,然后用nginx设置的静态资源访问,当然也可以用gitee pages服务进行静态资源的访问)

image.png

3.5. 选择上传服务的类型

image.png

3.6. 执行结束后会生成替换url的新文件

image.png

项目结构

│          
├─bin 启动脚本
│      mdius-console-run.cmd Windows系统启动脚本
│      mdius-console-run.sh MAC/Linux系统启动脚本
│
│
├─jre java运行环境
│                      
├─src 
│  └─main
│      │      
│      ├─java
│      │  └─cn
│      │      └─com
│      │          └─cloudpractice
│      │              │  MarkDownReplace.java 启动类
│      │              │  
│      │              ├─download
│      │              │      ImageDownload.java 图片下载接口
│      │              │      PngImageDownload.java 图片下载实现类
│      │              │      
│      │              ├─enums
│      │              │      ExecutionTypeEnum.java 执行器枚举
│      │              │      UplodeServerTypeEnum.java 上传服务类型枚举
│      │              │      OperationModeEnum.java 运行方式枚举
│      │              │      UploaderModeEnum.java 上传方式枚举
│      │              │      
│      │              ├─execution
│      │              │      AbstractExecution.java 执行器抽象类
│      │              │      BeforeExecutionOperate.java 执行前操作接口
│      │              │      HtmlTagUploadImageGenerateNewFileExecution.java 上传图片,替换为Csdn可识别标签生成新文件执行器
│      │              │      LocalCopyImageGenerateNewFileExecution.java 下载到本地生成新文件执行器
│      │              │      OnlyDownloadToLocalExecutor.java 只下载到本地执行器
│      │              │      UploadImageGenerateNewFileExecution.java 上传图片生成新文件执行器
│      │              │      AbstractUploadExecution.java 控制台上传执行器抽象类
│      │              │      SimpleUploadExecution.java 基础控制台上传执行器实现类
│      │              │      
│      │              ├─file
│      │              │      FileProcessing.java 文件处理接口
│      │              │      SimperFileProcessing.java 文件替换处理FileProcessing
│      │              │      HtmlTagSimperFileProcessing.java Html标签文件替换处理FileProcessing
│      │              │      TagProcessingInterface.java 标签处理接口
│      │              │      
│      │              ├─system
│      │              │      ProgressBar.java 进度条
│      │              │      LogOutput.java 日志打印
│      │              │      AppSystem.java 应用系统信息
│      │              │ 
│      │              ├─propertie
│      │              │      AppProperties.java 应用配置类
│      │              │ 
│      │              ├─window
│      │              │    │ 
│      │              │    ├─option
│      │              │    │    CustomizeJOptionPane.java 自定义JOptionPane
│      │              │    │    NoWrapJTextPane.java 不换行JTextPane
│      │              │    │ 
│      │              │    └─panel
│      │              │          CsdnServerConfigPanel.java CSDN配置窗格
│      │              │          FilePathSelectPanel.java 文件路径选择窗格
│      │              │          FtpServerConfigPanel.java FTP配置窗格
│      │              │          FunctionalPanel.java 选择功能选择窗格
│      │              │          GiteeServerConfigPanel.java gitee配置窗格
│      │              │          ImageServerPanel.java 图片服务选择窗格
│      │              │          StartPanel.java 启动与日志窗格
│      │              │   MainWindow.java 主窗口
│      │              │      
│      │              └─upload
│      │                      FtpUploadImage.java FTP服务上传实现类
│      │                      CsdnUploadImage。java Csdn上传实现类
│      │                      GiteeUploadImage.java gitee上传实现类
│      │                      UploadImage.java 图片上传接口
│      │                       
│      └─resources
│            ├─conf
│            │      app.properties 应用配置文件
│            │      log4j.properties 日志配置文件
│            └─images
│                   main-window-icon.png Guiicon图片
│                   bat_stop.png 停止按钮图片
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值