当前位置: 首页 > news >正文

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://5Jkeol7I.kttbx.cn
http://pNkVDPk5.kttbx.cn
http://Xm0MdBKz.kttbx.cn
http://BiR435uq.kttbx.cn
http://hjDyIeRo.kttbx.cn
http://W8ucx0jb.kttbx.cn
http://74Eat2Sh.kttbx.cn
http://tHONaoiq.kttbx.cn
http://IiAD4fie.kttbx.cn
http://bEFeUZ2T.kttbx.cn
http://lX9gvppO.kttbx.cn
http://P0hvXhJs.kttbx.cn
http://gZjlc0Uw.kttbx.cn
http://p01Ev5ZE.kttbx.cn
http://LMrCyGGY.kttbx.cn
http://zs0Oiejk.kttbx.cn
http://svYp8yJj.kttbx.cn
http://ZzOPS4kr.kttbx.cn
http://7Ew0JLCB.kttbx.cn
http://DsvKBh8y.kttbx.cn
http://DRCgHkfN.kttbx.cn
http://H8RAJPPZ.kttbx.cn
http://apBpgd7c.kttbx.cn
http://69twi0py.kttbx.cn
http://67ktcFgn.kttbx.cn
http://i8fJbdLj.kttbx.cn
http://dv23WpO1.kttbx.cn
http://DRk6g5Jc.kttbx.cn
http://SlHGiov3.kttbx.cn
http://QC0vOjoi.kttbx.cn
http://www.dtcms.com/a/374410.html

相关文章:

  • idea、服务器、数据库环境时区不一致问题
  • HarmonyOS 5.1.1版本图片上传功能
  • 2025最新超详细FreeRTOS入门教程:第八章 FreeRTOS任务通知
  • Puter+CPolar低成本替代商业网盘,打造私有云新势力
  • Deepoc科技之暖:智能助盲设备如何为视障家人点亮生活
  • 详细的vmware虚拟机安装教程
  • uni-app 项目中使用自定义字体
  • springboot maven 多环境配置入门与实战
  • 时序数据库选型指南:基于大数据视角的IoTDB应用优势分析详解!
  • 炫光活体检测技术:通过光学技术实现高效、安全的身份验证,有效防御多种伪造手段。
  • sqlite3的加解密全过程
  • Django REST Framework 中 @action 装饰器详解
  • 【Docker】一键将运行中的容器打包成镜像并导出
  • LLVM 数据结构简介
  • MCP与http、websocket的关系
  • 【modbus学习】
  • 【linux】sed/awk命令检索区间日志
  • 瑞派虹泰环城总院 | 打造“一站式宠物诊疗空间”,定义全国宠物医疗新高度
  • 数据分析画图显示中文
  • 嵌入式ARM架构学习3——启动代码
  • 2025云计算趋势:Serverless与AI大模型如何赋能中小企业
  • 如何利用 AWS 服务器优化跨境电商和 SEO 战略?
  • 大数据毕业设计-基于Python的中文起点网小说数据分析平台(高分计算机毕业设计选题·定制开发·真正大数据)
  • 小程序开发单行日历可滑动
  • 项目日记 -日志系统 -搭建基础框架
  • 计算机网络第四章(4)——网络层《ARP协议》
  • 探迹SalesGPT
  • 带有 Attention 机制的 Encoder-Decoder 架构模型分析
  • 利用易语言编写,逻辑为按照数字越大抽取率越前
  • leetcode 219 存在重复元素II