Typora自定义上传图片脚本(用git公开仓库为图床) In Win/Linux

该文章介绍了如何在Windows和Linux环境下配置Typora,通过Git仓库自定义上传图片脚本。在Windows中,由于GitBash的输出限制,需要编写额外的控制台程序来获取输出的图片链接;而在Linux中,可以直接在脚本中输出图片链接。整个过程包括设置仓库信息、编写上传脚本、处理Window下的输出问题以及在Typora中的测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Typora自定义上传图片脚本(用git公开仓库为图床) In Win/Linux

1.所需工具:⚡️

  • Git

  • 一个目标仓库

  • 一个其他的可执行程序(Window下)

Window:

⛵️ 由于Window下GitBash好像不是标准输出(Typora获取不到),故单是sh脚本上传和输出是无法完成的。

第一步:GitBash执行的sh

#!/bin/bash

# 设置仓库信息
USER_NAME="XXXXX"
REPO_NAME="XXXXX"
BRANCH_NAME="master"

# 获取图片路径(集合),遍历

for ITEM in "$@"
do
    # 判断是否有图片路径
    if [ ! -n "${ITEM}" ] ; then
        echo "Usage: imgup [image path]"
        exit 1
    fi
	#跳转到你的Git仓库下
    cd D:\\2022Pros\\MyNoteImgBed
    # 生成文件名
    IMG_NAME=$(date +%Y%m%d%H%M%S).png

	#复制图片到仓库
    
    cp ${ITEM} D:\\2022Pros\\MyNoteImgBed

	#执行另一个脚本,并关闭其输出信息(当然你也可以写在一起)
    ./T2.sh >/dev/null 2>&1

    # 输出图片链接
    #echo https://fglab.xxxxx.com/${USER_NAME}/${REPO_NAME}/blob/master/${IMG_NAME} 
    
done
echo -e "Upload Success:"
#挂住窗口,输入任意键再退出
read -n 1

T2.sh

#!/bin/bash

cd  D:\\2022Pros\\MyNoteImgBed

# 添加、提交、推送
git add .
git commit -m "script_add"
git push -u origin "master"

好了,这个脚本已经可以上传图片了,但是没有输出图片的访问路径

第二步:

既然在Window下GitBash不算标准输出环境,那么则需要可以被套一层‘壳’🏉 来执行输出,这个壳可以是一个bat或者控制台程序,

这里以控制台程序为例子:

namespace ConsoleTestApril
{
    class Program
    {
        public static void Main(string[] args)
        {
            //要执行的sh脚本名
            string command = "Uploadscript.sh";

            //凭借执行脚本需要的图片链接的参数
            string FinalArgsStr = $@"";

            for(int i = 0; i < args.Length; i++)
            {
                FinalArgsStr += $@" {args[i]}";
            }

            var psiOne = new ProcessStartInfo()
            {
                
			   //git-bash的路径
                FileName = "C:\\Program Files\\Git\\git-bash.exe",
                
                //在Git-Bash里执行脚本的语句 
                Arguments = $@"./{command}"+FinalArgsStr,
                
                RedirectStandardOutput = true,
                UseShellExecute = false,
                CreateNoWindow = true
            };
            

            //创建进程并执行
            Process process = new Process();
            process.StartInfo = psiOne;
            process.Start();


            
            
		   //等待直到Git脚本执行完成
            process.WaitForExit();

            for(int i = 0; i < args.Length; i++)
            {
                
                    string[] strs = args[i].Split('\\');
                    int length = strs.Length;
                	//输出上传到仓库的图片地址
                    Console.WriteLine($@"https://fglab.xxxxxx.com/xxxxxx/MyNoteImgBed/raw/master/{strs[length-1]}");
                
                    
            }
            
        } 
       
    }
}

最后把程序发布为exe文件,和脚本一起放到Typora的安装目录下

请添加图片描述

最后到Typora了进行上传测试

请添加图片描述

Linux:

直接在脚本里输出仓库里图片的路径就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗马苏丹默罕默德

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值