2015-03-08

Inside Baseball, Pt. II: New Site SitRep

So here is where I am now for those wondering.

All existing pages have been automagically converted to AsciiDoc and Markdown formats so the content is fairly readily usable whichever way I need to go.  A few pages that are probably coming over unchanged have seen a little cleanup work done (the magic doesn't make them ready to just drop in, sadly).

Referencing the Inside Baseball post, I am currently building up the system by which I will publish the site.

The battle plan revolves around Pelican, a static site generator that accepts Markdown by design, and formerly AsciiDoc too (albeit now only via plugin).  It won't work server-side unless you have a webhost that allows full Python execution, however, which would mean a virtual private server or Amazon S3 mumbo-jumbo with its buckets of unique jargon which I loathe.  Both cost a little bit, and options can be found where server security is maintained automatically, but as a professional cheapskate and someone who didn't want to run a whole server for this (even a virtual one) I really didn't want to go that route.  I could just use my desktop, but I've been trying to get away from leaving it running.

Enter the Pi.  I acquired a Raspberry Pi some time ago for experimentation, and Pelican will execute on it happily.  However, I don't want to develop content on it.  The goal is thus to write elsewhere and leave the Pi as a headless Pelican execution server.  With Dropbox integration (a pain in the ass on the ARM-based Pi but doable, I am told), I can write pages anywhere.

So, creating a page or post will look like this:

1.  Make notes or pages saved in .txt format within my directory of choice.  I can even leave them in the content directory that Pelican will later see, because it will ignore them.
2.  Once complete, rename to the appropriate extension.
3.  Dropbox will upload to their servers, and the Pi will download the new version based on a regular cron job.
4.  Either another regular cron job or a file-change watchdog (haven't gotten there yet) will execute Pelican, rebuilding the static output of the site.  (I most likely will want to do the latter.)
5.  This static output will automatically be uploaded to my existing webhost.
6.  Profit.  And cake. (But both of those are a lie.  I have neither ads nor frosting.)
7. Regularly back up the Dropbox folder.

Compared to the old 2002 era workflow, this has the advantage of allowing me to write from anywhere more readily and easily.  All I need is a connection and a text editor (or even a browser through which I can log in to Dropbox) so I can make changes on the go.  Even sans connectivity, if I make a change on a device of mine that can sync a Dropbox folder (e.g. a laptop) it'll hit as soon as I get back to civilization.  I can even schedule when a page drops!

Pictures are a bit of a question, since I rather like my old sorting, but I can still link to old pics as-is.

But, the plan relies on two external objects (Dropbox and the Pi).  However, even if one or both break, or if I do, the site is still there for as long as the hosting bill is paid up or as long as The Wayback Machine works, because it is static.

And, I don't see Dropbox going away (there are alternatives even if they break their API a la Twitter), and provided I can find an RPi B for sale I can go ahead and get backup hardware now.  (Good idea ... I should write that down.  Oh, wait ... does this qualify?)

One more option worth noting is that in the current plan, Blogger could go away in favor of keeping it all in-house.  But then the only good way to do comments would be Disqus, at which point I might as well have it for pages, too.  But that can be decided on further down the road.

The main hurdle will probably be getting my site to look just right.  Jinja templates are a whole new animal for me, and I am not looking forward to that part of the Pelican build.

More to come ...

No comments: