【Markdown】Markdown和插入图片的解决方法
推荐使用马克飞象,插图不用那么麻烦:马克飞象 - 专为印象笔记打造的Markdown编辑器
目录
1.Markdown使用方法
Markdown工具
推荐使用马克飞象,插图不用那么麻烦:马克飞象 - 专为印象笔记打造的Markdown编辑器
Markdown语法
插入程序代码
插入程序代码的方式有两种:使用反引号 `(~ 键)、使用缩进(Tab)。
- 语句内插入代码,即插入一个单词或者一句代码的情况,使用 `code` 这样的形式插入。
- 插入多行代码,分别使用三个反引号(```)包裹多行代码。或者使用缩进。
C语言里的函数 `scanf()` 怎么使用?
```python
#!/usr/bin/env python3
print("Hello, World!");
```
常用语法
Markdown 目录:
[TOC]
Markdown 标题:
# 这是 H1
## 这是 H2
### 这是 H3
Markdown 列表:
- 列表项目
1. 列表项目
*斜体*或_斜体_
**粗体**
***加粗斜体***
~~删除线~~
Markdown 插入链接:
[链接文字](链接网址 "标题")
Markdown 插入图片:
![alt text](/path/to/img.jpg "Title")
Markdown 插入代码块:
```python
#!/usr/bin/python3
print("Hello, World!");
```
Markdown 引用:
> 引用内容
Markdown 分割线:
---
Markdown 换行:
<br>
Markdown 段首缩进:
  or   表示一个半角的空格
  or   表示一个全角的空格
   两个全角的空格(用的比较多)
or   不断行的空白格
插入目录
在文章开始地方输入[toc],即可在对应位置插入目录
2.Markdown插入图片的完美解决方法
推荐使用马克飞象,插图不用那么麻烦:马克飞象 - 专为印象笔记打造的Markdown编辑器
"markdown一时爽, 分享火葬场", markdown的简便性和美观性一直受到诸多码农偏爱. 但是markdown文件不支持内嵌图片, 所有的图片都以外部链接的方式插入. 所以分享Markdown文件的时候就不得不和图片一起发送, 同时还得注意设置图片路径, 让强迫症患者难以接受.
结合base64编码方式, 我找到了一种极为方便的在markdown文件中插入图片的方法:
示例图一: 在截屏快捷键截屏后直接复制base64编码到Markdown编辑器
1.gif
示例图二: 在Markdown编辑器打开文件选择框, 选择图片并粘贴base64编码文件至Markdown编辑器.
2.gif
要实现以上两种功能需要完成以下几个步骤:
-
1.利用文件选择框选择文件或者从剪贴板读取图像
-
2.将图片转为Base64编码
-
3.将转换结束的Base64编码传递至剪贴板
-
4.将以上脚本绑定至Windows全局快捷键
首先, 我们考虑实现第一个功能: 从文件选择框选择文件或获取剪贴板图像
从文件选择框选择文件非常简单, 可以用如下Python代码实现:
import win32ui
dlg = win32ui.CreateFileDialog(1) # 1表示打开文件对话框
dlg.SetOFNInitialDir('C:\\Users\\Desktop') # 设置打开文件对话框中的初始显示目录
dlg.DoModal()
filename = dlg.GetPathName() # 获取选择的文件路径和名称</pre>
第二个功能是获取剪贴板的图像文件, 同样用如下代码实现:
from PIL import ImageGrab
im = ImageGrab.grabclipboard()#获取剪贴板文件
if isinstance(im, Image.Image):
img = im
else:
pass
其实是实现图片转Base64编码文本, 这一步非常简单, python代码如下:
with open("D:\\PythonCode\\base64pic\\1.jpg", 'rb') as f:
base64_data = base64.b64encode(f.read())
s = base64_data.decode()
print('(data:image/jpeg;base64,%s) \n'%s)</pre>
再次, 将Base64编码传递至剪贴板. 这一步需要用CMD命令实现, 使用CMD的 clip
命令即可, 代码如下:
@echo off
python D:\\123.py | clip
以上代码即可实现运行python脚本, 同时将python脚本的输出传递至剪贴板. 但是使用以上代码, 就是我们使用了@echo off
关闭了命令行的代码输出, 使用命令的时候依旧会弹出难看的CMD命令框, 着实不够优雅.
还好, 我们永远有 Plan B. 我们还可以使用VBscript运行脚本, 同时隐藏难看的CMD命令框, 代码如下:
>Set ws = createObject("WScript.shell")
ws.run "cmd /c python D:\\PythonCode\\base64pic.py | clip",vbhide
最后, 我们考虑最后一个功能的实现, 绑定以上脚本至Windows全局快捷键.
实现这一功能有两种方式:
方法一是用Windows快捷方式自带的实现, 示意图如下:
image.jpeg
但是缺点在于反应十分慢, 慢到难以接受.
第二种方法则是将脚本的快捷方式放在任务栏, 使用 Windows + 数字
的方式快捷调用, 示意图如下:
image.jpeg
一个小tips是, 可以用"更换图标" 的功能给快捷方式换一个好看的图标, 示意图如下:
image.jpeg
结果就是这样的:
image.jpeg
附:
1.Python完整代码
import win32ui,os,base64
from PIL import Image,ImageGrab
im = ImageGrab.grabclipboard()
if isinstance(im, Image.Image):
img = im
else:
dlg = win32ui.CreateFileDialog(1) # 1表示打开文件对话框
dlg.SetOFNInitialDir('C:\\Pictures') # 设置打开文件对话框中的初始显示目录
dlg.DoModal()
filename = dlg.GetPathName() # 获取选择的文件名称
img = Image.open(filename)
img.thumbnail((778,439),Image.ANTIALIAS)
img=img.convert('RGB')
img.save("D:\\PythonCode\\base64pic\\1.jpg", quality=70)
with open("D:\\PythonCode\\base64pic\\1.jpg", 'rb') as f:
base64_data = base64.b64encode(f.read())
s = base64_data.decode()
print('![](data:image/jpeg;base64,%s)'%s)
os.remove("D:\\PythonCode\\base64pic\\1.jpg")
2.VBS脚本完整代码
Set ws = createObject("WScript.shell")
ws.run "cmd /c python D:\\PythonCode\\base64pic\\base64pic.py | clip",vbhide
作者:地平线上的背影
链接:https://www.jianshu.com/p/8c0d00fca9b3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。