美文网首页「河许人」Autohotkey
Markdown插入图片的便捷方式

Markdown插入图片的便捷方式

作者: csmijo | 来源:发表于2017-03-23 19:41 被阅读1301次

    Markdown

    1. 前言

    最近一直在使用 Markdown 写文档,但是其中贴图真是太麻烦了,于是就想着能不能有什么好的方法来解决,Google,发现了网上已经有一些前辈写好的教程了,我主要参考了这两篇博客的内容:

    但是在直接使用时并不是那么一帆风顺,遇到了各种不成功的情況,然后我就自己调试,摸索了一下,终于成功了。现在将大概的过程记录一下,希望能提供一下参考价值,不至于他人遇到同样的坑。

    2. 前期准备工具

    1. python

    推荐使用 python3.x

    本人的python水平为初级入门,在爬坑的过程中发现在Windows环境下 python2.x 对图片路径中含有中文的情况会报错,还需要特别处理一下编码问题。我Google了半天,没有搞定(水平太次,请勿嘲笑)。然后使用 python3.x 版本发现可以很好的解决中文 路径错误的问题,所以就果断使用了python3.x版本。

    我本地的python版本为: python2.7.10python 3.5.3

    2. AutoHotKey + AutoHotKey.dll

    AutoHotkey.dll是用来实现其他脚本语言对AutoHotkey的调用,你需要下载对应于AutoHotKey版本的dll文件,然后将它放到windows/System32文件夹中,AutoHotkey.dll的下载地址为:https://github.com/xzonepiece/markdown-img-upload-windows/tree/master/Autohotkey.dll

    注意:这里AutoHotKey要选择和自己操作系统相匹配的版本。

    3. 七牛云账号

    实名认证后该平台提供注册用户免费的10G空间;如果没有认证,则有1G的免费空间可以使用。

    3. 具体实现

    1. 注册七牛云账号,获得自己的AKSK空间名称以及域名地址.

    说明:

    1. AKSK 在七牛云的 个人中心 --> 密钥管理 中可以看到

    2. 资源主页 --> 七牛官方资源 --> 对象存储 --> 立即添加 就可以添加存储空间

    3. 完成空间添加后,空间名称 就是你填写的空间的名称

    4. 域名地址在你创建空间的 内容管理 可以看到外链默认域名

    5. 安装七牛云的python SDK,参考七牛云的 Python SDK 使用指南

      可以通过 pip 或者 easy_install 直接安装,也可以 使用源码安装。

      这里我使用的是源码安装,这样可以安装到不同的python版本,另一个原因是我本地没有pip(又要被嘲笑了)。

    6. 编写 Python 脚本文件 upload_qiniu.py
      这里修改上面两篇参考文献中的内容,略有不同。。
      ps: 下面Python的对其格式有问题,如果直接复制,请调整一下格式。

           #! /usr/bin/python
           #-*- coding: utf-8 -*-
      
           from qiniu import Auth, put_file, etag, urlsafe_base64_encode
           import qiniu.config
           from qiniu import BucketManager
           import sys,time
           import os
           import time
      
           # you need get yours msg here
           access_key = "xxx"    # 填入你的 AK
           secret_key =  "xxx"  # 填入你的 SK
           bucket_name =  "xxx"    # 填入你的七牛空间名称
           bucket_url =  "xxx"   # 填入你的域名地址
      
           img_suffix = ["jpg", "jpeg", "png", "bmp", "gif"]   # 支持多种图片格式
      
          def upload_img(bucket_name,file_name,file_path):
              # generate token
              token = q.upload_token(bucket_name, file_name, 3600)
              info = put_file(token, file_name, file_path)
              # delete local imgFile
              # os.remove(file_path)
              return
      
          def get_img_url(bucket_url,file_name):
              # ?imageMogr2/thumbnail/!65p
              # file_names = file_name + '?imageMogr2/thumbnail/!75p'
              file_names = file_name + '?'+ time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
              img_url = 'http://%s/%s' % (bucket_url,file_names)
              # generate md_url
              md_url = "![](%s)\n" % (file_name, img_url)
              return md_url
      
          # save to clipboard
         def addToClipBoard(bucket_url,file_name):
             text = get_img_url(bucket_url,file_name)
             command = 'echo ' + text.strip() + '| clip'
             os.system(command)
      
       if __name__ == '__main__':
             q = Auth(access_key, secret_key)
             bucket = BucketManager(q)
             img = sys.argv[1]
      
             # name for img with local time
             up_filename = os.path.split(img)[1]
             upload_img(bucket_name,up_filename,img)
             addToClipBoard(bucket_url,up_filename)
      
    7. 编写 AutoHotKey脚本文件 markdown_picture.ahk

      ;将图片上传至七牛云,并获得图片地址
      ^!c::
      send, ^c
      clipwait
      Run %comspec%  /k "python *替换成upload_qiniu.py文件的地址* %Clipboard%"
      

      为了防止疑惑,这里给出一个 Windows 环境下示例:

      ;将图片上传至七牛云,并获得图片地址
      ^!c::
      send, ^c
      clipwait
      Run %comspec%  /c "python D:\program\qiniu-python-sdk\upload_qiniu.py %Clipboard%"
      

      这里也稍微修改了参考文献中的内容,因为在我本地运行时原来的脚本执行不成功。

      其中,第五行的“/k” 表示命令执行完成之后,cmd窗口不消失,这样可以方便调试,如果出错了可以看到错误信息;如果希望窗口自动关闭,可以将这个参数设置为“/c”

    8. 启动markdown_picture.ahk 后,我们就可以使用 ctrl + alt + c --> ctrl + v 来插入图片了。

      选中一个图片文件,按下ctrl + alt + c,这时候会跳出cmd窗口,如果没有错误,你就可以使用ctr + v来插入图片的七牛云的网络链接,就这么简单!!!


    [参考文献]

    相关文章

      网友评论

        本文标题:Markdown插入图片的便捷方式

        本文链接:https://www.haomeiwen.com/subject/nrmtottx.html