最近写了一个newlisp_armory库,用来实现一些newlisp自身不支持的操作。比如跨windows和ubuntu的目录拷贝功能等。

自己用的时候,发现没有API reference文档参考,很不方便。于是学习了如何用注释生成文档。

在Ubuntu环境下,首先要下载newlispdoc程序的源码:http://newlisp.org/syntax.cgi?code/newlispdoc.txt

将文件重命名为newlispdoc,添加执行权限,复制到/usr/bin目录下。

也可直接从我的github项目中获得:https://github.com/csfreebird/newlisp_armory.git

然后注意注释的写法,下面是个例子:

;; file.lsp;; @module file
;; @description file module provides some file operations on both Ubuntu and Windows
;; @location file.lsp
;; @version 1.0
;; @author Dean Chen
;; @example
;; (let ((test-dir1 (append (real-path) file:file-seperator "a")) (test-dir2 (append (real-path) file:file-seperator "b")))
;;   (make-dir test-dir1)
;;   (make-dir test-dir2)
;;   (if (directory? test-dir1)
;;       (begin
;;  (unless (catch (file:copy-folder test-dir1 test-dir2) 'result)
;;      (println (append "catch error: " result))
;;      (println "test copy-folder failed"))
;;  (file:remove-folder test-dir1)
;;  (file:remove-folder test-dir2))))
(context 'file);; @syntax (file:init)
;; @throw Throw error if environment variable NEWLISP_ARMORY_HOME does not exist or is invalid
;; @throw Throw error if OS is not Windows or UBuntu
;; @note init function will be called automatically when loading file.lsp module, don't call it manually
(define (init)(unless (env "NEWLISP_ARMORY_HOME")(throw-error "NEWLISP_ARMORY_HOME does not exist"))(unless (file? (env "NEWLISP_ARMORY_HOME"))(throw-error "NEWLISP_ARMORY_HOME points to a non-existing file"))(unless (directory? (env "NEWLISP_ARMORY_HOME"))(throw-error "NEWLISP_ARMORY_HOME points to a file instead of directory"))(set 'file-folder (append (env "NEWLISP_ARMORY_HOME") "/codes/file"))(if(= ostype "Linux") (load (append file-folder "/file_ubuntu.lsp"))(= ostype "Win32") (load (append file-folder "/file_win.lsp"))(throw-error (append "file tool doesn't support this OS for now, ostype:" ostype))))

现在运行命令产生doc:

newlispdoc file.lsp

由于我还有几个支持不同平台的文件,file_ubuntu.lsp和file.win.lsp,似乎newlispdoc没有这么智能。因此我将file_ubuntu.lsp的注释复制到file.lsp中,不复制源代码。

也能够生成。

下面的截图展示了我的doc:

点击链接后,进入详细页面:

newlisp 注释生成文档相关推荐

  1. Doxygen——根据代码注释生成文档的工具

    文章目录 1 简介 2 安装 3 使用 3.1 注释代码 3.2 使用doxywizard生成文档 4 用例 4.1 OpenCV 4.2 Apollo 5 参考 1 简介 Doxygen是一个可以根 ...

  2. 1.0 添加WEB API项目并按注释生成文档(多项目结构)

    1.新建ASP.NET 项目,模板选择如图 2.选择Web API,并选择不进行身份验证方式 成功后我们看到这个结果. 至于其它三种身份验证方式,不太适合我的使用.而且这种方式也可以在代码里去实现身份 ...

  3. js代码注释生成文档工具-jsdoc

    需求 将js和ts的代码注释生成api文档 思路 先将ts转成js,再统一处理js文件,用jsdoc工具来生成html文件. JsDoc 是js文档生成工具,它从javascript程序源代码中抽取类 ...

  4. python注释文档,以注释生成文档说明

    Python有一种独一无二的的注释方式:使用文档字符串,文档字符串是包.模块.类或函数里的第一个语句,这些字符串可以通过对象的__doc__成员被自动提取,并且被pydoc所用. 目录 1.注释文档 ...

  5. 代码注释生成文档之Doxygen 附说明+下载连接

    上个星期闫海静老师给我们讲如何使用PEAR把特定的批注转换成为说明文件,在闫海静老师给我们演示完安装和使用以后,我亲自操作了一下,感觉这东西对于我来说有点不适应,在安装过程中还需重启这让人有点无法接受 ...

  6. Objective-C自动生成文档工具:appledoc

    作者 iOS_小松哥 关注 2016.12.13 15:47* 字数 919 阅读 727评论 10喜欢 35 由于最近琐事比较多,所以好久没有写文章了.今天我们聊一聊Objective-C自动生成文 ...

  7. Objective-C 自动生成文档工具:appledoc

    来源:iOS_小松哥 www.jianshu.com/p/fd4d8d6b6177 如有好文章投稿,请点击 → 这里了解详情 由于最近琐事比较多,所以好久没有写文章了.今天我们聊一聊Objective ...

  8. 使用apidoc生成文档

    apidoc是通过在方法上的注释生成文档,不基于任何框架,对代码没有侵入性,只需要写好相关的注释即可,并且它仅通过写简单的配置就可以生成高颜值的api接口页面. 准备工作 apidoc基于node.j ...

  9. windows下javadoc生成文档注释的命令

    windows下javadoc生成文档注释的命令 javadoc -d myHello -author -version HelloWorld.java

最新文章

  1. 安装QCreator2.5+Qt4.8.2+MinGW_gcc_4.4
  2. 雪城大学信息安全讲义 3.3 提升 Set-UID 程序的安全性
  3. 久坐 缺乏运动 消化能力 会减弱
  4. html下拉框设置默认值_如何设置HTML select下拉框的默认值?
  5. 服务器提交协议冲突 Section=ResponseStatusLine 的解决办法
  6. Mysql系列:高可用(HA)-keeplived
  7. 【Spark工作原理】Spark任务调度理解
  8. JavaScript Object 及相关操作
  9. 云电脑与远控软件有什么区别?如何选?
  10. TPS63020-电池升降压芯片及静态电流7~8mA原因
  11. chrome扩展程序_如何在20分钟内创建和发布Chrome扩展程序
  12. Python通过Socket实现QQ聊天功能
  13. bzoj:1922: [Sdoi2010]大陆争霸 (luogu 2446)
  14. 这位日本网友和谷歌街景的故事,感动了58万人
  15. 数组添加/扩容和数组缩减
  16. Mongodb分片学习
  17. 都是古人抓紧时间发奋苦读的典范
  18. Chatgpt聊天机器人系统开发
  19. C#原子操作(Interlocked.Decrement和Interlocked.Increment)
  20. 连续性方程_连续性方程表示什么守恒

热门文章

  1. python中out什么意思_ref和out的使用与区别|python基础教程|python入门|python教程
  2. 托福试卷真题_历年托福考试阅读真题汇总含答案
  3. 提高软件测试能力的19条建议
  4. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...
  5. python转json中文乱码_python 序列化成json 乱码问题的解决
  6. MySQL的安装、启动、停止、卸载
  7. 《python接口自动化测试》笔记
  8. 软件测试工程师怎么样面试上好的公司?
  9. php ip重复注册,php中表单的重复提交怎么通过记录IP来防止
  10. c语言小车倒车程序,STC12C5A60S2串口演示程序(C语言版)