文档
cmdr 是一个命令行参数处理框架,同时还提供应用程序设置集的集成能力
文档中心
这里提供我的软件包的介绍文档、使用手册。
除非我腾出精力来做文字编撰,否则通常还是会仅仅在代码中提供 Per Function 的帮助文档。 有时候可能也省却掉 Function 的在线帮助,因为函数名以及它的参数名往往已经提供了充足的提示。
那就没必要画蛇添足了。
What is Next?
Golang Libraries
About cmdr
cmdr 是一个命令行参数处理框架,同时还提供应用程序设置集的集成能力。
所以当你在进行终端应用程序的开发时,cmdr 能够提供初始环境的处理功能。 当你使用 cmdr 的方式建立了子命令、命令行选项的定义之后,你的精力可以专注于实现具体功能。
cmdr 也是一个跨语言的软件库。我们用几种开发语言(Golang,C++,C# 等等)实现了 cmdr 统一的界面。 这些软件库在不同语言环境中提供基本一致的编程界面以及相似的终端用户体验。
Store
Store 被用于集成到 cmdr 中提供配置管理功能。
同时 Store 也提供一个通用的、高性能的层次性数据的键值对管理,所以你可以将其视为内存高速缓存,Redis-like,或者 httprouter 路由解析工具,等等。
Store 支持键值对的自动清除(TTL)功能。
Store 也支持内建的 /[id]/
路由解析和匹配功能。
progressbar
progressbar 是一个完全无依赖(好像是这样)的控制台进度条。
初始的意图是为了复刻 python install 时候的进度条外观,后来则集成了大量的其他风格,划分为 Stepper 和 Spinner 两类。
然后在此基础上,progressbar 提供了一些包装方法来方便你将后台任何与进度条相互结合,尤其是针对分步骤的多线绪任务。
C++ Libraries
fsm-cxx
fsm-cxx 是一个实验性的研究库,主要提供有限自动机的实现方案,同时也是状态机理论的一种研究。
undo-cxx
trie-cxx
cmdr-cxx
Others
VSCode Extensions
Go Main Runner
基本上,Go Main Runner 只做一件事:就地运行 golang 项目中的 main 函数而无需移开鼠标、或者进行命令行输入。
Zig Main runner
类似地,Zig Main Runner 是为了就地运行 zig 项目中 main 函数。
Remarks
这两个 VSCode 插件都包含一些细微的调整,目的在于简化生活。
例如 Go Main Runner 包含到官方 Golang 插件的依赖,所以打开一个 vscode workspace 之后 Enable Go Main Runner 你就能自动为工作区使能 Golang 相关的插件支持。你并不需要额外的其他花哨的插件,对于 Golang 开发来说,其它的插件往往意义不大——但 Go Main Runner 或许能够成为例外。
当然,取决于开发内容,这里所说的其他插件不包含语法高亮、formatters 之类的插件,我主要是指类似于 Go Mod List 之类似乎有用、似乎无用的插件。至于 Go Main Runner 本身是不是有用,也是取决于你的项目是有很多 main 函数呢,还是只有一个 cli 入口。
NextJS/React Libraries
cmdr-docs-dev
cmdr-docs-dev 是本 docsite 的源代码 repo。
它是使用 NextJS + Fumadocs + Tailwind 构造的,主要是利用了 MDX 的核心功能来建立基于 Markdown 的 docsite。
技术性不强。
但是考虑到事前数年来的对 docsite generators/makers 的挑选、评估,加上在这个框架上投入了相当的精力来做整合,所以我个人认为可能它对你或许是具有启发性的。
Shell Frameworks
bash.sh
bash.sh 包含了最必要的基础函数集,并将它们组织为一种有利于自由扩展的单一主文件结构,可以被视为是做 ops shell 脚本开发的较好的起点。
单纯在 bash.sh 中查证基础环境探测技术也是有益的。
more
还有很多。
How is this guide?
Last updated on