Coder Social home page Coder Social logo

typora-uploader's Introduction

Typora Uploader

本人在使用Typora上传图片时是使用GitHub作为图床的,Typora常用的图片上传工具有iPic、uPic、PicGo等,但在使用PicGo等工具上传Github图片时经常遇到上传失败的现象,原因PicGo的作者在这里也写得很明白了,另一方面仅针对Typora使用图片上传工具过于笨重,并且需要开启常驻后台,如果对性能要求比较高的用户可能不太能接受。

Typora中的上传服务还支持自定义命令,用户可以编写自己的脚本命令来实现图片的上传,具体开发文档详见Typora官方文档。本人也针对Typora的自定义命令文档以及Git上传相关操作简单整合成了typora-uploader.bat脚本,用于支持Typora最基础的本地图片上传功能。

脚本

@echo off

::git目录
set gitDir=E:\Program\Project\typora-uploader\img\
::域名
set domain=https://cdn.jsdelivr.net/gh/morningcx/typora-uploader/img/

::基本变量
set logDir=%~dp0
set currDate=%date%
set currTime=%time%
echo ==========%currDate%%currTime%========== >>%logDir%uploader.log 2>&1


::获取上传图片的本地路径
set sourceFile=%1
echo sourceFile %sourceFile% >>%logDir%uploader.log 2>&1

::输入文件参数为空或文件不存在则退出
if "%sourceFile%"=="" (
    echo empty sourceFile >>%logDir%uploader.log 2>&1
    goto end
)
if not exist %sourceFile% (
    echo file not exist >>%logDir%uploader.log 2>&1
    goto end
)

::获取图片后缀名(带.)
set sourceSuffix=%~x1

::获取时间戳
set timestamp=%currDate:~0,4%%currDate:~5,2%%currDate:~8,2%%currTime:~0,2%%currTime:~3,2%%currTime:~6,2%%currTime:~9,2%

::重命名图片文件
set filename=%timestamp: =0%%sourceSuffix%
echo filename %filename% >>%logDir%uploader.log 2>&1


::如果是截图,则图片文件存储在typora-user-images文件夹下,需要剪切到git目录下,如果是本地图片,则需要将图片拷贝到git目录下
echo %sourceFile% | find /i "typora-user-images">nul && (
    echo move file >>%logDir%uploader.log 2>&1
    move %sourceFile% %gitDir%%fileName% >>%logDir%uploader.log 2>&1
) || (
    echo copy file >>%logDir%uploader.log 2>&1
    copy %sourceFile% %gitDir%%fileName% >>%logDir%uploader.log 2>&1
)

::git处理,需要缓存git凭证,否则运行git脚本将无法结束
echo git process >>%logDir%uploader.log 2>&1

cd /d %gitDir%

git pull >>%logDir%uploader.log 2>&1

git add . >>%logDir%uploader.log 2>&1

git commit -m "Upload by Typora" >>%logDir%uploader.log 2>&1

git push >>%logDir%uploader.log 2>&1

set url=%domain%%fileName%

echo Upload Success:
echo %url%

::复制markdown到剪贴板
echo ![](%url%) | clip

:end

配置

image-20200809130202044

使用

  1. 将脚本clone到本地、git图床clone到本地,在脚本中配置好本地git目录以及远程域名(jsDelivr
  2. Typora偏好设置中上传服务选定为Custom Command,自定义命令路径指向typora-uploader.bat
  3. 复制本地图片或截图至Typora时将自动上传至GitHub图床

注意事项

typora-uploader.bat脚本仅支持Windows上Typora本地图片的单个上传操作,对于一些批量上传、网络图片上传都没有很好的支持,并且上传原理是基于git命令行的,故对比上传工具而言效率较低,但使用typora-uploader.bat上传只有运行时的消耗,上传结束后会自动销毁,开销方面会更低,并且使用git命令提交的方式下,上传成功率几乎是100%。

Typora中使用typora-uploader.bat或工具上传图片时都存在各自的优缺点,还是根据个人喜好进行选择吧O(∩_∩)O

typora-uploader's People

Watchers

MorningStar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.