After investigating a little further I am a bit confused Riz. Perhaps I am just not understanding your intention, or the limitations of static file creation, or I just have a fundamental misunderstanding of what you mean by a 'theme'. Can you help me understand?
I cloned the git t-blog repo and looked at the contents of each of the themes you have created so far. Each one has, for example, a Second_Short_Post.tid; and sometimes several versions as seen by `find . -name 'Second_Short_Post*'`, e.g., Posts Set[234]/Second_Short_Post.tid. The other, what I would call 'content' tiddlers, are (essentially) duplicated as well - some have more dummy text than others. I leave the question of why there are different Posts Sets to another time. The key observation is there does not seem to be anything theme specific in any of those tiddlers;
they are just standard tiddler fields, text, and I imagine could also
have TiddlyWiki markup.
What I
expected was that blog '
content' (tiddlers the user adds to their blog as 'posts') would be kept separate from the presentation aspects provided by a theme - the layout, font selection, etc. So that for example there would be one directory containing tiddlers of blog content, sort of like the 'demo' directories that are in each theme directory now, but stored somewhere like the Documentation directory is now; and that's where new blog posts would be stored. Making an analogy with WordPress, tiddlers would be equivalent to post records in the WordPress MySQL database.
I expected there would also be Astrid, Attila, Illdy, ... directories that have tiddlers that provide design, layout, and other presentation aspects of a blog. Again, the analogy to the WordPress world would be wp-content/themes/Astrid, Attila, ... I would expect to find tiddlers in these directories such as the Siderbar/, HeaderNav/ , and Tab contents - but no actual user content. Maybe at most some documentation.tid that provides theme specific details.
So I expected there might be a BlogContent directory where blog entry tiddlers
are stored - initially empty except for a few example blog posts the user could delete once they get the idea. The reason for this separation would be so that when users are ready to publish
they
probably want an easy way to exclude the Documentation, that helped them
get that far, from the rest of the world reading their blog.
That way, if a user wanted to change themes, it
might be as easy as changing the configuration of the BlogContents/tiddlywiki.ifo file to specify they wanted to switch from using, e.g., Attila to Minions. Finally when the user is ready to "publish" they would `tiddlywiki t-blog/BlogContent --build` The resulting static files of blog entries would then all get the current theme applied in the generated html, css, etc. files. (Switching themes assumes a theme does not require adding any extra stuff, e.g., additional fields in content tiddlers. That problem would be similar to the way you can get kind of tied to a particular WordPress theme; but users of a theme could always make that choice, however.) Basically the
Separation of presentation and content principle
Is it just early days in the development of t-blog? Does this notion fit into your roadmap? I admit I'm not sure how to make it simple for users - generally adverse to command lines - to switch themes. Or how you get `tiddlywiki --server` to adapt to a new theme - short of stopping the server, editing the content of
tiddlywiki.info and starting the server again. Nor have I used static file generation with TW5 enough to know if that is even possible. I do like the idea of transforming tiddlywiki content into a set of static files for a variety of reasons. Even if this separation of presentation and content notion is not on your roadmap thank you for this implementation that has given me a lot of food for thought.