Saturday, March 26, 2011

Dropbox Documentation Server

What does this even mean? Well, it means I'm really cheap, and lazy. It probably means I'm silly, too, when I tell you what I'm doing.

First, a back story is in order. I was reading some internet articles the other day, when completely irrelevantly, I thought of making my Public Dropbox folder a static web site. Dropbox has a really neat desktop tool that syncs a folder on your machine to their cloud storage, automagically. Being that the site would be static, I started to wonder what I could even do with it. Then I realized: this is perfect for a documentation server! (Maybe not!)

Step 1: Getting the Docs

Sbt is a wonderful build tool. It can generate really nice API documentation with a single command. The only thing about these docs, is that they're not pretty to look at. Docco on the other hand, produces some really nice looking documentation. The circumflex crew already ported their re-imagination of docco style documentation for scala.

I made quick work into building a sbt plugin that simply wraps the circumflex batch docco functionality with a single docco action within sbt.

Step 2: the Plugin

Like I mentioned before, all this plugin (initially) would need to do, is piggy back off the circumflex docco project to do batch docco processing on the project's src directory. Enter sbt-cx-docco.

In a developer's project definition, they can route the docco output to a specific folder. Naturally, for this experiement, I routed it to my Public Dropbox folder on my local hard drive.

I am thinking more about this, and I have more plans for this plugin that involves severing my circumflex dependency. You may or may not see about this in the future.

Step 3: ???

I have no idea what else I have planned for this thing. I'm thinking about setting a monido that looks at the folder, and adds the project to the list for me. This depends on how lazy I get, I guess.

Step 4: Profit!

A free static web server. Pretty good, Dropbox... Pretty good.

-- Philip Cali

No comments:

Post a Comment