https://github.com/ichimal/asdf-project-helper.git
git clone 'https://github.com/ichimal/asdf-project-helper.git'
(ql:quickload :asdf-project-helper)
A project maintenance helper utilities with ASDF
CONVERT-FROM-DOCUMENT-FILE
:Read a document file (included in source tree of your project) into a string.
e.g. (convert-from-document-file "readme.txt" :systemname)
You can specify file type with :type
keyword to convert file format.
Supported file types are :plain-text
(this is default) and :markdown
.
e.g. (convert-from-document-file "readme.md" :systemname :type :markdown)
Note: :markdown
is not supported on GNU CLISP environment because of troubles of CL-MARKDOWN package.
UPDATE-LONG-DESCRIPTION
:Wrapper of convert-from-document-file
to update long-description
field of a given system.
The rendered long-description
will be cached into a file, “long-description.cache”.
e.g.
(update-long-description "readme.txt" :systemname)
For example, making a Common Lisp project “foo
” with ASDF.
file tree is as below;
foo -+- foo.asd
+- foo.lisp
+- README.txt
foo.asd
is a project file with ASDF.foo.lisp
is a source code file of Common Lisp.README.txt
is a long long description of the project.If you want to include the contents of README.txt
into the “long-description
” field of the system foo
, you can write a project file as below;
(defsystem foo
:name "foo"
:description "short description"
;; Use :defsystem-depends-on instead of :depends-on.
:defsystem-depends-on (:asdf-project-helper)
:components ((:file "foo")) )
(defmethod perform :after ((o load-op)
(c (eql (find-system :foo))) )
(declare (ignore o c))
;; aph is a nickname of asdf-project-helper package
(aph:update-long-description "README.txt" :foo) )
And also, if you want to include the contents of README.txt
into the documentation part of a main portion of the project (such as “function foo
”), you can write a source code as below;
(defun foo (...)
(declare ...)
#.(aph:convert-from-document-file "README.txt" :foo)
... )
This project is under MIT license.