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,在浏览器里打开就能看到格式化的内容 🎉

相关推荐
李剑一7 分钟前
为什么几乎所有的知名开源项目都是外国人写的?
前端·ai编程·deepseek
小郎君6588 分钟前
(一)为什么表单需要第三种状态:disabled、readonly 与纯文本展示
前端·vue.js
计算机魔术师12 分钟前
1.4万亿没人接,OpenAI自己砍了1500亿
前端
溪语流沙1 小时前
【每天一个CSS | Day41】开关三连:一套状态机,三种视觉翻译
前端·css·html5·每日一练·按钮
变与不变8061 小时前
css定位布局精讲
前端·css
LHICOD1 小时前
Linux-2
java·linux·后端·jar·vmware·svm·vm
小杨互联网1 小时前
Go 现代 CLI 工具离线镜像合集
开发语言·后端·golang·开源·go·命令行
lazy H1 小时前
【计算机网络】第 15 篇:Java BIO、NIO 与高并发网络通信——从 Socket 理解 I/O 模型
网络·后端·tcp/ip·计算机网络·nio·408
FRing032 小时前
JavaScript入门到精通三十三(异常处理、call方法、apply方法、bind方法、防抖、节流)
开发语言·前端·javascript
geovindu2 小时前
rust: Semaphore Pattern
开发语言·后端·设计模式·rust·代理模式·企业级信号量模式·同步型模式