- 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], [40ants-routes][25b9], [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)
package reblocks-cms/models/content
class reblocks-cms/models/content:content
(serial-pk-mixin dao-class record-timestamps-mixin)
package reblocks-cms/models/content-tag
class reblocks-cms/models/content-tag:content-tag
(serial-pk-mixin dao-class record-timestamps-mixin)
class reblocks-cms/models/tag:tag
(serial-pk-mixin dao-class record-timestamps-mixin)
package reblocks-cms/models/tag
class reblocks-cms/models/tag:tag
(serial-pk-mixin dao-class record-timestamps-mixin)
package reblocks-cms/routes
macro reblocks-cms/routes:cms-pages
namespace
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:content-slug
(content-page) (:slug)
function reblocks-cms/widgets/content-page:make-content-page
content-slug
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:tag-name
(tagged-posts-list) (:tag)
function reblocks-cms/widgets/posts-list:make-tagged-posts-list
tag
package reblocks-cms/widgets/utils
function reblocks-cms/widgets/utils:render-tags
tags
package reblocks-cms/widgets/vars
variable reblocks-cms/widgets/vars:*h1-classes*
"text-4xl sm:text-5xl font-bold text-gray-800 mb-4 leading-tight tracking-wide text-center"
Redefine this variable to change style of the main header on your site.
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].
variable reblocks-cms/widgets/vars:*tag-classes*
"inline-block bg-gray-200 rounded-full px-2 text-sm font-semibold text-gray-700"
Redefine this variable to change appearence of the tag labels of the content.
/blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/controller/content-tag.lisp#L1 [cc74]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/controller/content-tag.lisp#L22 [5fe8]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/controller/content-tag.lisp#L36 [0d61]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/controller/content.lisp#L1 [d10f]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/controller/content.lisp#L16 [4376]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/controller/content.lisp#L21 [8169]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/controller/content.lisp#L32 [3f52]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/models/author.lisp#L1 [7deb]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/models/author.lisp#L10 [0e9e]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/models/content-tag.lisp#L1 [c624]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/models/content-tag.lisp#L22 [bb86]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/models/content.lisp#L1 [14f0]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/models/content.lisp#L19 [2bf9]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/models/tag.lisp#L1 [2ad4]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/models/tag.lisp#L10 [915a]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/routes.lisp#L1 [e09d]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/routes.lisp#L15 [f91a]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/utils/markup.lisp#L1 [d4df]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/utils/markup.lisp#L15 [323a]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/content-page.lisp#L1 [97c0]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/content-page.lisp#L55 [6120]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/content-page.lisp#L56 [b1e2]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/content-page.lisp#L65 [4191]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/posts-list.lisp#L1 [43aa]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/posts-list.lisp#L42 [2752]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/posts-list.lisp#L46 [d372]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/posts-list.lisp#L47 [6b66]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/posts-list.lisp#L52 [8939]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/posts-list.lisp#L53 [b2b6]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/posts-list.lisp#L66 [ba91]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/utils.lisp#L1 [314c]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/utils.lisp#L23 [996b]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/vars.lisp#L1 [3474]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/vars.lisp#L10 [4d44]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/vars.lisp#L15 [b85c]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/src/widgets/vars.lisp#L20 [f835]: https://github.com/40ants/reblocks-cms /blob/a39f20e4dcf4bfbdca646458315869ce9039dab1/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 [25b9]: https://quickdocs.org/40ants-routes [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