- 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/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/controller/content-tag.lisp#L1 [485d]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/controller/content-tag.lisp#L22 [4af3]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/controller/content-tag.lisp#L36 [6425]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/controller/content.lisp#L1 [169e]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/controller/content.lisp#L16 [3b6d]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/controller/content.lisp#L21 [8e7d]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/controller/content.lisp#L32 [90ff]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/models/author.lisp#L1 [9099]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/models/author.lisp#L10 [439a]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/models/content-tag.lisp#L1 [c02c]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/models/content-tag.lisp#L22 [0995]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/models/content.lisp#L1 [4636]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/models/content.lisp#L19 [7a9b]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/models/tag.lisp#L1 [07f8]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/models/tag.lisp#L10 [2e6b]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/routes.lisp#L1 [8e29]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/routes.lisp#L15 [4717]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/utils/markup.lisp#L1 [9aed]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/utils/markup.lisp#L15 [70f0]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/content-page.lisp#L1 [bd1c]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/content-page.lisp#L55 [6da0]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/content-page.lisp#L56 [fba5]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/content-page.lisp#L65 [e644]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/posts-list.lisp#L1 [8a0d]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/posts-list.lisp#L42 [3914]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/posts-list.lisp#L46 [79b5]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/posts-list.lisp#L47 [8047]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/posts-list.lisp#L52 [b950]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/posts-list.lisp#L53 [9d1e]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/posts-list.lisp#L66 [2466]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/utils.lisp#L1 [b54f]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/utils.lisp#L23 [b539]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/vars.lisp#L1 [b50c]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/vars.lisp#L10 [3f0c]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/vars.lisp#L15 [4902]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/src/widgets/vars.lisp#L20 [0a11]: https://github.com/40ants/reblocks-cms /blob/f8a688ca72fa1930b8ca2febc53dcf907ed297ba/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