非常好用的markdown转pdf工具

在文档处理和知识管理中,Markdown因其简洁易读的特性而广受欢迎,而PDF格式则因其广泛的兼容性和稳定性而被广泛用于文档分享和存档。然而,将Markdown文档高效地转换为PDF格式,同时保留格式和样式,一直是许多用户的需求。今天推荐一款好用的工具——mdout。它是一个用Go语言实现的Markdown转PDF命令行工具,基于headless Chrome技术,具备简单、可靠、易安装、可定制化和易拓展等特点。无论你是开发者、技术作家还是普通用户,mdout都能满足你将Markdown文档转换为PDF的需求,同时支持HTML和URL输入,提供了丰富的自定义选项,让你能够轻松生成符合个人或项目需求的PDF文档。

使用场景

技术文档编写

对于开发者和技术人员来说,编写技术文档是日常工作的一部分。使用Markdown格式编写文档既方便又高效,但有时需要将这些文档转换为PDF格式以便分享或存档。mdout能够快速将Markdown文档转换为PDF,同时保留代码块、数学公式等格式,确保技术文档的专业性和可读性。

学术写作

学术研究中,研究人员经常需要撰写论文、报告等文档,这些文档通常包含大量的数学公式和图表。mdout支持MathJax数学公式和Mermaid流程图,能够将这些复杂的内容准确地转换为PDF格式,满足学术写作的需求。

项目文档管理

在项目管理中,项目文档的整理和归档非常重要。mdout可以帮助项目团队将Markdown格式的项目文档转换为PDF格式,方便团队成员查阅和存档。同时,支持自定义主题和输出路径,使得文档管理更加灵活和高效。
4. 个人知识管理
对于个人用户来说,使用Markdown记录笔记和知识是一种常见的做法。mdout可以将这些Markdown笔记转换为PDF格式,方便用户进行知识整理和分享。支持HTML和URL输入,使得用户可以将网页内容快速转换为PDF,丰富知识库的内容。

安装步骤

mdout 的安装分为三步:

  1. 获取 mdout 可执行文件
  2. 配置 mdout 命令
  3. 下载 mdout 主题

1.1 脚本一键安装

自取安装包:https://pan.quark.cn/s/1e4d35cf8d4d

支持 macOS 或者 linux 、Windows系统

  • mdout.linux.x86-64.tar.gz 7.82 MB
  • mdout.macOS.x86-64.tar.gz 7.72 MB
  • mdout_windows_x86-64.tar.gz 7.65 MB
  • github # 主题包

1.2 windows配置和安装步骤

下载好 mdout_windows_x86-64.tar.gz 安装包,右键解压即可获得 mdout.exe

创建 mdout.exe 存放文件夹,例如 我的是存放电脑中的 D:\mdout
在这里插入图片描述

设置环境变量,右键我的电脑 -> 选择属性 -> 左边的高级系统设置
在这里插入图片描述

选择高级 -> 点击环境变量
在这里插入图片描述

找到下半部分的系统变量,双击 Path
在这里插入图片描述

在弹出来的窗口选择新建
在这里插入图片描述

填入mdout.exe 文件 所在路径,我这里是 D:\mdout ,然后一定要连续点完三个确定
在这里插入图片描述

检验是否成功打开 cmd 或者 powershell ,再或者 gitbash 都可以(推荐使用命令行的 windows 用户都至少装一个 gitbash ),输入 mdout ,看到如下输出就是成功了
在这里插入图片描述

1.3 linux配置和安装步骤

下载好安装包、并用tar命令解压文件

tar -xvzf mdout.linux.x86-64.tar.gz

放入系统可执行文件目录

sudo mv mdout /usr/local/bin

检验是否成功

 # 看到版本号输出就成功
mdout --version

1.4 macOS配置和安装步骤

下载好安装包、并用tar命令解压文件

tar -xvzf mdout.macOS.x86-64.tar.gz

放入系统可执行文件目录

mv mdout /usr/local/bin

检验是否成功

# 看到版本号输出就成功
mdout --version

配置文件夹说明

你输入mdout命令的时候, 会自动在用户的家目录下创建一个名为 mdout 的配置文件夹,并且在一般而言结构应该如下所示:

mdout
|-- conf.toml
|-- log
|   `-- xxxx-x.log
`-- theme|-- github|-- css|-- index.html`-- lib

不同系统的家目录不同,最终导致不同平台的 mdout 配置文件夹路径不同,以下表格以用户为 jabin 举例,在不同系统的路径:

系统配置文件夹路径
windowsC:/Users/jabin/mdout
linux/home/jabin/mdout
macOS/Users/jabin/mdout

初始化mdout 主题包

1.1 手动配置github主题包

假设我的电脑登录用户是jabin

参考 配置文件夹说明 中的不同平台配置文件夹路径以及文件位置,进入mdout/theme 文件夹,将下载好的 github 主题包放到到C:/Users/jabin/mdout/theme/ 文件夹中。

1.1 使用帮助

每个命令行程序都有帮助文档,mdout也不例外

mdout -h
mdout --help

1.2 输入文件路径可以是相对路径

最简单的示例,默认就是转换成pdf文档

mdout 文件路径

输入文件路径可以是相对路径、文件在当前目录

mdout yourfile.md

或文件在上级目录

mdout ../yourfile.md

文件路径也可以是绝对路径

mdout /tmp/markdown/yourfile.md

1.4 输入文件类型

mdout支持许多输入类型,其中最普遍的就是markdown,但同样也支持html输入,url输入,但是注意,如果输入是url,不要忘记带上http://

markdown转换pdf

mdout yourfile.md

html转换成pdf

mdout yourfile.html

url获取数据转换成pdf

mdout http://www.baidu.com

1.5 输出文件类型

对于markdown输入,mdout支持输出中间过程的结果。但对于html输入或者url输入,它们的唯一输出结果就是pdf文件了

markdown 输出pdf(输出pdf为默认选项)

mdout youtfile.md -t pdf  
mdout yourfile.md

markdown输出解析后html标签(这个选项可以得到markdown解析器的解析结果)

mdout youtfile.md -t tag

markdown输出经过处理后的完整html文件(常常用来调试主题)

mdout youtfile.md -t html

使用总结

mdout是一款功能强大、操作简单的Markdown转PDF工具。它基于headless Chrome技术,能够高效地将Markdown文档转换为PDF格式,同时支持HTML和URL输入,满足不同用户的需求。mdout的自定义主题功能允许用户根据自己的喜好调整文档的样式和格式,而易安装和易拓展的特点使得它适合各种技术水平的用户。无论是在技术文档编写、学术写作、项目文档管理还是个人知识管理中,mdout都能发挥重要作用,帮助用户高效地完成文档转换和管理任务。如果你经常需要处理Markdown文档并将其转换为PDF格式,mdout绝对值得一试的哈。

GitHub项目地址:https://github.com/JabinGP/mdout/tree/master

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

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

相关文章

八股文——JAVA基础:基本数据类型与包装类的区别

基本数据类型包含八种, 1.用途不同,在目前编程而言,基本除了使用局部变量会使用基本数据类型外,都会去使用包装类。包装类能够适用泛型是目前企业编程使用包装类的主要原因,而基本类型不行。除此之外,包装…

从0开始学习R语言--Day30--函数型分析

在研究离散变量之间的影响时,我们往往只能获取类似中位数,平均数点来额外数据特点;但如果数据本身具有时间特性的话,我们可以尝试运用函数型分析,将静态的离散点转为动态过程来分析,即若本来是分析离散点对…

Agent轻松通-P3:分析我们的Agent

欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 1 引言2 使用工具分析Agent:”日志“…

如何将FPGA设计验证效率提升1000倍以上(1)

我们将以三个设计样例,助力您提升设计开发效率。 对于FPGA应用开发来说,代码是写出来的,更是调试出来的。软件仿真拥有最佳的信号可见性和调试灵活性,被大多数工程师熟练使用,能够高效捕获很多显而易见的常见错误。 …

RabbitMQ 利用死信队列来实现延迟消息

RabbitMQ 利用死信队列来实现延迟消息 基于 TTL(Time-To-Live) 死信队列(DLX)的方式来实现延迟消息 首先消息会被推送到普通队列中,该消息设置了TTL,当TTL到期未被消费掉,则会自动进入死信队列…

Keepalived+Haproxy+Redis三主三从

一、集群部署 1、案例拓扑 2、资源列表 主从节点是随机分配的,下属列表只是框架: 操作系统主机名配置IP应用OpenEuler24master12C4G192.168.10.101RedisOpenEuler24master22C4G192.168.10.102RedisOpenEuler24master32C4G192.168.10.103RedisOpenEule…

Modbus转IEC104网关:电力自动化系统的桥梁

现代电力系统中,变电站、发电厂以及配电网络中存在大量采用不同通信协议的设备。Modbus协议因其简单易用在现场设备中广泛部署,而电力行业主流监控系统则普遍采用IEC 60870-5-104(简称IEC104)协议。协议差异导致的数据孤岛现象&am…

@annotation:Spring AOP 的“精准定位器“

想象你是一位快递员,负责给一个大型社区送快递。社区里有几百户人家,但只有特定家庭需要特殊服务: 普通快递:直接放快递柜生鲜快递:需要冷藏处理贵重物品:需要本人签收药品快递:需要优先配送 …

Web Worker使用指南 解锁浏览器多线程 ,提升前端性能的利器

文章目录 前言一、什么是 Web Worker二、适用场景1、CPU 密集型计算2、图像/视频处理3、实时数据流处理(高频场景)4、后台文件操作5、复杂状态机/AI逻辑(游戏开发)6、长轮询与心跳检测7、WebAssembly 加速8、WebGL 与 Canvas 渲染…

React 18.2.0 源码打包

一、React源码地址 GitHub:React 二、参考文章 sourcemap实战-生成react源码sourcemap Rollup中文文档 JavaScript Source Map 详解 全网最优雅的 React 源码调试方式 三、打包操作 安装依赖 // 全局安装yarn npm i -g yarn // 源码项目目录下执行yarn安装依赖…

UniApp 开发第一个项目

UniApp 开发第一个项目全流程指南,涵盖环境搭建、项目创建、核心开发到调试发布,结合最新实践整理而成,适合零基础快速上手: 🧰 一、环境准备(5分钟) 安装开发工具 HBuilderX(官方推荐IDE):下载 App 开发版,安装路径避免中文或空格 微信开发者工具(调试小程序必备…

Web项目开发中Tomcat10+所需的jar包

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 项目背景 Web项目中使用低版本Tomcat时常用的jar包如下: javax.servlet-apijavax.ejb-apijavax.jms-apijavax.json-api 当Web项目使用Tomcat10的版本时&#…

网络安全就业方向与现实发展分析:机遇、挑战与未来趋势

网络安全行业的战略地位与就业背景 在数字经济蓬勃发展的今天,网络安全已从技术分支演变为关乎国家安全、企业存亡和个人隐私的核心领域。根据国家网信办数据显示,2025年我国网络安全人才缺口达200万人,较2023年增长33%。这一现象源于三重驱…

iOS runtime随笔-消息转发机制

运行时的消息转发分三步, 当你调用了没有实现的方法时, 有机会通过runtime的消息转发机制补救一下 resolveInstanceMethod/resolveClassMethod 这里可以动态去创建方法来解决CrashforwardingTargetForSelector ​​​​​第一步未解决, 就会走到这里, 可以给出一个Target去转发…

vue3用js+css实现轮播图(可调整堆叠程度)

先看效果 html <divclass"outer"style"width: 650px;background: #fff;box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.1);border-radius: 15px;margin: 0 10px 15px 5px;">//这里用的是svg-icon,需要的可自行替换为其他图片<svg-iconid"btn_l&q…

Three.js项目实战:从零搭建小米SU7三维汽车

大家如果有过购车的经验&#xff0c;肯定会先从网站上收集车辆的信息&#xff0c;比如懂车帝&#xff0c;汽车之家&#xff0c;这些网站上逼真的看车效果是如何实现的呢&#xff0c;这节课带你从0-1快速的手搓一个看车小项目。 懂车帝官网 效果 视频教程和笔记 大家可以下方小…

Android13 永久关闭SELinux 权限

永久关闭 SeLinux 在cmdline中增加参数androidboot.selinuxpermissive&#xff1b; 芯片: QCM6115 版本: Android 13 kernel: msm-4.19 ~/temp_code/SLM927D_LA.UM.9.15$ git diff device/qcom/bengal/BoardConfig.mk diff --git a/device/qcom/bengal/BoardConfig.mk b…

Linux创建DHCP服务

Linux可作为DHCP服务端使用&#xff0c;为同一个网络下的其它机器动态分配ip。在一些情况下&#xff0c;可以起到很大的作用。 二级标题 安装dnsmasq # ubuntu sudo apt update -y sudo apt install -y dnsmasq# centos sudo yum install -y dnsmasq修改配置文件 sudo vim …

汽车4G-TBOX智能终端 汽车国标GB/T 32960协议

汽车国标GB/T 32960协议4G TBOX是一种广泛应用于车联网的设备&#xff0c;下面将从不同方面为你详细介绍。 移动管家汽车4G-TBOX智能终端定义与用途 4G TBOX是基于车联网技术智能服务系统中的采集终端。以车云网的4G TBOX_CC750为例&#xff0c;它为整个智能服务系统提供GPS/…

JavaEE-Mybatis初阶

什么是MyBatis MyBatis是⼀款优秀的 持久层 框架&#xff0c;⽤于简化JDBC的开发。 MyBatis本是 Apache的⼀个开源项⽬iBatis&#xff0c;2010年这个项⽬由apache迁移到了google code&#xff0c;并 且改名为MyBatis 。2013年11⽉迁移到Github 创建项目时添加依赖 上面有…