这个小工具可以把
.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)
}
📝 使用方法
- 保存代码为
main.go
- 准备一个
test.md
文件,例如:
markdown
# Hello Markdown
这是一个 **Markdown 转 HTML** 的测试。
- 项目一
- 项目二
- 运行:
bash
go run main.go test.md
- 会生成
test.html
,在浏览器里打开就能看到格式化的内容 🎉