Go语言实战案例-开发一个Markdown转HTML工具

这个小工具可以把 .md 文件转换为 .html 文件,非常适合写笔记、博客或者快速预览 Markdown 内容。


📌 案例目标

  • • 读取一个 Markdown 文件
  • • 使用开源库将 Markdown 转换为 HTML
  • • 将 HTML 输出到新文件中

📦 所需库

我们用 goldmark 这个 Markdown 解析库,它轻量且高效。

安装:

go get github.com/yuin/goldmark

💻 实现代码

package mainimport ("fmt""io/ioutil""os""path/filepath""github.com/yuin/goldmark"
)func main() {if len(os.Args) < 2 {fmt.Println("用法: go run main.go <markdown文件>")return}mdFile := os.Args[1]// 读取Markdown文件content, err := ioutil.ReadFile(mdFile)if err != nil {fmt.Printf("读取文件失败: %v\n", err)return}// 转换为HTMLvar htmlOutput []bytemd := goldmark.New()var buf []bytehtmlBuf := &buferr = md.Convert(content, htmlBuf)if err != nil {fmt.Printf("Markdown 转换失败: %v\n", err)return}htmlOutput = *htmlBuf// 生成HTML文件名htmlFile := filepath.Base(mdFile[:len(mdFile)-len(filepath.Ext(mdFile))]) + ".html"// 写入HTML文件err = ioutil.WriteFile(htmlFile, htmlOutput, 0644)if err != nil {fmt.Printf("写入HTML文件失败: %v\n", err)return}fmt.Printf("转换成功!输出文件: %s\n", htmlFile)
}

📝 使用方法

  1. 1. 保存代码为 main.go
  2. 2. 准备一个 test.md 文件,例如:
# Hello Markdown
这是一个 **Markdown 转 HTML** 的测试。
- 项目一
- 项目二
  1. 3. 运行:
go run main.go test.md
  1. 4. 会生成 test.html,在浏览器里打开就能看到格式化的内容 🎉

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

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

相关文章

基于51单片机的太阳能锂电池充电路灯

基于51单片机的太阳能锂电池充电路灯系统设计 1 系统功能介绍 本设计以 STC89C52单片机 为核心&#xff0c;构建了一个能够利用太阳能为锂电池充电并智能控制LED路灯的系统。系统结合了 光照检测电路、LED灯电路、按键检测电路、太阳能充电电路 等模块&#xff0c;实现了节能、…

PAT 1178 File Path

这一题的大意是给出了一个windows的文件夹目录&#xff0c;让我们按照所属的目录关系&#xff0c;来找相应的目录是否存在&#xff0c;如果存在&#xff0c;就输出找到该文件的路径&#xff0c;如果不存在输出error 我的思路是用合适的树形结构保存下来目录的所属关系&#xff…

云原生部署_k8s入门

K8S官网文档&#xff1a;&#xfeff;https://kubernetes.io/zh/docs/home/Kubernetes是什么Kubernetes 是用于自动部署、扩缩和管理容器化应用程序的开源系统。 Kubernetes 源自 &#xff0c;Google 15 年生产环境的运维经验同时凝聚了社区的最佳创意和实践。简称K8s.Kubernet…

实战项目-----Python+OpenCV 实现对视频的椒盐噪声注入与实时平滑还原”

实战项目实现以下功能&#xff1a;功能 1&#xff1a;为视频每一帧添加椒盐噪声作用&#xff1a;模拟真实环境中图像传输或采集时可能出现的噪声。实现方式&#xff1a;读取视频的每一帧。随机选择 10000 个像素点&#xff0c;将其设置为黑色&#xff08;0&#xff09;或白色&a…

Day42 PHP(mysql注入、跨库读取)

一、sql注入基本原理&#xff1a;没有对用户输入的数据进行限制&#xff0c;导致数据库语句可以做什么&#xff0c;用户就可以做什么。取决于不同数据库的不同查询语言&#xff0c;所以为什么有mysql注入/orcale注入等等。步骤&#xff1a;【access】表名&#xff08;字典爆破来…

机器人控制器开发(部署——软件打包备份更新)

文章总览 为什么做备份更新 为机器人控制器设计一套打包备份更新机制&#xff0c;为控制器的批量生产和产品与项目落地做准备。 当某个模块出现bug需要升级时&#xff0c;用户可以快速获取正确的bak包并导入到控制器中重启生效。 如果没有做好软件的备份更新机制&#xff0c…

LaTeX TeX Live 安装与 CTAN 国内镜像配置(Windows / macOS / Linux 全流程)

这是一份面向国内环境的 LaTeX 从零到可编译 指南&#xff1a;覆盖 TeX Live / MacTeX 安装、PATH 配置、CTAN 国内镜像&#xff08;清华/北外/上交/中科大等&#xff09;一键切换与回滚、常见坑位&#xff08;权限、镜像路径、版本切换&#xff09;、以及 XeLaTeX/latexmk 的实…

WhoisXML API再次荣登2025年美国Inc. 5000快速成长企业榜单

WhoisXML API非常自豪地宣布&#xff0c;我们再次荣登美国权威榜单——2025年Inc.5000全美成长最快的私营企业之一。今年&#xff0c;公司在地区排名中位列第119名&#xff0c;在全美总体排名中位列第4,271名。Inc. 5000榜单要求参评企业必须保持独立运营&#xff0c;并在2021至…

Elasticsearch面试精讲 Day 9:复合查询与过滤器优化

【Elasticsearch面试精讲 Day 9】复合查询与过滤器优化 在Elasticsearch的搜索体系中&#xff0c;复合查询&#xff08;Compound Queries&#xff09;与过滤器&#xff08;Filters&#xff09;优化是构建高效、精准搜索逻辑的核心能力。作为“Elasticsearch面试精讲”系列的第…

Android使用ReactiveNetwork监听网络连通性

引入库 implementation com.github.pwittchen:reactivenetwork-rx2:3.0.8监听网络连接变更ReactiveNetwork.observeNetworkConnectivity(context).subscribeOn(Schedulers.io())// ... // anything else what you can do with RxJava.observeOn(Schedulers.computation()).subs…

基于阿里云部署 RustDesk 自托管服务器

基于阿里云部署 RustDesk 自托管服务器一、背景与需求场景二、什么是 RustDesk&#xff1f;为什么选择自托管&#xff1f;2.1 RustDesk 是什么&#xff1f;2.2 为什么选择自托管&#xff1f;三、环境准备与架构说明四、操作步骤4.1 在阿里云上安装 RustDesk 服务端4.1.1 下载并…

细说分布式ID

针对高并发写&#xff0c;分布式ID是其业务基础&#xff0c;本文从一个面试题细细展开。面试官&#xff1a;1.对于Mysql的InnoDB引擎下&#xff0c;自增ID和UUID作为主键各自有什么优劣&#xff0c;对于一张表的主键你建议使用哪种ID&#xff1f;2.除了UUID是否还了解其他类型的…

2025年大数据专业证书报考指南:专科学历必看的8大选择​

对于大专学历的同学来说&#xff0c;2025年进入大数据行业是一个充满机遇的选择。大数据领域发展迅速&#xff0c;各类证书能够帮助求职者提升专业能力、增强就业竞争力。其中最推荐的是CDA数据分析师&#xff0c;这个证书适应了未来数字化经济和AI发展趋势&#xff0c;难度不高…

Python爬虫实战:研究Axis Artist模块,构建电商数据采集和分析系统

1. 引言 1.1 研究背景与意义 在大数据时代,互联网上蕴藏着海量有价值的信息,这些信息涵盖了社会、经济、科技等各个领域。高效地从互联网获取数据并进行深度分析,对于企业决策、学术研究、市场分析等都具有重要意义。Python 作为一种功能强大的编程语言,凭借其丰富的库支…

突破大语言模型推理瓶颈:深度解析依赖关系与优化策略

突破大语言模型推理瓶颈&#xff1a;深度解析依赖关系与优化策略当ChatGPT需要5秒才能生成一个回答&#xff0c;当企业级大模型每秒只能处理3个用户请求——这些性能瓶颈的背后&#xff0c;隐藏着大语言模型推理计算中复杂的依赖关系网。在大语言模型推理过程中&#xff0c;依赖…

整理了几道前端面试题

1. 若是有两个数组ar1和ar2&#xff0c;求它们的并集和交集&#xff0c;要怎么做&#xff1f; const ar1 [1, 2, 3, 4]; const ar2 [3, 4, 5, 6];一、求并集 (Union) 目标&#xff1a; 把两个数组合并成一个新数组&#xff0c;新数组包含所有出现过的元素&#xff0c;但每个…

Mac M4环境下基于VMware Fusion虚拟机安装Ubuntu24.04 LTS ARM版

Mac M4环境下基于VMware Fusion虚拟机安装Ubuntu24.04 LTS ARM版 1 下载Ubuntu镜像 在Ubuntu官网下载Ubuntu24.04 LTS的arm版镜像&#xff0c;这里选择ubuntu-24.04-live-server-arm64.iso&#xff0c;支持arm的似乎没有合适的desktop版本&#xff0c;Server版本默认是不带图…

开源与定制化对比:哪种在线教育系统源码更适合教育培训APP开发?

如今&#xff0c;“在线教育系统源码”已经成为许多教育培训机构、创业者甚至传统学校的高频关键词。无论是打造一款在线教育APP&#xff0c;还是开发企业内部培训平台&#xff0c;源码选择都决定了后续的开发效率、产品体验与商业化潜力。 在实际开发中&#xff0c;常见的源码…

中间件的日志分析

将日志文件access.log复制到kali中进行分析使用命令查看文件中各IP的访问次数&#xff0c;依次分析其行为awk { print $1 } access.log | sort | uniq -c |sort -nr172.16.3.189cat access.log | grep 172.16.3.198行为模式分析使用固定弱密码进行身份验证 几乎所有请求都使用用…

【Big Data】云原生与AI时代的存储基石 Apache Ozone 的技术演进路径

目录 一、Apache Ozone是什么&#xff1f; 二、Ozone的诞生背景 三、Ozone的架构设计 1. 分层架构设计 2. Ozone Manager (OM) 3. Storage Container Manager (SCM) 4. DataNode 5. Raft协议应用 四、Ozone解决的关键问题 1. 元数据管理瓶颈 2. 小文件性能问题 3. …