Hey All,

So I've come to an initial first version of Stefon: A Composable Blog
Engine. I'm following some
interest<https://groups.google.com/forum/#!msg/clojure/rCmPYa0Vw-4/bi38yOR5ZQkJ>in
a full featured clojure blog engine.

And this is a first step in that direction. It's composable in that I've
built a small kernel with a plugin system wrapped around it. By composable,
I mean you could choose to only use a core server component, posting txt
entries, let's say with an in-memory data store. And if you want a little
more, you can choose to add a DB adapter out to Datomic, Import / Export
support, etc. This is all still within a running Clojure repl. So
additionally, you might choose to add a Web UI (or tablet or smartphone
UI), and so on.

To that end, I'm releasing *i)* the blog engine,
Stefon<https://github.com/twashing/stefon>,
and *ii)* it's first plugin for database persistence
Stefon-Datomic<https://github.com/twashing/stefon-datomic>.
It's meant to be included in your Clojure web application. So it will run
in the repl and save posts with assets and tags. This is obviously just a
rudimentary first step, as the next logical step would be a Web UI
component. But I wanted to get it out to the community to gauge it's
utility and ease of use. I want to make sure the plugin's attachment and
messaging semantics are clear and well designed. These are initial setup
instructions. And I'll be working on fleshing out the documentation going
forward.

*
*
*A) Install / Run* : just git clone g...@github.com:twashing/stefon.git ,
then start using 'stefon.shell
*
*
*B) Shell CRUD functions*: create, retrieve, update, delete, find, list
*
*
*C) Plugin Interface*: After attaching, you will receive a map of functions {
:id your-channel-id :channel ch :sendfn sfn :recievefn rfn } , Expect to *
send* and *receive* message in the shape described
here<https://github.com/twashing/stefon/blob/master/src/stefon/shell/kernel.clj>
.
*
*
*D) Plugin Inclusion*: *i)* write a plugin.clj file under your root
namespace, and *ii)* give it a plugin function like
this<https://github.com/twashing/stefon-datomic/blob/master/src/stefon_datomic/plugin.clj#l249>.
The function-map passed to your function will have these functions for your
use { :system-started? shell/system-started? :start-system
shell/start-system :attach-plugin shell/attach-plugin } .



All feedback is welcome. Hope people find this useful.

   - Stefon <https://github.com/twashing/stefon>
   - Stefon-Datomic <https://github.com/twashing/stefon-datomic>


Tim Washington
Interruptsoftware.ca / Bkeeping.com

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to