I’m working on a series of small “unifications”. Attempts to bring several of my different projects closer together. This is to share more code between them, or allow them to work more closely together.
Today, I’ve been updating BootDown, my quick and dirty static site generator so that it now uses the same library (txlib.py) as TSWiki to render markdown and embedded media like YouTube and SoundCloud.
This means that from now on, BootDown will use the same markup for embedding videos etc. as TSWiki : block defined with
containing metadata in YAML format. Also means that TSWiki now inherits an include CSV file block which renders as a reasonable looking table from BootDown.
This is a small change to a couple of files in a couple of projects, but it’s part of a general campaign of forward motion that will hopefully result in a bunch of projects becoming more powerful, more flexible and faster evolving this year.
Some of my websites seem to be under attack at the moment. Or rather, WordPress hosting is infected by some kind of PHP virus.
So, I’m in the process of containing and fixing the issues. First I’m using the extremely useful HTTrack to make flat copies and swap the live-sites for these.
In fact, I’m using too many WordPress sites for small static sites. Time to move them to Project GeekWeaver.
Then, I’ll be exporting the databases of the bloggier blogs and either creating fresh new WordPress installs or looking into alternatives.
So for a while, this blog, and other of my self-hosted blogs will be going fairly static.
Don’t worry though, I’ll be back soon.
A few years ago I looked at some of the programs I was writing, both for public release and libraries / scripts for internal consumption, and realized that even I was confused.
I needed a new map to understand what I was doing. Hence I came up with Project ThoughtStorms. A quick and dirty overview of what I was up to in this space of wikis, personal information and knowledge management.
I think that helps. I know what I’m up to, with the legacy of my ThoughtStorms UseMod wiki and SdiDesk, my experiments with Smallest Federated Wiki, the new OWL stuff, etc. It’s still a mess, but it’s conceptually “encapsulated” in a single place.
Now I find myself with a similar situation with a number of different tries at some tools to make it easier for me to produce static web-sites. Originally there was GeekWeaver, a way for me to generate static sites quickly and easily from an OPML outline. That was a great idea … except … it got mixed up with my n00bie enthusiasm for Lisp and desire to create a powerful Lisp-like programming language.
GeekWeaver also foundered on two other issues : soon after I wrote it, there were no popular OPML outliner tools. Although Dave Winer has resolved that issue and I have, indeed, used Fargo to author GeekWeaver programs.
So the next time I needed to produce some quick static pages I went back to the drawing-board and came up with BootDown : a very simple Python script that lets you write text in Markdown and wraps it in a BootStrap / BootSwatch template. It’s the opposite of GeekWeaver, it isn’t trying to be a rich and clever language that lets you define your own templates, it’s just a quick way to take advantage of a lot of templates that already exist.
BootDown adds two things to conventional Markdown. A shorthand for declaring div tags. And a page separator. So you can still make a multi-page site inside a single file. And you can explicitly reference the div classes and ids you need.
More recently still, I’ve been getting into a real Lisp : Clojure. Today, that’s the language I really want to be working with. And I have a current project that again involves generating a multi-page, fairly static site. But the inputs are a little bit more complicated : some more structured data, not just text. And it makes sense to store it in an outline. So I’ve started writing Clojure code to read OPML and spit out a BootDown Markdown file, to wrap in HTML.
I can see this project starting to grow too.
And so here I am … three Python code-bases : GeekWeaver, BootDown and the OWL back-end server. Two Clojure projects : the beginnings of a library to work on OPML outlines (OPMLKit) and my unreleased code I’m writing for this current project. And some clunky pipelines to use them together. It’s starting to be another mess. And that’s why I need Project GeekWeaver : an umbrella to pull together these different strands together, at least conceptually.
There are some thoughts … would it make sense to pull at least some of the original GeekWeaver code INTO the OWL back-end server? So that “run transformations on this outline” is a standard OWL feature, and OWL becomes GeekWeaver’s built-in IDE? But what about the OWLdroid version that doesn’t have Python? Should I rewrite that code in CoffeeScript. (Or ClojureScript … a working but still fairly slow option at the moment.) BootDown “just works”. Am I better off scrapping the GeekWeaver idea altogether and just focusing on such practical solutions?
Some of this will become clearer as I work through this current site I’m making. meanwhile Project GeekWeaver is the category and (shortly) the site for the high-level overview.