Yesterday i finally finished writing version 0.1 of my blogging software called println, today even 0.2 hit github.
Also i have moved this blog from Nesta CMS to println just now. ;)
I am basically just pasting my README.md here:
println is a blogging / publishing software written in Scala with the Lift Web Framework. It tries to fulfill the need for an un-obustrive approach of writing, publishing and managing ones blog posts with it's overlay-editor-window.
It is heavily inspired by Nesta CMS a Ruby based CMS Software and also uses parts of its default layout (since i like it for its simplicity).
The official website is currently being done with println itself, please be patient as it will be well-done. There will also be a webcast soon.
- High Performance (thanks to Lift and Scala)
- Easy to use (thanks to me)
- Easy to write (Live-Preview of your Markdown or Plaintext)
- Easy to customize (by default only layout or css changes are needed)
- Easy to deploy (.war Archive)
- Internal web-tracking with MongoDB (optional)
- Lots of widgets by default (see next section)
- Atom-Feed (/atom.xml)
- Google Sitemap (/sitemap.xml)
- AJAX-/Facebook-Style Tagging with Tag-cloud
Currently it is text-only. I will implement media-management as soon as possible. For now i suggest storing your images elsewhere (Flickr, Picasa) as they offer better upload-possibilities from mobile devices anyway.
Layout and Widgets
The main layout is in src/main/webapp/template-hidden/default.html and has all the widgets that are currently implemented. Here is the overview:
- Google Analytics:
- Copyright Helper:
© <span class="lift:Helpers.years?since=2010"></span>
If you want to implement your own, feel free to look at src/main/scala/code/snippets/Helpers.scala for how to do so.
Made with love
It is made with the following pieces of software:
- Scala Programming Language
- Lift Web Framework
- jQuery UI Dialog
- modified Version of WMD MarkDown-Editor with Live-Content-Preview
How to get started
In order to get, compile and run the project locally, you need:
- git of course
- PostgreSQL for Content-Storage (check alternatives)
- mongoDB for Statistics (optional)
After installing PostgreSQL, run the following in your shell:
$ createuser -Upostgres println
$ createdb -Upostgres --owner println println
If everything is up and running:
$ git clone git://github.com/fbettag/println.git
$ cd println
$ edit src/main/resources/props/default.props (or production.props)
$ ./sbt update
$ ./sbt ~jetty-run
Visit http://127.0.0.1:8080 with your browser and follow the on-screen instructions.
MongoDB is solely used for statistical analysis like Browser-, Referer- or Target-URL-tracking. This is not fully tested yet, but it has interesting results and more flexibility as opposed to other commercial products.
If you want to try it without MongoDB, feel free to do so. Just make sure you unset/comment "mo.host" in your .props-files.
Instead of writing stupid SQL-Queries to get the default pagetitle, the pagetitle is defined in the properties files (default.props, production.default.props). IMHO this is a performance-saver as well as practiable.. How often do you change your main-site title?
Tracking atom.xml and sitemap.xml
Simply place the following in one or both of the files (not in any of the repeated sections of course):
- AutoScroll/Sticky Editor-Window
- Media Management -> Image-Upload, etc.
- Twitter, Facebook and Google+ Auto-Publish
Thanks to everybody in the Lift Community and on Liftweb Google Groups.