离线markdown的base64图片转为本地文件

如用简悦等方法,复制下来的离线markdown总是有巨大的base64图片,非常难打开,难编辑,用此python脚本即可将离线markdown中所有图片转为本地图片

# markdown的base64图片存入本地.py
import re
import os
import base64

def extract_images(md_file):
    # 打开Markdown文件
    with open(md_file, 'r') as file:
        data = file.read()

    # 使用正则表达式查找所有的图片数据
    img_pattern = re.compile(r'(\[(img-\d+)\]:(data:image)\/(jpeg|gif|png);base64,([^\n]+))')
    images = img_pattern.findall(data)

    # 如果images文件夹不存在,创建它
    if not os.path.exists('images'):
        os.makedirs('images')

    for match in images:
        full_match, img_name, img_data, img_type, img_base64 = match

        # 处理不完整的base64编码
        missing_padding = len(img_base64) % 4
        if missing_padding:
            img_base64 += '='* (4 - missing_padding)

        # 转换并保存图片
        with open(f'images/{img_name}.{img_type}', 'wb') as img_file:
            img_file.write(base64.b64decode(img_base64))

        # 在原始数据中删除图片标记
        data = data.replace(full_match, '')

        # 将markdown文件中的图片引用修改为新的路径
        data = data.replace(f'![][{img_name}]', f'![](images/{img_name}.{img_type})')

    # 保存修改后的Markdown数据
    with open(md_file, 'w') as file:
        file.write(data)


if __name__ == "__main__":
    # 使用你的markdown文件名替换 'your_file.md'
    extract_images('your_file.md')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue中使用`vue-markdown`实现粘贴图片Base64位的功能,您可以使用第三方库`vue-simplemde`来实现。以下是一个简单的示例: 1. 首先,使用npm或yarn安装`vue-simplemde`: ``` npm install vue-simplemde ``` 2. 在您的Vue组件中,导入并注册`vue-simplemde`: ```javascript import VueSimplemde from 'vue-simplemde'; export default { components: { VueSimplemde, }, }; ``` 3. 在模板中使用`vue-simplemde`: ```html <template> <div> <vue-simplemde v-model="markdownText" @paste="handlePaste"></vue-simplemde> </div> </template> ``` 4. 在Vue组件的`data`中定义`markdownText`,用于存储Markdown文本: ```javascript export default { data() { return { markdownText: '', }; }, }; ``` 5. 在Vue组件中定义处理粘贴事件的方法`handlePaste`,将粘贴的图片换为Base64位: ```javascript export default { methods: { handlePaste(event) { const items = (event.clipboardData || event.originalEvent.clipboardData).items; for (let i = 0; i < items.length; i++) { const item = items[i]; if (item.kind === 'file' && item.type.indexOf('image') !== -1) { const reader = new FileReader(); reader.onload = (e) => { const base64Image = e.target.result; // 将base64Image插入到markdownText中 this.markdownText += `![Image](${base64Image})`; }; reader.readAsDataURL(item.getAsFile()); } } }, }, }; ``` 通过以上步骤,您可以在Vue中使用`vue-simplemde`实现Markdown编辑器,并在粘贴图片时将其换为Base64位。请注意,您可能需要根据您的项目需求进行进一步的配置和样式调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值