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.