Simple API doc generator - dumps to an HTML file
the names, docstrings, lambda lists of public
symbols in the specified packages.
In the order the symbols are listed in the top-level
(defpackage ... (:export ...))
forms and in top-level calls of (export '( ... ))
.
It is similar to other API doc generators, like CL-API, but I want the symbols to be listed in the order they are listed by the authros, assuming the authros order them logically and conveniently for readrs.
Uses docparser.
Maturity is low - I only made it to generate an OK ducument for cl+ssl. If you try it for another library, you may need to improve something.
Example:
(pushnew "/home/anton/prj/package-doc-dump/" asdf:*central-registry* :test #'equal)
(ql:quickload "package-doc-dump")
(pushnew "/home/anton/prj/cl+ssl/cl-plus-ssl/" asdf:*central-registry* :test #'equal)
(ql:quickload "cl+ssl")
(package-doc-dump:dump-html "cl+ssl"
(asdf:system-relative-pathname "cl+ssl"
"src/package.lisp")
;; Remove the implementation of cl+ssl:stream-fd,
;; like on CCL `stream-fd ((stream ccl::basic-stream))`,
;; so only the generic function reamins.
:doc-node-filter (lambda (doc-node)
(not (and (typep doc-node 'docparser:method-node)
(string-equal (docparser:node-name doc-node)
"stream-fd")))))
=> #P"/home/anton/prj/cl+ssl/cl-plus-ssl/src/package.html"
Usage from GitHub Actions: https://github.com/cl-plus-ssl/cl-plus-ssl/blob/master/.github/workflows/api-doc.yml It generates and publishes the following doc: https://cl-plus-ssl.github.io/cl-plus-ssl/cl-plus-ssl-api.html