diff --git a/ChangeLog.md b/ChangeLog.md
index 848fe73..332af18 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -7,7 +7,6 @@
## 0.3.0 (2023-05-06)
* Add `API` section into the docs.
-
* Add dependency on `clack-handler-hunchentoot` system.
diff --git a/README.md b/README.md
index 1002d36..ddab7a4 100644
--- a/README.md
+++ b/README.md
@@ -6,20 +6,12 @@
## 40ANTS-PROJECT-TEMPLATES ASDF System Details
-* Version: 0.3.0
-
* Description: A bunch of Mystic templates to create `CL` library, web-project, `API` microservice and `CLI` command.
-
* Licence: Unlicense
-
* Author: Alexander Artemenko
-
* Homepage: [https://40ants.com/project-templates/][863f]
-
* Bug tracker: [https://github.com/40ants/project-templates/issues][8fc2]
-
* Source control: [GIT][41d7]
-
* Depends on: [alexandria][8236], [cl-ppcre][49b9], [mystic][417d], [mystic-file-mixin][38f5], [str][ef7f]
[![](https://github-actions.40ants.com/40ants/project-templates/matrix.svg?only=ci.run-tests)][ca1d]
@@ -44,9 +36,7 @@ You can install this library from Quicklisp, but you want to receive updates qui
This library provides following template classes:
* [`library-template`][a2ba]
-
* [`reblocks-app-template`][9624]
-
* [`jsonrpc-app-template`][5748]
To create new projects out of these templates, use functions [`create-library`][560f] and [`create-reblocks-app`][7346]:
@@ -84,7 +74,7 @@ CL-USER> (mystic:render *
-#### [class](b8ee) `40ants-project-templates/library:library-template` (qlfile-mixin clpm-mixin docs-mixin ci-mixin rove-tests-mixin gitignore-mixin file-mixin)
+#### [class](3cdf) `40ants-project-templates/library:library-template` (qlfile-mixin clpm-mixin docs-mixin ci-mixin rove-tests-mixin gitignore-mixin file-mixin)
Mystic template to create a Common Lisp library with documentation, tests and continuous integration.
@@ -95,15 +85,10 @@ Use [`40ants-project-templates:create-library`][560f] function to generate a ske
##### Included mixins
* [`qlfile-mixin`][c335]
-
* [`clpm-mixin`][f9c4]
-
* [`docs-mixin`][333e]
-
* [`ci-mixin`][5153]
-
* [`rove-tests-mixin`][2215]
-
* [`gitignore-mixin`][cb6d]
@@ -111,24 +96,17 @@ Use [`40ants-project-templates:create-library`][560f] function to generate a ske
##### Options
* `:AUTHOR` - Author. **Required**. The project author's name.
-
* `:NAME` - Name. **Required**. The project's name.
-
* `:DESCRIPTION` - Description. A short, one-line description of the project.
-
* `:DOC-THEME` - Documentation Theme. A theme name in the form of the fully specified symbol name (as a string). Example: 40ants-doc-theme-40ants:40ants-theme.
-
* `:EMAIL` - Email. The project author's email.
-
* `:GITHUB` - GitHub `URL`. The project's `URL` on the GitHub.
-
* `:HOMEPAGE` - Homepage. `URL` of the project's homepage.
-
* `:LICENSE` - License. Default: "`BSD`". The project's license string, e.g. '`MIT`', '`GPL`v3'.
-#### [function](7b23) `40ants-project-templates:create-library` directory-path name description &key request-all-options
+#### [function](6b7a) `40ants-project-templates:create-library` directory-path name description &key request-all-options
Creates Common Lisp library in the specified directory.
@@ -137,7 +115,7 @@ call to `MYSTIC:RENDER` function to pass any options you like as a list.
-#### [generic-function](ff87) `40ants-project-templates/library:make-core-file` template
+#### [generic-function](26da) `40ants-project-templates/library:make-core-file` template
Should return a file object, which creates main lisp file.
@@ -145,7 +123,7 @@ Use [`make-file`][659a] function to create a [`mystic.template.file:file`][a919]
-#### [generic-function](a1b6) `40ants-project-templates/library:make-system-file` template
+#### [generic-function](1773) `40ants-project-templates/library:make-system-file` template
Should return a file object, which creates `{{ name }}.asd` file.
@@ -155,7 +133,7 @@ Should return a file object, which creates `{{ name }}.asd` file.
-#### [class](c162) `40ants-project-templates/reblocks-app:reblocks-app-template` (library-template)
+#### [class](b8dd) `40ants-project-templates/reblocks-app:reblocks-app-template` (library-template)
This template creates a Reblocks web application with a few simple widgets.
@@ -169,24 +147,17 @@ for a new web service.
##### Options
* `:AUTHOR` - Author. **Required**. The project author's name.
-
* `:NAME` - Name. **Required**. The project's name.
-
* `:DESCRIPTION` - Description. A short, one-line description of the project.
-
* `:DOC-THEME` - Documentation Theme. A theme name in the form of the fully specified symbol name (as a string). Example: 40ants-doc-theme-40ants:40ants-theme.
-
* `:EMAIL` - Email. The project author's email.
-
* `:GITHUB` - GitHub `URL`. The project's `URL` on the GitHub.
-
* `:HOMEPAGE` - Homepage. `URL` of the project's homepage.
-
* `:LICENSE` - License. Default: "`BSD`". The project's license string, e.g. '`MIT`', '`GPL`v3'.
-#### [function](3e1a) `40ants-project-templates:create-reblocks-app` directory-path name description &key request-all-options
+#### [function](6529) `40ants-project-templates:create-reblocks-app` directory-path name description &key request-all-options
Creates Common Lisp web application in the specified directory.
@@ -199,7 +170,7 @@ call to `MYSTIC:RENDER` function to pass any options you like as a list.
-#### [class](d74a) `40ants-project-templates/jsonrpc-app:jsonrpc-app-template` (library-template)
+#### [class](a290) `40ants-project-templates/jsonrpc-app:jsonrpc-app-template` (library-template)
This template creates a `JSON-RPC` `API` server.
@@ -207,11 +178,8 @@ Other behaviour is inherited from [`library-template`][a2ba].
This server will provide:
* `API` methods created using [`openrpc-server`][24be] system.
-
* Open`RPC` specification at /openrpc.json `URI`.
-
* Logging, configured to output data in `JSON` format.
-
* Optional `SLYNK` server running on port given as `SLYNK_PORT` env variable.
Use [`40ants-project-templates:create-jsonrpc-app`][a32b] function to generate a skeleton
@@ -222,24 +190,17 @@ for a new web service.
##### Options
* `:AUTHOR` - Author. **Required**. The project author's name.
-
* `:NAME` - Name. **Required**. The project's name.
-
* `:DESCRIPTION` - Description. A short, one-line description of the project.
-
* `:DOC-THEME` - Documentation Theme. A theme name in the form of the fully specified symbol name (as a string). Example: 40ants-doc-theme-40ants:40ants-theme.
-
* `:EMAIL` - Email. The project author's email.
-
* `:GITHUB` - GitHub `URL`. The project's `URL` on the GitHub.
-
* `:HOMEPAGE` - Homepage. `URL` of the project's homepage.
-
* `:LICENSE` - License. Default: "`BSD`". The project's license string, e.g. '`MIT`', '`GPL`v3'.
-#### [function](d4c9) `40ants-project-templates:create-jsonrpc-app` directory-path name description &key request-all-options
+#### [function](5cd5) `40ants-project-templates:create-jsonrpc-app` directory-path name description &key request-all-options
Creates Common Lisp `RPC` `API` application in the specified directory.
@@ -256,7 +217,7 @@ call to `MYSTIC:RENDER` function to pass any options you like as a list.
-#### [class](7ed8) `40ants-project-templates/mixin/ci:ci-mixin` (file-mixin)
+#### [class](45ac) `40ants-project-templates/mixin/ci:ci-mixin` (file-mixin)
Adds docs based on 40ants-docs.
@@ -266,7 +227,7 @@ Adds docs based on 40ants-docs.
-#### [class](e79b) `40ants-project-templates/mixin/clpm:clpm-mixin` (file-mixin)
+#### [class](28e4) `40ants-project-templates/mixin/clpm:clpm-mixin` (file-mixin)
Adds clpmfile into the root of the project.
@@ -276,7 +237,7 @@ Adds clpmfile into the root of the project.
-#### [class](2577) `40ants-project-templates/mixin/docs:docs-mixin` (file-mixin)
+#### [class](b253) `40ants-project-templates/mixin/docs:docs-mixin` (file-mixin)
Adds docs based on 40ants-docs.
@@ -286,19 +247,19 @@ Adds docs based on 40ants-docs.
-#### [class](7538) `40ants-project-templates/mixin/gitignore:gitignore-mixin` ()
+#### [class](354a) `40ants-project-templates/mixin/gitignore:gitignore-mixin` ()
Adds .gitignore into the root of the project.
-#### [variable](a867) `40ants-project-templates/mixin/gitignore:*patterns*` ("*~" ".#*" ".*.~undo-tree~")
+#### [variable](d1b3) `40ants-project-templates/mixin/gitignore:*patterns*` ("*~" ".#*" ".*.~undo-tree~")
Default list of patterns which returned by [`patterns-to-ignore`][fcc9] generic function.
-#### [generic-function](39dd) `40ants-project-templates/mixin/gitignore:patterns-to-ignore` template
+#### [generic-function](4e98) `40ants-project-templates/mixin/gitignore:patterns-to-ignore` template
Should return a list of patterns to add to .gitignore. Default method takes them from [`*patterns*`][0c07] variable.
@@ -308,13 +269,13 @@ Should return a list of patterns to add to .gitignore. Default method takes them
-#### [class](f5e4) `40ants-project-templates/mixin/qlfile:qlfile-mixin` (file-mixin)
+#### [class](ffc6) `40ants-project-templates/mixin/qlfile:qlfile-mixin` (file-mixin)
Adds qlfile into the root of the project.
-#### [generic-function](7356) `40ants-project-templates/mixin/qlfile:qlfile-pieces` template
+#### [generic-function](0fd8) `40ants-project-templates/mixin/qlfile:qlfile-pieces` template
Returns a list of strings which will be concatentated to build a qlfile.
@@ -324,7 +285,7 @@ Returns a list of strings which will be concatentated to build a qlfile.
-#### [class](da28) `40ants-project-templates/mixin/rove-tests:rove-tests-mixin` (file-mixin)
+#### [class](0e83) `40ants-project-templates/mixin/rove-tests:rove-tests-mixin` (file-mixin)
Adds tests based on Rove.
@@ -334,36 +295,36 @@ Adds tests based on Rove.
-### [class](0a32) `mystic.template.file:file-mixin` (template)
+### [class](b6c5) `mystic.template.file:file-mixin` (template)
A Mystic template mixin for rendering a list of files using Mustache.
-### [class](9409) `mystic.template.file:file` ()
+### [class](3b31) `mystic.template.file:file` ()
A file.
-### [reader](b6db) `mystic.template.file:file-content` (file) (:content)
+### [reader](a435) `mystic.template.file:file-content` (file) (:content)
The file's contents, a Mustache template string.
-### [reader](54ca) `mystic.template.file:file-path` (file) (:path)
+### [reader](feb3) `mystic.template.file:file-path` (file) (:path)
The path to the file relative to the directory,
a Mustache template string.
-### [function](14a3) `mystic.template.file:make-file` system-name path output-path-template
+### [function](a265) `mystic.template.file:make-file` system-name path output-path-template
-### [function](efbd) `40ants-project-templates/utils:ensure-template-docstring-has-options-description` CLASS-NAME &KEY (TITLE "## Options")
+### [function](162c) `40ants-project-templates/utils:ensure-template-docstring-has-options-description` CLASS-NAME &KEY (TITLE "## Options")
Appends options description to the documentation string of a given template class.
@@ -395,29 +356,29 @@ template class docstrings.
[659a]: https://40ants.com/project-templates/#x-28MYSTIC-2ETEMPLATE-2EFILE-3AMAKE-FILE-20FUNCTION-29
[41d7]: https://github.com/40ants/project-templates
[ca1d]: https://github.com/40ants/project-templates/actions
-[9409]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/.qlot/dists/ultralisp/software/roswell-mystic-20230314045148/templates/mixins/file/file.lisp#L18
-[54ca]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/.qlot/dists/ultralisp/software/roswell-mystic-20230314045148/templates/mixins/file/file.lisp#L19
-[b6db]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/.qlot/dists/ultralisp/software/roswell-mystic-20230314045148/templates/mixins/file/file.lisp#L24
-[0a32]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/.qlot/dists/ultralisp/software/roswell-mystic-20230314045148/templates/mixins/file/file.lisp#L30
-[14a3]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/.qlot/dists/ultralisp/software/roswell-mystic-20230314045148/templates/mixins/file/file.lisp#L49
-[7b23]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/core.lisp#L24
-[3e1a]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/core.lisp#L40
-[d4c9]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/core.lisp#L56
-[d74a]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/jsonrpc-app.lisp#L14
-[b8ee]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/library.lisp#L30
-[a1b6]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/library.lisp#L85
-[ff87]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/library.lisp#L93
-[7ed8]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/mixin/ci.lisp#L11
-[e79b]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/mixin/clpm.lisp#L11
-[2577]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/mixin/docs.lisp#L16
-[7538]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/mixin/gitignore.lisp#L13
-[a867]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/mixin/gitignore.lisp#L18
-[39dd]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/mixin/gitignore.lisp#L25
-[f5e4]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/mixin/qlfile.lisp#L25
-[7356]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/mixin/qlfile.lisp#L30
-[da28]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/mixin/rove-tests.lisp#L11
-[c162]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/reblocks-app.lisp#L15
-[efbd]: https://github.com/40ants/project-templates/blob/f78dfa29a6098fb9587a77fb18e11175cbaab3ab/src/utils.lisp#L91
+[3b31]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/.qlot/dists/ultralisp/software/roswell-mystic-20230314045148/templates/mixins/file/file.lisp#L18
+[feb3]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/.qlot/dists/ultralisp/software/roswell-mystic-20230314045148/templates/mixins/file/file.lisp#L19
+[a435]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/.qlot/dists/ultralisp/software/roswell-mystic-20230314045148/templates/mixins/file/file.lisp#L24
+[b6c5]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/.qlot/dists/ultralisp/software/roswell-mystic-20230314045148/templates/mixins/file/file.lisp#L30
+[a265]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/.qlot/dists/ultralisp/software/roswell-mystic-20230314045148/templates/mixins/file/file.lisp#L49
+[6b7a]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/core.lisp#L24
+[6529]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/core.lisp#L40
+[5cd5]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/core.lisp#L56
+[a290]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/jsonrpc-app.lisp#L14
+[3cdf]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/library.lisp#L30
+[1773]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/library.lisp#L85
+[26da]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/library.lisp#L93
+[45ac]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/mixin/ci.lisp#L11
+[28e4]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/mixin/clpm.lisp#L11
+[b253]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/mixin/docs.lisp#L16
+[354a]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/mixin/gitignore.lisp#L13
+[d1b3]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/mixin/gitignore.lisp#L18
+[4e98]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/mixin/gitignore.lisp#L25
+[ffc6]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/mixin/qlfile.lisp#L25
+[0fd8]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/mixin/qlfile.lisp#L30
+[0e83]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/mixin/rove-tests.lisp#L11
+[b8dd]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/reblocks-app.lisp#L15
+[162c]: https://github.com/40ants/project-templates/blob/988d7f0121f77e1a0da3d1dc38f04cb803be6047/src/utils.lisp#L91
[8fc2]: https://github.com/40ants/project-templates/issues
[8236]: https://quickdocs.org/alexandria
[49b9]: https://quickdocs.org/cl-ppcre