Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >markdown 转 word 工具推荐,API文档、数据库文档快速生成调研

markdown 转 word 工具推荐,API文档、数据库文档快速生成调研

作者头像
Lcry
发布于 2025-06-10 01:12:26
发布于 2025-06-10 01:12:26
4140
举报
文章被收录于专栏:Lcry个人博客Lcry个人博客

最近工作中做了一些调研性的工作,好久没更新博客了,今天就水一篇把,最近在补项目中的相关文档,众所周知接口文档和数据库字段文档是必须的,针对这两块东西如果是微服务的话接口众多,要从零开始梳理不知道要到猴年马月,所以力求花最少时间搞定这两样东西。

为什么标题要拧出来说 markdown 这个东西,因为现在写的大多数文档都是以 .md 格式写的,习惯了真的就是比 word 这些工具好用啊,不知道为什么 wps 这个东西现在特别的臃肿,每次打开都感觉特别卡。

接口 API 导出调研

主要调研了 apifox、apipost、swagger 解析导出、knife4j 导出方案。

要想导出非常完美的文档要依赖平时代码中的 javadoc 注释或者 swagger 注解打得好。但是大家懂的,要求每个人都去完善注释不大现实。

API 文档嘛,主要是客户需要肯定就要 word,但是理论来说交付完毕给 pdf 也是 ok 的,以前还拿到过对接文档是直接把 swagger 导出成 html,只要能看能解决问题就 ok 嘛,但是为了方便二次修改所以最终还是导出 word,如果要 pdf 再转一次就行了。

所有方案都是围绕 swagger 自带的接口生成,无非就是解析然后生成不同的格式。

apifox 和 apipost 同属于一类,导出的时候都不能直接导出 word,只能先导出 markdown,然后再使用类似于 pandoc 这种工具进行转换成其他格式。

swagger 解析导出就还得去定义 word 模板渲染啥的,虽然找了有类似于这样的开源项目,但是如果注释不是很完善很容易各种报错。

最终选择了 knife4j 直接在线导出 markdown文件。

markdown 转 word 工具推荐,API文档、数据库文档快速生成调研
markdown 转 word 工具推荐,API文档、数据库文档快速生成调研

很多人会问,离线文档不是有下载 word 吗,你猜我为什么不用?哈哈哈哈,这上面的 word 其实不是 word,而是转成 html 然后整到一个 word 文档里,特别奇怪,还不方便看。

然后将 md 转成 word 即可,也是找了一堆,不是样式有问题就是格式错乱,特别是表格很容易出问题,最终选定了markdocx 这个开源工具实现,能达到效果。

markdown 转 word 工具推荐,API文档、数据库文档快速生成调研
markdown 转 word 工具推荐,API文档、数据库文档快速生成调研

markdocx 项目介绍

markdocx 是一个开源项目,可以将你的 markdown 文件转换为 MS Word(.docx)/ Convert your Markdown files to MS Word (.docx)。

项目地址:https://github.com/ccwud/markdocx

windows 下可以直接下载 release 包使用,macos 的话可以直接安装 python 源码运行食用。

markdocx.exe C:\Users\admin\Downloads\md\input -o C:\Users\admin\Downloads\md\word-output -s C:\Users\admin\Downloads\md\style.yaml

数据库文档生成调研

数据库文档因为项目有使用 mySQL(MariaDB) 和 达梦数据库,所以必须至少要支持这 2 种数据库的自动文档生成。

尝试过:DBCHMSmartSQLscrew

前两个工具每次导出都有奇奇怪怪的问题,不知道是不是因为公司电脑是 windows11,还以为是我操作不对,看也是很久没有维护了,所以没折腾。

screw这个工具官方仓库不支持达梦数据库,但是看到有 fork 项目添加支持了达梦数据库,然后也可以自定义导出样式和模板。

所以直接最终选用了screw,支持达梦数据库的点这个仓库

直接看效果:

markdown 转 word 工具推荐,API文档、数据库文档快速生成调研
markdown 转 word 工具推荐,API文档、数据库文档快速生成调研

screw 项目介绍

screw 是一个开源项目,专注于简洁好用的数据库表结构文档生成工具。虽然官方仓库好久没有更新了,如果不支持你所使用的数据库,可以自己 fork 代码进行二开,主要就是实现一下查询数据库的元数据信息就行了。实现逻辑参考:#screw-core/src/main/java/cn/smallbun/screw/core/query

项目开源地址:https://github.com/pig-mesh/screw

写在最后

通过本文你可以快速了解到生成项目 API 接口、数据库字典文档,大大减少人力成本。最后想说的确实开源项目降低了技术的门槛,让人人都能享受到开源的乐趣。但是开源项目大多数是用爱发电,大多数公司可能也不会意思把“烂代码”暴露给大众看,但是长远看,开源一些公共的项目更加有利于提升企业产品的知名度和商业化方案的推广,最后的最后,如果大家有更和的解决方案可以评论区留言大家一起探讨。

文章目录

function Catalogswith(){document.getElementById("catalog-col").classList.toggle("catalog");document.getElementById("catalog").classList.toggle("catalog")}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
asyncTool解决任意的多线程并行、串行、阻塞、依赖、回调的框架
该框架目前正在 京东 App 后台 接受苛刻、高并发、海量用户等复杂场景业务的检验测试,随时会根据实际情况发布更新和 bugFix。
猿天地
2020/04/07
1.6K0
asyncTool解决任意的多线程并行、串行、阻塞、依赖、回调的框架
CompletableFuture 异步多线程,那叫一个优雅
虽然 Future 以及相关使用方法提供了异步执行任务的能力,但是对于结果的获取却是很不方便,我们必须使用Future.get()的方式阻塞调用线程,或者使用轮询方式判断 Future.isDone 任务是否结束,再获取结果。
程序员大彬
2023/03/01
1.8K0
CompletableFuture 异步多线程,那叫一个优雅
京东一面:说说 CompletableFuture 的实现原理和使用场景?懵逼了。。
CompletableFuture是jdk1.8引入的实现类。扩展了Future和CompletionStage,是一个可以在任务完成阶段触发一些操作Future。简单的来讲就是可以实现异步回调。
肉眼品世界
2022/04/19
3320
京东一面:说说 CompletableFuture 的实现原理和使用场景?懵逼了。。
大厂常用工具类Completablefuture的面试题都有哪些?这次我都替你收集好了。
最近在复习自己的简历,发现Completablefuture这个工具类怎么突然这么爱考了,牛客上的面经基本都在问这个工具类。因此今天我们就来专门总结一下Completablefuture常见的面试题。
程序员牛肉
2025/03/17
3840
大厂常用工具类Completablefuture的面试题都有哪些?这次我都替你收集好了。
Java多任务编排技术
JDK 5新增Future接口,用于处理异步计算结果。虽然Future提供异步执行任务能力,但是获取结果很不方便,要么通过Future#get阻塞调用线程,或者通过轮询 Future#isDone判断任务是否结束,再获取结果。
科技新语
2025/07/31
1100
Java多任务编排技术
【Netty】Netty 异步任务模型 及 Future-Listener 机制
1 . 线程池 : Netty 模型核心就是两个线程池 , BossGroup 线程池 和 WorkerGroup 线程池 ;
韩曙亮
2023/03/27
1.7K0
【Netty】Netty 异步任务模型 及 Future-Listener 机制
手写中间件之——并行框架(3 异步回调如何实现)
上一篇主要讲了任务的编排该如何实现,包括串、并、串并结合。建议一定要手写个小demo去尝试各种基本组合。
天涯泪小武
2020/01/13
1.2K2
软件设计中的异步思想与实践
程序或系统中关于异步的概念使用的比较多,那么什么是异步呢?下面举个生活中最常见的情景来进行说明:
topgunviper
2022/05/12
5150
软件设计中的异步思想与实践
JAVA 拾遗--Future 模式与 Promise 模式
写这篇文章的动机,是缘起于微信闲聊群的一场讨论,粗略整理下,主要涉及了以下几个具体的问题: 同步,异步,阻塞,非阻塞的关联及区别。 JAVA 中有 callback 调用吗? jdk 包中的 Future 怎么用? Future 模式和 Promise 模式是包含的关系,还是交集的关系,还是没有关系? 带着上面这些疑问,来看看我到底要拾遗些啥。 浅析同步,异步,阻塞,非阻塞 这几个概念一直困扰着我,说实话我现在依旧不能从一个很深的层次去和一个小白解释,这几个概念到底有什么区别。本节我不掺杂自己的描述,主要
kirito-moe
2018/04/27
7K0
netty案例,netty4.1源码分析篇六《Netty异步架构监听类Promise源码分析》
他们的含义都是对未来即将要发生的事情做相应的处理,这也是在异步编程中非常常见的类名。
小傅哥
2020/07/14
5930
netty案例,netty4.1源码分析篇六《Netty异步架构监听类Promise源码分析》
笑了,面试官问我知不知道异步编程的Future。
文本主要分享这个 future 的调用方式,不讲 Dubbo 框架,这里只是一个引子。
why技术
2020/08/13
4730
笑了,面试官问我知不知道异步编程的Future。
任意组合、编排的多线程并发框架,支持任意阻塞、等待、串并行组合,回调、超时、默认值等
传统的Future、CompleteableFuture一定程度上可以完成任务编排,并可以把结果传递到下一个任务。如CompletableFuture有then方法,但是却无法做到对每一个执行单元的回调。譬如A执行完毕成功了,后面是B,我希望A在执行完后就有个回调结果,方便我监控当前的执行状况,或者打个日志什么的。失败了,我也可以记录个异常信息什么的。
天涯泪小武
2019/12/30
1.3K0
任意组合、编排的多线程并发框架,支持任意阻塞、等待、串并行组合,回调、超时、默认值等
JUC并发—14.Future模式和异步编程分析一
Future/Callable实现了一个异步执行并带有返回结果的功能。Future表示获取一个异步执行的结果,Callable表示一个异步执行的任务,Callable会产生一个结果并给到Future。
东阳马生架构
2025/05/07
1740
异步编程利器:CompletableFuture详解
最近刚好使用CompeletableFuture优化了项目中的代码,所以跟大家一起学习CompletableFuture。
捡田螺的小男孩
2021/06/15
7.2K0
异步编程利器:CompletableFuture详解
理解Java8里面CompletableFuture异步编程
其中第三个特性,就是今天我们想要聊的话题,正是因为CompletableFuture的出现,才使得使用Java进行异步编程提供了可能。
我是攻城师
2018/11/23
16.7K0
美团面试:如何实现线程任务编排?
线程任务编排指的是对多个线程任务按照一定的逻辑顺序或条件进行组织和安排,以实现协同工作、顺序执行或并行执行的一种机制。
磊哥
2024/05/17
2090
美团面试:如何实现线程任务编排?
从源码上理解Netty并发工具-Promise
最近一直在看Netty相关的内容,也在编写一个轻量级的RPC框架来练手,途中发现了Netty的源码有很多亮点,某些实现甚至可以用苛刻来形容。另外,Netty提供的工具类也是相当优秀,可以开箱即用。这里分析一下个人比较喜欢的领域,并发方面的一个Netty工具模块 - Promise。
Throwable
2020/06/23
1.6K0
从源码上理解Netty并发工具-Promise
【Flink】第三十一篇:Netty 之 核心设计、核心抽象和线程模型
上一篇【Flink】第三十篇:Netty 之 Java NIO 为大家分享了IO 中的基本概念、5种 IO 模型、IO多路复用、Reactor IO设计模式。
章鱼carl
2022/03/31
9680
【Flink】第三十一篇:Netty 之 核心设计、核心抽象和线程模型
CompletableFuture 异步编排
Future 是 Java 5 添加的类,用来描述一个异步计算的结果。你可以使用`isDone`方法检查计算是否完成,或者使用`get`阻塞住调用线程,直到计算完成返回结果,你也可以使用`cancel`方法停止任务的执行。
一个风轻云淡
2023/10/15
2860
CompletableFuture 异步编排
CompletableFuture异步编排
  问题:查询商品详情页的逻辑非常复杂,数据的获取都需要远程调用,必然需要花费更多的时间。
别团等shy哥发育
2023/04/23
8700
CompletableFuture异步编排
推荐阅读
相关推荐
asyncTool解决任意的多线程并行、串行、阻塞、依赖、回调的框架
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档