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

发布于:2025-09-10 ⋅ 阅读:(22) ⋅ 点赞:(0)

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


📌 案例目标

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

📦 所需库

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

安装:

go get github.com/yuin/goldmark

💻 实现代码

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


网站公告

今日签到

点亮在社区的每一天
去签到