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

方案一,使用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

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用flexmark-java库将HTML转换为Markdown,你可以按照以下步骤进行操作: 1. 首先,确保你已经添加了flexmark-java库的依赖项到你的项目中。你可以在Maven或Gradle配置文件中添加以下依赖项: Maven: ```xml <dependency> <groupId>com.vladsch.flexmark</groupId> <artifactId>flexmark-all</artifactId> <version>0.36.8</version> </dependency> ``` Gradle: ```groovy implementation 'com.vladsch.flexmark:flexmark-all:0.36.8' ``` 2. 创建一个方法来执行HTMLMarkdown的转换。下面是一个示例方法: ```java import com.vladsch.flexmark.html2md.converter.HtmlConverter; public class HtmlToMarkdownConverter { public static String convert(String html) { HtmlConverter converter = HtmlConverter.builder().build(); return converter.convert(html); } public static void main(String[] args) { String html = "<h1>Hello, world!</h1>"; String markdown = convert(html); System.out.println(markdown); } } ``` 在上面的代码中,我们使用HtmlConverter类将HTML转换为Markdown。你可以将要转换的HTML作为参数传递给`convert`方法,并返回对应的Markdown字符串。 3. 运行代码并查看输出结果。在上面的示例中,我们将`<h1>Hello, world!</h1>`作为HTML输入,并将其输出为Markdown字符串。你可以根据需要修改输入的HTML内容。 注意:flexmark-java库还提供了许多其他选项和配置,你可以根据需要进行进一步的定制。例如,你可以添加扩展来支持更多的Markdown语法,或者自定义转换器的行为。你可以查阅flexmark-java的文档以获取更多详细信息和示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值