来自 赵鹏 | January 7, 2019
<用 markdown 的逻辑写 R 脚本注释(2)>一文里配了张示意图,展示了 mindr 包的六个主要函数。当时我觉得,四海已定,天下太平。
的确,思维导图、R 脚本、markdown 文件可以两两随意转换,我想要的基本功能都已经实现了。不过,mindr 用起来总是觉得……连我自己都觉得差那么点意思。差哪一点,一时又说不上来。
趁圣诞节假期,我细想了一下,差的这一点,应该是用户体验了。
不爽之处有二:(1) 六个主函数,还有三四个小函数,每次都要想一下用哪个,把谁转换成谁;(2) 指定待转换的文件时,如果不在工作目录,那么还得分别指定文件夹路径和文件名。这当然不是什么大问题,而且是历史原因造成的,然而用起来总感觉不那么人性。
于是,我写了个新函数,叫 mm()
,功能如下:
- 不用再记六个主函数了,
mm()
根据输入和输出的文件扩展名来判断做何种转换; - 其他的常用小函数也都统一进来了,用
mm()
的参数来设置; - 在转换的同时以 widget 的形式实时展示思维导图。
mm()
一足矣。example(mm)
给出了各种示例。
一个包的多个功能。到底是用多个函数来分别实现,还是用同一个函数里的多个参数来实现,这,是个问题。对于 mindr 的开发而言,我觉得我花在用户体验上的时间比花在函数功能上的时间要多,不知道算不算喧宾夺主。
对了,在写 mm()
函数的同时,我发现生成的 widget 可以另存为网页,直接插进网站里。这里有两个示例,一个是我前段讲课的提纲,从 xaringan 幻灯片直接生成;一个是 <学 R> 一书的大纲,直接从 bookdown 项目生成。