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

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


📌 案例目标

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

📦 所需库

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

安装:

bash 复制代码
go get github.com/yuin/goldmark

💻 实现代码

go 复制代码
package main

import (
	"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
	}

	// 转换为HTML
	var htmlOutput []byte
	md := goldmark.New()
	var buf []byte
	htmlBuf := &buf
	err = 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. 保存代码为 main.go
  2. 准备一个 test.md 文件,例如:
markdown 复制代码
# Hello Markdown
这是一个 **Markdown 转 HTML** 的测试。
- 项目一
- 项目二
  1. 运行:
bash 复制代码
go run main.go test.md
  1. 会生成 test.html,在浏览器里打开就能看到格式化的内容 🎉

相关推荐
风骏时光牛马1 小时前
AIAgent异常故障根因分析与复盘总结
前端
weixin_431600441 小时前
前端数据埋点(7):Web Vitals——页面慢不慢,不是再包一层 fetch
前端·性能优化·sentry·数据埋点
এ慕ོ冬℘゜2 小时前
前端实战:jQuery实现动态表格渲染与状态切换功能
前端·javascript·jquery
烂蜻蜓3 小时前
Flask入门教程(十二):表单处理——从基础到Flask-WTF完整实践
后端·python·flask
jay神3 小时前
【计算机毕业设计】基于Flask+Vue的电影数据可视化与智能推荐系统
前端·vue.js·python·信息可视化·flask·毕业设计·课程设计
FreeTinker9 小时前
HTML本地存储技术解析:localStorage与sessionStorage的原理、差异与应用场景
前端·html
qq_452396239 小时前
第十二篇:《全链路监控与可观测性:前端错误追踪与性能分析》
前端
2601_9620559710 小时前
跟据spring boot版本,查看对应的tomcat,并查看可支持的tomcat的版本范围
spring boot·后端·tomcat
wangruofeng10 小时前
Phosphor Icons 官网源码拆解:URL 即存储、水波动画与 7362 Star 图标库的架构实践
前端·架构·github
BigTopOne10 小时前
WebRTC Native / Android 开发学习资源整理
前端