X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?p=sheep;a=blobdiff_plain;f=src%2Fmain%2Fdocgen.lisp;h=2ed740bdd66a51892a3afe9556c52c4ce55a1530;hp=7142dfe4f6d6d65444fdacedb4c2ac57fd966675;hb=4c8ef06;hpb=a7319414d0f0ea8a66764a040e7827b1801da5e5 diff --git a/src/main/docgen.lisp b/src/main/docgen.lisp index 7142dfe..2ed740b 100644 --- a/src/main/docgen.lisp +++ b/src/main/docgen.lisp @@ -1,5 +1,25 @@ (in-package #:docgen) -(defun validate-package (package)) +(define-condition validation-failure nil ((msg :initarg :msg :reader validation-failure-msg))) -(defun export-package (package)) +(defun validate-package (pkg) + (let + ((symbs nil)) + (do-external-symbols (symb pkg) (push symb symbs)) + (setf symbs (sort symbs #'string< :key #'symbol-name)) + (remove :success + (mapcar + (lambda (symb) + (handler-case + (progn + (docgen-func:doc->ast symb) + :success) + (validation-failure (v) (list :failure :msg (validation-failure-msg v))))) + symbs)))) + +(defun export-package (pkg) + (let + ((symbs nil)) + (do-external-symbols (symb pkg) (push symb symbs)) + (setf symbs (sort symbs #'string< :key #'symbol-name)) + (format nil "~{~A~^~%~}" (mapcar (lambda (symb) (docgen-func:ast->md (docgen-func:doc->ast symb))) symbs))))