markdown导出成html,并将图片转换成base64

news2025/1/11 1:55:38

文章目录

    • 方案一,使用typora
      • 第一步,编写python脚本
      • 第二步,设置导出后运行py脚本,设置如下
    • 方式二,使用vscode插件:Markdown Preview Enhanced
      • 使用方法
        • 在markdown头部添加
      • 预览界面右键,选择导出
      • Markdown Preview Enhanced插件导出word
        • 文档头部添加
        • 选择pandoc导出word

方案一,使用typora

第一步,编写python脚本

# -*- coding: utf-8 -*-
import os
import base64
# import markdown
import sys
from bs4 import BeautifulSoup

# 读取传入的当前文件夹目录,windows使用传参案例: python D:\xxxxx\223333.py %cd%
current_dir = sys.argv[1]
print("要转换的html所在目录path=" + current_dir)
directory = current_dir
# 循环浏览目录中的每个文件
for filename in os.listdir(directory):
    if filename.endswith(".html"):
        html_file_name = filename
        with open(html_file_name, 'r', encoding='utf-8') as file:
            html_content = file.read()
        # 获取Markdown文件所在的文件夹路径
        markdown_folder = os.path.dirname(os.path.abspath(html_file_name))

        # 调整HTML中的图片路径,相对路径变成绝对路径
        html_with_adjusted_image_paths = html_content.replace('src="', 'src="' + markdown_folder + '/')

        # 使用BeautifulSoup解析HTML内容
        soup = BeautifulSoup(html_with_adjusted_image_paths, 'html.parser')

        # 获取所有<img>标签
        img_tags = soup.find_all('img')

        # 遍历<img>标签
        for img_tag in img_tags:
            # 获取图片路径
            image_path = img_tag['src']

            # 读取图片文件并进行Base64编码
            with open(image_path, 'rb') as file:
                image_data = file.read()
                base64_data = base64.b64encode(image_data).decode('utf-8')

            # 替换<img>标签的src属性为Base64编码数据
            img_tag['src'] = f'data:image/jpeg;base64,{base64_data}'

        # 获取修改后的HTML内容
        modified_html = str(soup)

        # 将调整后的HTML内容写入文件
        # print(html_file_name)
        html_file_name = current_dir + "/" + filename
        # print(html_file_name)
        with open(html_file_name, 'w', encoding='utf-8') as file:
            file.write(modified_html)

第二步,设置导出后运行py脚本,设置如下

在这里插入图片描述
在这里插入图片描述

方式二,使用vscode插件:Markdown Preview Enhanced

使用方法

在markdown头部添加

---
html:
# 这个值设置是否将image转换成base64字符串
  embed_local_images: true
  embed_svg: true
  offline: false
  # 这个值设置侧边栏
  toc: true
print_background: false
---

预览界面右键,选择导出

在这里插入图片描述

Markdown Preview Enhanced插件导出word

文档头部添加

---
title: "标题"
author: 作者
date: 时间
# 模型,word文档
output: word_document
#output:
 # word_document:
 # 输出路径
  #  path: /Exports/Habits.docx
---

选择pandoc导出word

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/602396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA基础知识总结系列(2):JAVA语法基础

1&#xff0c;关键字&#xff1a;其实就是某种语言赋予了特殊含义的单词。 保留字&#xff1a;其实就是还没有赋予特殊含义&#xff0c;但是准备日后要使用过的单词。 2&#xff0c;标示符&#xff1a;Java中的包、类、方法、参数和变量的名字&#xff0c;可由任意顺序的大小写…

用低代码打造高效餐厅管理系统

当代社会&#xff0c;餐饮业有着非常广阔的市场前景&#xff0c;也承担着相应的管理力。随着人工智能、物联网等新技术的快速发展&#xff0c;低代码能化为了许多餐饮门店管理的新革命。在这篇文章中&#xff0c;我们将会探讨低代码智能化带来的餐门店管理新使命。 一、低代码…

leetcode 2101. Detonate the Maximum Bombs(引发最多的bomb)

bombs是一个二维数组&#xff0c;每个bombs[i] [x, y, r] 代表一个bomb&#xff0c;(x,y)是二维坐标&#xff0c;r是半径。 点燃一个bomb时&#xff0c;以(x,y)为圆心&#xff0c;半径为r的圆范围内的bomb都会点燃&#xff0c;引起连锁反映。 选择一个bomb点燃&#xff0c;使得…

品牌出海3大营销新趋势

过去一年&#xff0c;跨境行业复杂多变&#xff0c;在成本剧增、利润承压之下&#xff0c;出海卖家们面临着诸多考验&#xff0c;但不管如何&#xff0c;可以肯定的是&#xff0c;未来跨境电商行业势必将迎来一波新增长。反之&#xff0c;随着行业竞争加剧&#xff0c;对卖家的…

MongoDB 复制集的基本概念

官方概念&#xff1a;副本集是一组 MongoDB 的进程去维持同样的一份数据集&#xff0c;通过 MongoDB 的复制协议保证主备之间的数据一致性。 如上图所示&#xff0c;MongoDB 有两种部署方式&#xff0c;一个是 Standalone 部署模式&#xff1b;另外一个是副本集&#xff0c;有不…

AppScan入门(二) — Web漏洞扫描工具AppScan的使用

Web漏洞扫描工具AppScan的安装(win10系统亲测ok)&#xff0c;安装完后&#xff0c;进行实操&#xff0c;常用的基本操作&#xff0c;防止自己后期使用忘记&#xff0c;也给用到的朋友一个参考 1、打开AppScan,新建一个项目 &#xff08;文件—>新建—>扫描web应用程序&…

OpenWrt 软路由解析公网IPV6域名访问家庭NAS的教程

OpenWrt软路由放行IPV6公网访问家庭NAS黑群晖设备的教程&#xff0c;威联通/黑群晖设置阿里云动态解析进行外网 IPV6 域名访问家中 NAS&#xff0c;设置OpenWrt软路由&#xff0c;通过ipv6外网访问家中电脑nas等设备系列教程&#xff0c;学长今天啥也没有干&#xff0c;网站也没…

android使用fat-aar打包,本地aar和第三方依赖库以及遇到的问题

android使用fat-aar打包&#xff0c;本地aar和第三方依赖库以及遇到的问题 为什么会用到fat-aar如何使用打出来的aarlib中存在多个架构&#xff0c;例如x86\x86_64我在打包okhttp和retrofit的时候遇到的问题 你遇到其他问题怎么处理&#xff1f; 为什么会用到fat-aar 需要把有…

工业级高性能3D模型渲染引擎,专注于3D Web轻量化!

一、技术概览 HOOPS Communicator 是一个SDK&#xff0c;用于在Web浏览器中开发3D工程应用程序&#xff0c;重点在于&#xff1a; 完全访问工程数据使用方便快速发展高性能可视化快速模型流灵活使用和部署 点击此处获取>>>3D模型轻量化及格式转换解决方案 它的主要…

提高国外 VPS 云主机性能(Linux系统)的 4 个步骤

​  随着外贸业务的兴起及不断发展&#xff0c;越来越多的企业和个人开始使用国外 VPS 云主机来部署自己的应用程序和网站。其中&#xff0c; Linux 系统的国外VPS 云主机创造了众多的可能性和功能&#xff0c;但仍有一些方法可以进一步提高 Linux VPS 的整体性能。下面我们将…

YOLOv5 白皮书-第Y5周:yolo.py文件解读

目录 一、前言二、导入需要的包和基本配置三、 parse_model函数四、Detect类五、BaseModel类六、调整模型1. common.py中生成C22. yolo.py的parse_model中增加c23. yolov5s.yaml中增加c2 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客 &#x1f366;…

07 Redis的缓存过期淘汰策略

常见面试题 生产上你们你们的redis内存设置多少?如何配置、修改redis的内存大小如果内存满了你怎么办redis清理内存的方式&#xff1f;定期删除和惰性删除了解过吗redis缓存淘汰策略redis的LRU了解过吗 Redis内存满了怎么办 redis默认内存多少&#xff1f;在哪里查看?如何…

阿里工作8年,肝到P8就剩这份学习笔记了,已助朋友拿到10个Offer

在阿里工作了8年&#xff0c;工作压力大&#xff0c;节奏快&#xff0c;但是从技术上确实得到了成长&#xff0c;尤其是当你维护与大促相关的系统的时候&#xff0c;熬到P7也费了不少心思&#xff0c;小编也是个爱学习的人&#xff0c;把这几年的工作经验整理成了一份完整的笔记…

MySQL_10 存储引擎和视图

目录 一、存储引擎 1.介绍 : 2.分类 : 3.选择 : 二、视图 1.概述 : 2.原理 : 3.使用格式 : 4.代码演示 : 5.应用实例 : 一、存储引擎 1.介绍 : MySQL的表类型由表的存储引擎(Storage Engines)决定&#xff0c;主要包括InnoDB, MyISAM, Memory等等。 2.分类 : 1 MyS…

如何打通企业内部的数据孤岛?

如何打通企业内部的数据孤岛&#xff1f; 在信息爆炸、数字经济的环境下&#xff0c;数据孤岛问题算是企业在处理数据时的一个顽疾&#xff0c;已经引起各行各业的普遍重视。 01 什么是数据孤岛&#xff1f; 企业发展到一定阶段&#xff0c;会出现不同的业务、部门&#xff…

gcc与g++的安装和使用

首先大致介绍一下gcc和g. 在此之前&#xff0c;你需要先安装gcc与g&#xff0c;然后才能进行指令操作. 命令如下&#xff1a; sudo yum install -y gcc-c 在命令行输入以上指令后&#xff0c;gcc/g便成功安装了. gcc是一个专门用来编译链接c语言的编译器. g(c). gcc只能…

cuda3 管理内存 代码解析额

内存管理 全局内存数据主要存放的地方 共享内存块内数据同步的地方 返回一个标记符 是否成功 比普通Malloc快一倍 统一内存分配释放 少了传输过程 同步拷贝 必须等拷贝完才会执行下面的 异步 注意拷贝是否完成&#xff0c;如果直接使用&#xff0c;并不知道拷贝是否完成 共…

微信小程序实现商品加入购物车案例

思考&#xff1a;购物车中的数据保存在哪里&#xff1f;用哪种数据结构进行保存&#xff1f; 小程序中可能有多个页面需要对购物车中的数据进行操作&#xff0c;因此我们想到把数据存到全局中。可以使用wx.setStorageSync()储存&#xff0c;用wx.getStorageSync()进行获取&…

Linux压缩与解压缩

目录 Linux压缩与解压缩 zip和unzip命令 定义 语法格式 参数及其作用 案例 素材准备 案例1 --- 使用zip也所文件test1.txt 案例2 --- 压缩率为最高压缩test2.txt 案例3 --- 将当前目录dir1连通目录下文件其压缩 实例4 --- 向压缩文件中test1.zip中添加test2.txt文件 实例5…

模型评估指标(一)Top-5和Top-1准确率

文章目录 一、前言二、什么是Top-5和Top-1准确率与错误率参考博客 一、前言 在看论文里面提到Top-5和top-1错误率&#xff0c;看了有点懵&#xff0c;所以去了解了一下 二、什么是Top-5和Top-1准确率与错误率 举个例子&#xff1a; 我们在训练完某个分类网络后&#xff0c…