Glen Mazza's Weblog

« New user administrat... | Main | TightBlog: July 2016... » Sunday July 17, 2016

First release - TightBlog v1.0.0 available!

I've found a good point to make my first TightBlog release, and so here it is. I held off on uploading a Java WAR file as TightBlog is primarily for Java enthusiasts who are well acquainted with the concept of mvn clean install and would presumably rely on that instead of any WAR I provided. After the dependencies (Spring, Struts, etc.) are downloaded, TightBlog takes less than a minute to build, and running mvn jetty:run from the app folder afterwards will allow you to quickly demo the application at http://localhost:8080/tightblog.

Some editing enhancements put in over the past week:

  • I pulled out the Xinha rich text editor, last updated in 2010, with the new Quill Editor which I'm downloading to the application via CDN.
  • I added Markdown (specifically CommonMark) as an editing option, giving bloggers now three options (including standard HTML entry) for their blogging pleasure.
  • JSoup was brought in to replace a 2009 script to filter out HTML tags disallowed by the TightBlog admin. Admins are provided six HTML sanitizing options for blog entries (including one option allowing everything), and three for blog comments.

These benefits are in addition to the "Notes" field on the blog edit page (to store metadata about the blog entry) I had added a while back.

Stats: 19 fewer Java source files, dropping me to 187, 62% fewer than the original 493 in the Roller release I forked. 209 issues closed, with eight open for the next release. 85K lines removed, with the removal of Xinha accounting for 15K of that. The GitHub contributors page and the OpenHub stats are indicating that, all told, I managed to drop the code about a third in size, even if I somehow sense I managed more than that.


congrats for first release.

Posted by Amit Joshi on August 03, 2016 at 06:24 AM EDT #

Thanks for the release. When I have tested the product, Related entries are not working Is the right way to implement this? <div class="well"> <h3>Related entries</h3> #set($recentInCat = $model.weblog.getRecentWeblogEntries($, 4)) <ul>#foreach($recentEntry in $recentInCat) <li class="entryLink"><a href="$recentEntry.permalink">$recentEntry.title</a></li> #end</ul> </div>

Posted by Imby on August 16, 2016 at 10:44 AM EDT #

Oops - bug in default template code. It should be $model.getRecentWeblogEntries(...) with no "weblog" anymore. How to quickly determine? A search in the source code on getRecentWeblogEntries() finds the method in the PageModel class, whose getModelName() method is called "model" (i.e., the $model you see in the template code). Therefore just $model.getRecentWeblogEntries is needed to get to the method. I'll enter a bug immediately to get this fixed on the 1.0x and 2.0x branches. Thanks for bringing to my attention!

Posted by Glen Mazza on August 16, 2016 at 11:22 PM EDT #

Patch release made fixing this:, you'll merely need to swap out the generated WAR file. Thanks again for bringing up this issue.

Posted by Glen on August 17, 2016 at 11:14 PM EDT #

Thanks for the patch, I have one more question can I able to upgrade the existing roller database to tightblog database. In my case I have already exitsting roller blog with lot of entries

Posted by Imby on August 19, 2016 at 03:32 AM EDT #

No, the databases are too divergent now (Roller's is about twice as large) and I have no plans to create migration scripts.

Posted by Glen on August 19, 2016 at 03:48 AM EDT #

Post a Comment:
  • HTML Syntax: NOT allowed

Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.