- Description: Content management system for sites built on Reblocks web framework
- Licence: Unlicense
- Author: Alexander Artemenko svetlyak.40wt@gmail.com
- Homepage: https://40ants.com/reblocks-cms
- Bug tracker: [https://github.com/40ants/reblocks-cms /issues][10da]
- Source control: GIT
- Depends on: [3bmd][cc3e], [3bmd-ext-code-blocks][d94a], [alexandria][8236], [anaphora][c9ae], [mito][5b70], [parenscript][7921], [reblocks][184b], [reblocks-lass][28e0], [reblocks-parenscript][c07c], [reblocks-ui2][85c5], [reblocks-ui2-tailwind][a861], [serapeum][c41d]
You can install this library from Quicklisp, but you want to receive updates quickly, then install it from Ultralisp.org:
(ql-dist:install-dist "http://dist.ultralisp.org/"
:prompt nil)
(ql:quickload :reblocks-cms)
TODO
: Write a library description. Put some examples here.
package reblocks-cms/controller/content
function reblocks-cms/controller/content:create-content
title text slug author &key (type :post) tags
function reblocks-cms/controller/content:get-content-by-slug
slug
function reblocks-cms/controller/content:update-content
content &key title text
package reblocks-cms/controller/content-tag
function reblocks-cms/controller/content-tag:bind-content-to-tag
content tag
function reblocks-cms/controller/content-tag:get-content-tags
content
package reblocks-cms/models/author
class reblocks-cms/models/author:author
(serial-pk-mixin dao-class record-timestamps-mixin)
Readers
reader reblocks-cms/models/author:author-name
(author) (:name)
Accessors
accessor reblocks-cms/models/author:author-name
(author) (:name)
package reblocks-cms/models/content
class reblocks-cms/models/content:content
(serial-pk-mixin dao-class record-timestamps-mixin)
Readers
reader reblocks-cms/models/content:content-slug
(content) (:slug)
reader reblocks-cms/models/content:content-text
(content) (:text)
reader reblocks-cms/models/content:content-title
(content) (:title)
reader reblocks-cms/models/content:content-type
(content) (:type)
Accessors
accessor reblocks-cms/models/content:content-slug
(content) (:slug)
accessor reblocks-cms/models/content:content-text
(content) (:text)
accessor reblocks-cms/models/content:content-title
(content) (:title)
accessor reblocks-cms/models/content:content-type
(content) (:type)
package reblocks-cms/models/content-tag
class reblocks-cms/models/content-tag:content-tag
(serial-pk-mixin dao-class record-timestamps-mixin)
Readers
Accessors
class reblocks-cms/models/tag:tag
(serial-pk-mixin dao-class record-timestamps-mixin)
Readers
reader reblocks-cms/models/tag:tag-name
(tag) (:name)
Accessors
accessor reblocks-cms/models/tag:tag-name
(tag) (:name)
function reblocks-cms/models/content-tag:get-content-by-tag
tag-name
package reblocks-cms/models/tag
class reblocks-cms/models/tag:tag
(serial-pk-mixin dao-class record-timestamps-mixin)
Readers
reader reblocks-cms/models/tag:tag-name
(tag) (:name)
Accessors
accessor reblocks-cms/models/tag:tag-name
(tag) (:name)
package reblocks-cms/utils/markup
function reblocks-cms/utils/markup:markdown-to-html
text &key (stream reblocks/html:*stream*)
Renders given markdown TEXT
as HTML
into the current page's stream.
package reblocks-cms/widgets/content-page
class reblocks-cms/widgets/content-page:content-page
(ui-widget)
Readers
reader reblocks-cms/widgets/content-page:uri-prefix
(content-page) (:uri-prefix)
function reblocks-cms/widgets/content-page:make-content-page
uri-prefix
package reblocks-cms/widgets/posts-list
class reblocks-cms/widgets/posts-list:posts-list-item
(widget)
Readers
reader reblocks-cms/widgets/posts-list:item-content
(posts-list-item) (:content)
class reblocks-cms/widgets/posts-list:posts-list
(ui-widget)
class reblocks-cms/widgets/posts-list:tagged-posts-list
(posts-list)
Readers
reader reblocks-cms/widgets/posts-list:uri-prefix
(tagged-posts-list) (:uri-prefix)
function reblocks-cms/widgets/posts-list:make-tagged-posts-list
uri-prefix
package reblocks-cms/widgets/utils
function reblocks-cms/widgets/utils:render-tags
tags
package reblocks-cms/widgets/vars
variable reblocks-cms/widgets/vars:*highlight-js-path*
nil
Download the file with needed languages support and make a pathname like this:
(asdf:system-relative-pathname :lisp-ru
(make-pathname :directory '(:relative "static")
:name "highlight.min"
:type "js"))
JS
file can be downloaded on [official Highlight.js site][3c28].
variable reblocks-cms/widgets/vars:*highlight-js-theme-path*
nil
Download the file with needed languages support and make a pathname like this:
(asdf:system-relative-pathname :lisp-ru
(make-pathname :directory '(:relative "static")
:name "atom-one-dark.min"
:type "css"))
JS
file can be downloaded on [official Highlight.js site][3c28].
/blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/controller/content-tag.lisp#L1 [f0fa]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/controller/content-tag.lisp#L22 [2058]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/controller/content-tag.lisp#L36 [a4bd]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/controller/content.lisp#L1 [7d16]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/controller/content.lisp#L16 [aafc]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/controller/content.lisp#L21 [191a]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/controller/content.lisp#L32 [ea89]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/author.lisp#L1 [acaa]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/author.lisp#L10 [3061]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/author.lisp#L11 [f274]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/content-tag.lisp#L1 [7a55]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/content-tag.lisp#L22 [534c]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/content-tag.lisp#L36 [aa01]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/content.lisp#L1 [8a10]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/content.lisp#L19 [65a5]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/content.lisp#L20 [b046]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/content.lisp#L24 [9a8f]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/content.lisp#L28 [cdfb]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/content.lisp#L35 [33b1]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/tag.lisp#L1 [77e5]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/tag.lisp#L10 [8fc4]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/models/tag.lisp#L11 [cf08]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/utils/markup.lisp#L1 [088c]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/utils/markup.lisp#L15 [e98b]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/content-page.lisp#L1 [c87e]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/content-page.lisp#L56 [0603]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/content-page.lisp#L57 [c181]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/content-page.lisp#L66 [0fb5]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/posts-list.lisp#L1 [b8b8]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/posts-list.lisp#L43 [7f56]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/posts-list.lisp#L47 [da77]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/posts-list.lisp#L48 [2d88]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/posts-list.lisp#L53 [9850]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/posts-list.lisp#L54 [2e86]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/posts-list.lisp#L67 [00fe]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/utils.lisp#L1 [2970]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/utils.lisp#L21 [7a2f]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/vars.lisp#L1 [55e8]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/vars.lisp#L20 [bbe7]: https://github.com/40ants/reblocks-cms /blob/d63d7e682e76e3410d8cd0a13611232643fe60eb/src/widgets/vars.lisp#L34 [10da]: https://github.com/40ants/reblocks-cms /issues [a710]: https://github.com/40ants/reblocks-cms/actions [3c28]: https://highlightjs.org/download [cc3e]: https://quickdocs.org/3bmd [d94a]: https://quickdocs.org/3bmd-ext-code-blocks [8236]: https://quickdocs.org/alexandria [c9ae]: https://quickdocs.org/anaphora [5b70]: https://quickdocs.org/mito [7921]: https://quickdocs.org/parenscript [184b]: https://quickdocs.org/reblocks [28e0]: https://quickdocs.org/reblocks-lass [c07c]: https://quickdocs.org/reblocks-parenscript [85c5]: https://quickdocs.org/reblocks-ui2 [a861]: https://quickdocs.org/reblocks-ui2-tailwind [c41d]: https://quickdocs.org/serapeum