zoukankan      html  css  js  c++  java
  • Typora中自定义命令上传图片

    Typora是我经常用的一款Markdown编辑器,简洁的风格、实用的功能,口碑真的很赞。最近发现Typora支持自定义上传图片的功能,原先上传图片需要使用第三方应用,比如iPicuPic等,现在有了自定义功能就能上传图片到任意图床了。功能如下图:

    于是就打算自己写一个上传脚本,先看下Typora文档说明

    重点红色框中已经标出来了,上传后的返回结果需要这种格式,Typora才能识别是否上传成功。这与图床,我使用了SM.MS,用了很久了,不担心跑路。看接口

    如果Authorization不传,就是匿名的。

    好了,现在上代码:

    #!/bin/bash
    # Author: bilberry
    # Date: 2021-05-04
    # 公众号:正义的程序猿
    
    arr=()
    for img_path in "$@"
    do
        res=$(curl -s --location --request POST 'https://sm.ms/api/v2/upload' 
            --header 'Content-Type: multipart/form-data' 
            --form 'smfile=@'"${img_path}")
    
        success=`echo $res | python3 -c "import sys, json; r=json.load(sys.stdin)['success']; print(r);"`
    
        if [ "$success" == 'True' -o "$usccess" == 'true' ]
        then
            r=`echo $res | python3 -c "import sys, json; r=json.load(sys.stdin)['data']['url']; print(r);"`
            arr[${#arr[@]}]=$r
        fi
    done
    
    if [ ${#arr[@]} -eq $# -a $# -gt 0 ]
    then
        echo 'Upload Success:'
        for a in "${arr[@]}"
        do
            echo $a
        done
    else
        echo 'Upload Failed'
    fi
    

    代码就是这样,shell脚本是我现学的,不是很复杂,当然也有一些特殊情况没有考虑,比如SM.MS上传了重复的图片,会返回如下内容:

    {
        "success": false,
        "code": "image_repeated",
        "message": "Image upload repeated limit, this image exists at: https://i.loli.net/2021/05/04/qbrdwglp5k7cKDZMjv.png",
        "images": "https://i.loli.net/2021/05/04/qbrdwglp5k7cKDZMjv.png",
        "RequestId": "2FDCAB12-972E-4871-AFC8-921552C02AF5"
    }
    

    接口返回的是JSON格式,shell处理JSON还比较麻烦,这里我直接调用了python处理,当然还有其他方法:比如:

    • 使用awksed
    • 第三方库jq
    • 调用其他脚本解析器,如pythonnodephp

    最后剩下Typora上的配置,看上面的第一张图,Command里面是shell脚本的文件位置,然后可以测试了:

    如果看到Validation Succeed就说明上传成功了,现在当我们Command+V复制一张图片进来时,会自动将图片上传到SM.MS,真的方便了很多,写作本来就应该这么简单嘛!

    至此,上面就是我今天要讲的如何使用Typora的自定义功能上传图片到sm.ms,稍微修改shell代码还能将图片上传到七牛云、阿里云、又拍云等。

    文章首发:个人博客
    公众号:正义的程序猿

    本文系原创,转载请注明出处。


    参考:

  • 相关阅读:
    Good Substrings CodeForces
    Watto and Mechanism Codeforces Round #291 (Div. 2)
    Codeforces Round #487 (Div. 2) A Mist of Florescence (暴力构造)
    Oulipo HDU
    POJ
    求值2 组合数公式题目
    URAL
    SCU
    【转】phpcms授课学习
    WordPress文章浏览历史插件
  • 原文地址:https://www.cnblogs.com/bilberry/p/14729993.html
Copyright © 2011-2022 走看看