Heya, I noticed a peculiarity with the themeing system.
By default, config.options.txtTheme is set to an empty string or is undefined. When this is so, the system look for a stylesheet in the [[StyleSheet]] (shadow) tiddler. Nothing strange about that. However, when you select a theme using config.options.txtTheme, even if you select "StyleSheet", something new happens. The system now looks for a slice StyleSheet::StyleSheet to get the CSS location. It also honors the slice StyleSheet::PageTemplate and possibly others. What this means is: if you set the txtTheme to "StyleSheet", different things happen as compared to txtTheme being an empty string. I like the idea of stylesheets either being self-contained tiddlers (all of the stuff inside the main tiddler with slices redirecting everything to ##sections - this makes for easy distribution - or otherwise a main stylesheet tiddler with slices redirecting everything else to respective tiddlers tagged with the same theme - this makes for easier editing and makes it clearer what shadow tiddlers are being modified by the theme. Yet while this works as long as you choose a default stylesheet via config.options.txtTheme, it *doesn't* work when you upload your wiki to a website, as all potential viewers will have no cookie and thus no txtTheme value. As I see it there is no way to achieve a default theme other than putting all the CSS in StyleSheet and all the html in PageLayout and so on. One can modify Shulman's SwitchThemePlugin to include this line: if (!config.options.txtTheme) config.options.txtTheme = "StyleSheet"; At that point the default is changed to "StyleSheet" whenever no value is present. Apparently the cookie is loaded before the plugin code is executed so you have to do it like this. One could also change it to "DefaultTheme" and then let the DefaultTheme tiddler do inclusions of default contents, but even Shulman's SwitchThemePlugin doesn't use that tiddler, its "default" option defaults to "StyleSheet". I guess I will use that modified plugin with the themes I use. The default theme system should really use themes that don't overwrite standard tiddlers but that are contained in tiddlers like TatamiStyleSheet and TatamiPageLayout and TatamiSideBarOptions. The tiddler TatamiStyleSheet should contain a slice table that redirects to those other tiddlers. That slice table should be manually copied to StyleSheet and txtTheme should be set to "StyleSheet". This provides a default theme for all viewers without letting go of the convenience of having multiple themes installed. If the local user wants other themes he needs merely change txtTheme to another stylesheet that also has a slice table. If the user wants a solid default theme that does not comply with this naming scheme, he can still overwrite StyleSheet and PageLayout and so on with that theme. Deleting those tiddlers will restore the orignial TiddlyWiki theme as contained in the shadowtiddlers. Actually I'm not suggesting much different from Shulman's approach other than setting txtTheme to "StyleSheet" by default ;). The problem lies then with TiddlyThemes which doesn't use a naming scheme, but overwrites standard tiddlers (well i guess that's easier for a new user). -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/tiddlywiki?hl=en.

