Skip to content

Commit

Permalink
Update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
actions-user committed Mar 4, 2024
1 parent 988d7f0 commit ca36f5c
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 86 deletions.
1 change: 0 additions & 1 deletion ChangeLog.md
Expand Up @@ -7,7 +7,6 @@
## 0.3.0 (2023-05-06)

* Add `API` section into the docs.

* Add dependency on `clack-handler-hunchentoot` system.

<a id="x-2840ANTS-PROJECT-TEMPLATES-DOCS-2FCHANGELOG-3A-3A-7C0-2E2-2E0-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
Expand Down
131 changes: 46 additions & 85 deletions README.md
Expand Up @@ -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 <svetlyak.40wt@gmail.com>

* 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]
Expand All @@ -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]:
Expand Down Expand Up @@ -84,7 +74,7 @@ CL-USER> (mystic:render *

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FLIBRARY-3ALIBRARY-TEMPLATE-20CLASS-29"></a>

#### [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.

Expand All @@ -95,40 +85,28 @@ 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]

<a id="options"></a>

##### 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'.

<a id="x-2840ANTS-PROJECT-TEMPLATES-3ACREATE-LIBRARY-20FUNCTION-29"></a>

#### [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.

Expand All @@ -137,15 +115,15 @@ call to `MYSTIC:RENDER` function to pass any options you like as a list.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FLIBRARY-3AMAKE-CORE-FILE-20GENERIC-FUNCTION-29"></a>

#### [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.

Use [`make-file`][659a] function to create a [`mystic.template.file:file`][a919] object.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FLIBRARY-3AMAKE-SYSTEM-FILE-20GENERIC-FUNCTION-29"></a>

#### [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.

Expand All @@ -155,7 +133,7 @@ Should return a file object, which creates `{{ name }}.asd` file.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FREBLOCKS-APP-3AREBLOCKS-APP-TEMPLATE-20CLASS-29"></a>

#### [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.

Expand All @@ -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'.

<a id="x-2840ANTS-PROJECT-TEMPLATES-3ACREATE-REBLOCKS-APP-20FUNCTION-29"></a>

#### [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.

Expand All @@ -199,19 +170,16 @@ call to `MYSTIC:RENDER` function to pass any options you like as a list.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FJSONRPC-APP-3AJSONRPC-APP-TEMPLATE-20CLASS-29"></a>

#### [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.

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
Expand All @@ -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'.

<a id="x-2840ANTS-PROJECT-TEMPLATES-3ACREATE-JSONRPC-APP-20FUNCTION-29"></a>

#### [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.

Expand All @@ -256,7 +217,7 @@ call to `MYSTIC:RENDER` function to pass any options you like as a list.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FMIXIN-2FCI-3ACI-MIXIN-20CLASS-29"></a>

#### [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.

Expand All @@ -266,7 +227,7 @@ Adds docs based on 40ants-docs.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FMIXIN-2FCLPM-3ACLPM-MIXIN-20CLASS-29"></a>

#### [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.

Expand All @@ -276,7 +237,7 @@ Adds clpmfile into the root of the project.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FMIXIN-2FDOCS-3ADOCS-MIXIN-20CLASS-29"></a>

#### [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.

Expand All @@ -286,19 +247,19 @@ Adds docs based on 40ants-docs.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FMIXIN-2FGITIGNORE-3AGITIGNORE-MIXIN-20CLASS-29"></a>

#### [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.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FMIXIN-2FGITIGNORE-3A-2APATTERNS-2A-20-28VARIABLE-29-29"></a>

#### [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.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FMIXIN-2FGITIGNORE-3APATTERNS-TO-IGNORE-20GENERIC-FUNCTION-29"></a>

#### [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.

Expand All @@ -308,13 +269,13 @@ Should return a list of patterns to add to .gitignore. Default method takes them

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FMIXIN-2FQLFILE-3AQLFILE-MIXIN-20CLASS-29"></a>

#### [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.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FMIXIN-2FQLFILE-3AQLFILE-PIECES-20GENERIC-FUNCTION-29"></a>

#### [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.

Expand All @@ -324,7 +285,7 @@ Returns a list of strings which will be concatentated to build a qlfile.

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FMIXIN-2FROVE-TESTS-3AROVE-TESTS-MIXIN-20CLASS-29"></a>

#### [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.

Expand All @@ -334,36 +295,36 @@ Adds tests based on Rove.

<a id="x-28MYSTIC-2ETEMPLATE-2EFILE-3AFILE-MIXIN-20CLASS-29"></a>

### [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.

<a id="x-28MYSTIC-2ETEMPLATE-2EFILE-3AFILE-20CLASS-29"></a>

### [class](9409) `mystic.template.file:file` ()
### [class](3b31) `mystic.template.file:file` ()

A file.

<a id="x-28MYSTIC-2ETEMPLATE-2EFILE-3AFILE-CONTENT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20MYSTIC-2ETEMPLATE-2EFILE-3AFILE-29-29"></a>

### [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.

<a id="x-28MYSTIC-2ETEMPLATE-2EFILE-3AFILE-PATH-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20MYSTIC-2ETEMPLATE-2EFILE-3AFILE-29-29"></a>

### [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.

<a id="x-28MYSTIC-2ETEMPLATE-2EFILE-3AMAKE-FILE-20FUNCTION-29"></a>

### [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

<a id="x-2840ANTS-PROJECT-TEMPLATES-2FUTILS-3AENSURE-TEMPLATE-DOCSTRING-HAS-OPTIONS-DESCRIPTION-20FUNCTION-29"></a>

### [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.

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit ca36f5c

Please sign in to comment.