标签 Blogger 下的文章

使用issue2md将Github issue转换为Markdown

本文永久链接 – https://tonybai.com/2024/12/23/convert-github-issue-to-markdown-with-issue2md

到2024年底,不论你是否承认,AI时代都已经到来!近两个月,三大顶级商业AI模型巨头:Claude Sonnet 3.5Google Gemini 2.0 Flash Experimental以及ChatGPT o3你方唱罢我登场,好不热闹!

作为走在AI应用前沿的程序员,利用AI辅助自己提高学习和工作实践的效率都是必不可少的。在使用AI的过程中,我们经常需要向其提供一些文档资料,对于文字资料,AI更偏爱TXT、Markdown、PDF等格式的文件。部署在Vercel上的MarkdownDown支持输入网页URL并将其转换为Markdown,而微软开源的MarkItdown则能将多种格式(pdf、ppt、word、html、zip等)转换为Markdown。这些工具在实践中帮助我们实现对AI的快速“投喂”。

然而,一些资料,如GitHub Issues,尚不能通过上述工具方便地转换为干净的、无额外干扰内容的Markdown或其他适合投喂给AI的格式。受到MarkdownDown的启发,我思考是否可以将GitHub Issues转换为Markdown,最终促成了issue2md这个想法。该工具旨在简化GitHub Issues与Markdown之间的转换过程,使得开发者可以更高效地利用AI理解Github issue中的内容,包括用户讨论中的一些观点和想法。

三个月前,我利用AI完成了issue2md这个小工具,我自己甚至没有写下一行代码。我仅仅对其提出一个小小的要求,那就是不要依赖任何第三方包,仅可以依赖Go标准库。在这三个月中,该工具给了我很大的帮助,将由它生成的Github Issue对应的Markdown文档投喂给AI后,可以让我快速理解Github issue的要点,尤其是那些历经几年讨论,积累了数百条comment的issue!

这里我将issue2md放到github上供大家下载使用,也希望能给大家带去相同的帮助。

下面简单介绍一下issue2md的用法。

issue2md项目有两个工具,或者说两种使用模式,一种是命令行模式,使用issue2md这个命令行工具。另外一种则是Web模式,使用issue2mdweb这个工具。

如果你喜欢命令行模式,那么你只需要使用下面命令安装issue2md即可:

$go install github.com/bigwhite/issue2md/cmd/issue2md@latest

issue2md cli程序的使用方法非常简单:

Usage: issue2md issue-url [markdown-file]
Arguments:
  issue-url      The URL of the GitHub issue to convert.
  markdown-file  (optional) The output markdown file.

它的第一个参数是github issue的URL。以Go 1.24版本json包增加对omitzero的支持的issue为例,它的url是https://github.com/golang/go/issues/45669,我们原封不动的将其作为issue2md的第一个参数执行:

$issue2md https://github.com/golang/go/issues/45669
Issue and comments saved as Markdown in file golang_go_issue_45669.md

issue2md cli默认会生成一个命名格式如下的文件:

{owner}_{repo}_issue_number.md

其内容使用markdown编辑器打开并渲染后将呈现如下的效果:

当然你也可以通过传入第二个命令行参数,作为最终生成的markdown的文件名!

如果你不喜欢命令行模式,你可以使用issue2mdweb提供的Web模式。最简单的启动一个issue2mdweb服务的方法就是利用我发布到Docker hub上的issue2md的公共镜像,你可以像下面这样在本地或你的私有云里运行一个issue2mdweb服务:

$docker run -d -p 8080:8080 bigwhite/issue2mdweb

然后用你的浏览器打开http://{host}:8080这个地址,你将看到如下的页面:

在中间的文本框中输入你要转换的Github issue地址,比如前面的https://github.com/golang/go/issues/45669,点击“Convert”,你的浏览器就会自动将转换后的Markdown文件下载到你的本地,文件命名和issue2md cli的默认命名格式一致!

如果你不想使用Docker运行,你可以自行下载issue2md代码并编译,也可以使用scripts中的命令将issue2mdweb安装为一个Systemd unit服务!

这里要注意的是,issue2md使用了Go标准口实现了对Github API的访问且没有使用任何账号信息,它仅适合将Public仓库的issue转换为Markdown,并且由于Github对API调用的限速,你在使用issue2md时不能过于频繁!此外,你若发现issue2md的bug或者你有什么新的想法,欢迎在issue2md仓库中提出你宝贵的issue

最后打个“广告”,根据极客时间的专栏推广计划,我在春节前会为“Go语言第一课”专栏续写五篇文章,其中的第一篇“Go测试的5个使用建议”已经上线。

无论你是“Go语言第一课”的学员,还是首次听说这门专栏的小伙伴,我都欢迎你阅读这些文章,希望这些专栏文章能你带去新的收获!也欢迎你将阅读后的感受在评论区分享出来!


Gopher部落知识星球在2024年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。同时,我们也会加强代码质量和最佳实践的分享,包括如何编写简洁、可读、可测试的Go代码。此外,我们还会加强星友之间的交流和互动。欢迎大家踊跃提问,分享心得,讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落,享受coding的快乐! 欢迎大家踊跃加入!

img{512x368}
img{512x368}

img{512x368}
img{512x368}

著名云主机服务厂商DigitalOcean发布最新的主机计划,入门级Droplet配置升级为:1 core CPU、1G内存、25G高速SSD,价格5$/月。有使用DigitalOcean需求的朋友,可以打开这个链接地址:https://m.do.co/c/bff6eed92687 开启你的DO主机之路。

Gopher Daily(Gopher每日新闻) – https://gopherdaily.tonybai.com

我的联系方式:

  • 微博(暂不可用):https://weibo.com/bigwhite20xx
  • 微博2:https://weibo.com/u/6484441286
  • 博客:tonybai.com
  • github: https://github.com/bigwhite
  • Gopher Daily归档 – https://github.com/bigwhite/gopherdaily
  • Gopher Daily Feed订阅 – https://gopherdaily.tonybai.com/feed

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。

又当爸爸了!

2020年7月23日早6点46分,随着我家二宝(小名:七月)的呱呱坠地,我又当爸爸了!

img{512x368}

图:二宝出生后的第一张照片

距离我家大宝(果果)的出生已经十年了。在这十年间,果果已经出落成一个聪明可爱、灵通剔透、漂亮温柔的大姑娘了,妥妥的是妈妈的小棉袄,爸爸的小情人:),姥姥的小粘包,爷爷奶奶的乖孙女

img{512x368}

图:大宝果果是大姑娘了

但每每当果果提到其同班同学多数都有姐妹或兄弟陪伴上学、上才艺课的时候,我和我老婆的心里就会一动:究竟该不该给果果生一个亲弟弟/妹妹呢? 2019下半年,我们决定为果果生个弟弟或妹妹。我们计划尝试半年,如果不行,我们年龄也大了,也许真的就不会再要了。结果上天十分眷顾我们,老婆在10月末怀上了

大宝的愿望是我们要二宝的最直接和最主要的原因,我们也觉得两个宝宝在人生路上能相互陪伴总是更好的。其次,大宝出生时,我们还年轻,体验不充分,这次想再来一遍(也不知道哪来的这份勇气^_^);再次,老人那边还有精力,还可以帮忙照顾孩子,我们在忙事业的同时,也不会有太多的后顾之忧;最后,两个宝宝也让家庭结构更合理。

写到这里,我也感觉上面的理由写得有些“冠冕堂皇”!想要就要,哪还需要这么多“借口”^_^。

生二宝唯一的担心就是已经是“高龄”的老婆。和十年前年轻的她相比,这次在孕期、生产和产后的风险都要高出许多。因此,在整个十月怀胎以及生产的过程中,我都更为紧张,但能做的也只有全程守护在老婆身边:制定营养计划、每天接送、全程陪检等。老婆本人倒是没有这方面担心,鉴于大宝生产前后的顺利,她坚信这次二宝也会同样顺利。

整个孕期也正如老婆坚信的那样,一切都很顺利,除了老婆患上了妊娠期糖尿病。老婆的一个性格特点就是认准一件事后,就能坚定不移地、自律地执行下去。由于妊娠期糖尿病对饮食的要求,老婆整整几个月都远离美味的“糖分”,保证了二宝在肚肚里的健康发育。同时,为了能够像一胎那样顺产,老婆坚持每天都要走上1w步,风雨无阻,天气不好,就在楼梯间里爬楼梯或在顶楼露台来回踱步。这份坚毅让老婆在38周的彩超检查中收获了期望的结论:医生看完彩超结果后给了我老婆十分肯定的诊断意见:你一定可以自己生

老婆,你真的很伟大!

老婆在7月22日早晨见红了。按照一般经验,见红后24-48小时二宝就会出生了。7月23日凌晨3点老婆有了宫缩反应,虽然还不规律,但保险起见,我和老婆还是决定带上行李赶往医院。3:30到达医院急诊,产科的急诊大夫给开了一些检查和检验,结果出来后,就安排老婆去了(盛京医院滑翔园区)第五产科住院处办理住院。住院医生给老婆做了内检,说老婆今天很快就能生。早上5:00多,老婆进入待产室。随着规律性宫缩的到来,老婆十分痛苦。6点20分,医生决定让老妈进分娩室,我就在外面焦急等待。

老婆肚子里的二宝仿佛知道体谅她的妈妈,十分配合妈妈生产,让产程大大缩短,大大减少了老婆生产过程中承受的疼痛的时长。 在老婆进入分娩室后仅30分钟,站在分娩室外的我就听到了我家二宝第一声响亮的婴儿啼哭声。那时那刻,我和大宝出生时一样,流下了兴奋而又心疼老婆的眼泪

母女平安!我的一颗高悬的心终于放下了,我再次当爸爸了!


微信赞赏:
img{512x368}

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats