2 Star 2 Fork 0

魔芋红茶 / markdown-img

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Markdown-img使用指南

English | 简体中文

目录

项目地址

用途

本程序用于扫描工作目录下的markdown文件,查找其中的本地图片并自动上传到sm.ms图床,并生成一个使用网络图片替换本地图片的markdown副本,存放于当前工作目录/markdown_image目录下。

通过以上方式实现自动批量markdown图片处理工作,以方便之后把markdown内容在网络传播。

注意事项

  • 本程序不会改变原始markdown文件,请放心使用。

  • 对于已经生成副本的原始文件,本程序不会再次处理,如果需要重新生成副本,请手动删除相应的已生成副本。此功能已添加,具体请查看功能:刷新图床副本。

  • 本程序依赖于sm.ms图床,请自行注册账号并生成token。

    已加入其它图床支持,详情见功能,不过默认依然使用sm.ms图床。

  • 因为sm.ms图床接口有调用限制,如果出现图片上传出错的情况,可能是上传频繁导致,请等待1分钟以上时间后重新使用本程序。

  • 已添加腾讯云对象存储作为图床,使用时需要输入相应的必须参数用于连接,具体参数获取可以阅读腾讯云OSS使用指南,此外还需要将对象存储服务设置为私有写公有读。

  • 目前本程序只支持windows。

    已在Linux平台验证,基本功能都可以正常使用。

  • sm.ms国内访问不算友好,生成的markdown拷贝立即在网络上发布可能会显示防盗链等图片挂掉的情况,那是因为国内CDN比较慢,等一段时间就好了。

  • 本程序使用Python编写,需要安装Python运行环境,如果不知道如何安装,可以阅读windows下的python环境安装

支持的图床服务

图床名称 标识 图床性质 需要访问令牌 备注
sm.ms smms 公共 默认图床,国外的老牌公共图床服务商,值得信赖,缺点为国内访问不稳定。
遇见 yujian 公共 国内的一家图床服务,除了自身提供图床服务,还支持通过其API调用其他图床服务。
如优 rruu 公共 可以看出和遇见用的是同一套网站代码,目前网站已关闭,服务不可用。
阿里图床 ali 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
Vim-CN vimcn 公共 国外的一家图床服务商,据说同样是老牌服务商,缺点同样是国内访问不稳定。
腾讯云COS qcloud 私有 没啥好说的,几家私有云存储里最推荐的,缺点是目前只提供一年的免费额度,到期需要续费。
七牛云 qiniu 私有 提供永久的免费存储额度,缺点是不给存储的外链提供域名,需要自己拥有一个域名并进行绑定操作后才可以使用。
bilibili bilibili 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
搜狗 sougou 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
葫芦侠 huluxia 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
猫盒 catbox 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
360 360 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
贴图 postimages 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
58 ai58 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
极图 gtimg 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
佰图 bkimg 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
慕课 muke 公共 非正常服务,用遇见图床的API实现支持,谨慎使用。
又拍云 upyun 私有 提供代金券,缺点是不给存储的外链提供域名,需要自己拥有一个域名并进行绑定操作后才可以使用。此外白嫖代金券需要加入又拍云联盟,且每年审核一次。
风筝图床 fz 公共 国内的一个公共图床(有备案),注册后提供1G免费空间,可以购买会员以扩容。

安装

pip install markdown-img-icexmoon

更新

pip install --upgrade markdown-img-icexmoon

功能

已添加控制台短命令支持,所有功能均可以通过pymdimg快速调用。

比如pymdimg -hpython -m markdown_img -h功能完全一致。

查看帮助文档

  • 执行python -m markdown_img -h

查看版本及配置信息

执行pymdimg -vpymdimg --version

选择工作语言

支持English和中文作为工作语言,默认为中文。

  • 执行pymdimg -l en切换工作语言。

图片压缩

开启此功能后会对超过一定大小的图片进行压缩处理后上传到图床,以节约私人存储空间。压缩后的中间图片会自动从本地删除,并不会影响到本地的原图。

  • 执行pymdimg --compress设置相关配置后进行开启。

切换图片压缩引擎

目前支持GIL和tinyPNG,前者为使用第三方Gillow包实现本地压缩,后者为使用在线服务tinyPNG.com进行在线压缩,推荐后者,因为后者为无损压缩,但后者需要先注册以生成访问令牌,并且免费用户有调用次数:500次/每月。

执行pymdimg -e tinyPNG进行切换。

生成图床markdown副本

本程序的主要功能,将扫描命令行工作目录下的markdown文件,会将其中的本地图片替换为图床图片后生成一个图床副本,生成的副本会存储在工作目录下的markdown_img文件夹中。

  1. 使用CMD定位到将要处理的markdown文件目录。
  2. 执行python -m markdown_img
  3. 第一次运行程序会提示你输入图床token。
  4. 输入后再次执行步骤2。
  5. 等待处理。
  6. 完毕后查看工作目录/markdown_img目录。
  • 图床token存储在程序所在目录的main.config文件中,如果需要修改的可以自行修改,也可以删除该配置文件后重新运行程序输入。
  • 目前仍不支持根据文件新旧程度重新生成markdown副本的功能,如果原文件改变,需要手动删除副本后重新生成。此功能已添加,详情见功能:刷新图床副本。
  • 稍后会丰富并完善程序的相关命令参数。
  • 如果目标图床返回的URL中包含中文或者空格等特殊字符,并且你的markdown文本编辑器无法正常预览相应的图片,则可能需要使用URL ENCODE进行处理,开启此功能的方法为pymdimg -u standard,开启后重新生成副本即可。此功能目前仅作用域腾讯云OSS,因为其他图床不会返回中文url。
  • 可以使用指定的配置来生成副本,比如pymdimg --config normal,通过此功能可以在特定情景,比如说希望本次任务中不适用压缩,或者使用大比例压缩时,在不修改当前配置的前提下可以使用定制的相关配置完成本次任务。具体制作相关配置的功能见【功能:备份系统配置】。

从图床恢复本地图库

如果图床副本完好,但本体markdown文件关联的本地图片丢失的,可以利用此功能尝试恢复。

  1. 切换命令行工作目录到要恢复的markdown文件目录。
  2. 执行python -m markdown_img -m img_recove
  3. 等待处理。
  4. 完毕后查看本地markdown文件图片是否恢复。
  • 因为网络图床不稳定,虽然程序本身有超时重连机制,但如果恢复的图片过多,很可能处理中断,只需要重新运行程序即可。
  • 恢复逻辑为对比副本和原本中的图片出现顺序,1对1恢复,所以务必保证两者没有差异,程序会在两者数量不同时中断并提示用户手动确认。

切换图床服务

可以切换图床服务,以备某个图床不可用或者访问不稳定。

目前支持的图床有sm.ms阿里、如优Vim-CN遇见腾讯云对象存储(推广链接)、七牛云又拍云(计划支持)。

支持的图床列表见支持的图床服务

  1. 执行python -m markdown_img -i ali
  • 具体的图床标识可以查看帮助文档。
  • 需要访问令牌的图床服务切换后使用中会提示输入相应的访问令牌。
  • 使用腾讯云OSS需要一些必要信息,具体请阅读注意事项。
  • 使用七牛云存储的时候需要提供必要信息,其中DNS绑定域名需要包含协议,比如http://example.domain.com

更新图床访问令牌

如果图床令牌设置错误,或者在图床官网重新生成了新的访问令牌,可以在程序中更新相应的访问令牌。

  1. 执行python -m markdown_img -c smms
  • 具体参数可以查看帮助文档。

  • 部分图床配置如果是多项,可以使用子命令仅修改其中单一配置,比如仅修改腾讯云的存储目录:pymdimg -c qcloud --des_dir image,如果目标目录中间有空格,需要给将其用英文双引号包起来,比如这样:pymdimg -c qcloud --des_dir "我 love 你"。更新完配置后可以使用pymdimg -v确认配置是否已经设置正确。

扫描图片并创建索引

如果你需要将某个目录下的图片全部上传到网络图床,并创建一个markdown文件作为索引文件,那使用这个功能就没错了。

python -m markdown_img -s
  • 每次运行都会重新生成索引文件。
  • 生成的索引文件名为markdown_img_index.md,请确保不要自定义同名文件在目标目录下。
  • 可以使用指定配置,如pymdimg -s --config normal,具体说明见【生成图床markdown副本】的相关条目。

刷新图床副本

如果你的原始md文件已更新,不想手动删除相应的副本文件,想自动重新生成,可以使用此功能。

python -m markdown_img -m refresh

会扫描当前目录下的原始md文件,如果没有副本,直接创建。如果有副本,但是原始文件比副本"新",则重新创建副本。

备份系统配置

如果有需要,可以对系统配置进行备份:

pymdimg -m backup_config --name xxx

--name参数并非必须,如果不指定则会依据当前时间生成一个配置备份的文件名。

列出已保存的配置

pymdimg --list_config

会列出配置名称和创建时间

替换配置

可以使用已保存的配置替换当前配置:

pymdimg --change_config xxx

其中xxx为想替换的已保存配置的文件名,如果要查看有哪些已保存配置,请使用【功能:列出已保存的配置】。此外,使用此功能前最好先保存当前配置。

相对路径图片

可以将使用绝对路径图片的md文件统一处理成使用相对路径图片,程序会将原始图片拷贝到当前目录的images子目录下作为相对路径图片。

该功能的目的是为某些跨平台、多设备的用户提供方便,使用相对路径后,原始图片和md文件就可以很方便的移动,或者使用类似坚果云的同步服务进行多设备同步。

pymdimg -m relative_img
  • 为避免程序出错导致的原始md文件损坏,会保留一个原始文件备份到backup子目录中。
  • 因为Windows和Linux平台分隔符的区别,并不能保证两者的相对目录都表现正常。

致谢

本应用开发者获得了又拍云联盟的帮助和支持,获得了其提供的免费CDN加速和云存储服务,如果您也想获取同样的帮助和支持,可以点击这里加入。

更新日志

0.0.6

新增命令行参数功能,具体情况可使用python -m markdown_img --help进行查看。

新增使用图床备份恢复本地图片库的功能,具体使用方法见帮助信息。

0.1.1

加入阿里图床、Vim-CN图床、如优图床的调用支持。

其中阿里图床和如优图床通过如优的API调用实现,需要在如优图床官网申请账号并获取token。

如优图床的容量为单账号10G,不过注册只需要邮箱,可以注册多个账号。

加入从图床副本恢复本地markdown图片的功能,具体使用方式见帮助文档。

0.1.2

修复了某些情况下配置文件为空会导致JSON解析异常的bug。

添加了更新图床访问令牌的功能。

0.1.3

添加扫描图片并创建网络图床索引的功能。

0.1.4

添加刷新图床副本的功能。

0.1.6

修复rruu图床接口挂掉导致直接输出异常到控制台的问题。

0.1.7

加入短命令支持。

在生成的图片索引中加入换行以区分图片。

加入引用模块检测,安装时如果缺少相应模块会自动安装。

0.1.8

加入遇见图床支持。

阿里图床的API调用替换为遇见图床。

0.1.9

修复了只能处理png,不能识别并处理其他格式的图片的问题。

0.2.0

修复了不能识别html<img/>标签的问题,现在对img标签中的图片也可以正常处理了。

0.2.1

添加了阿里图床(如优线路)。

0.2.2

用futures实现多线程。

0.2.3

  • 修复了目录下有无图片的md文件会导致异常的问题。
  • 添加版本显示功能。

0.2.4

添加了腾讯云对象存储作为图床。

0.2.5

  • 添加了修改腾讯云图床的子命令。
  • 修改查看版本命令,增加程序相关配置信息的显示。
  • 修改帮助文档。

0.2.6

增加使用URL ENCODE处理图片url的功能。

0.2.7

修改URL ENCODE功能,增加仅对空格进行处理的模式。

0.2.8

添加国际化,增加英语作为工作语言。

0.2.9

添加七牛云作为新的可选图床。

0.3.0

  • 代码重构
  • 添加bilibili作为新图床
  • 修复部分bug

0.3.1

添加又拍云作为新的可选图床。

0.3.2

  • 添加图片压缩功能
  • 添加debug模式

0.3.3

添加TinyPNG作为新的压缩引擎

0.3.4

压缩引擎切换选项增加 none,可以更方便的关闭压缩功能。

0.3.5

增加系统配置备份功能。

0.3.6

增加使用指定配置的功能。

0.3.7

修复了因为使用Futures模块导致的安装失败的问题。

0.3.8

修复了在Linux下不能正常生成处理后的目录的bug。

0.3.9

添加了将md文件中的绝对路径图片修改为相对路径的功能。

0.4.0

添加对风筝图床的支持。

Copyright (c) 2018 The Python Packaging Authority Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

A program for help you to deal markdown file and share it in Internet. 展开 收起
Python
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/icexmoon/markdown-img.git
git@gitee.com:icexmoon/markdown-img.git
icexmoon
markdown-img
markdown-img
master

搜索帮助

14c37bed 8189591 565d56ea 8189591