Hi Ben, I don't know your "web background" and it seems you are new to TW <https://groups.google.com/forum/#!profile/tiddlywiki/APn2wQdE15ouQN_aiE67o8wb3IJOk2UW2_xl0mH4a_fvSLUrGkRdMhAAEF3z9V9x_6E1Yl8B4Lpr>. I try to start with high level info, but I'll go "geeky deep" very fast. So I hope you can digest them ;)
On Saturday, August 29, 2015 at 3:06:16 AM UTC+2, Ben H. wrote: > > I'm not trying to create a static page, I'm trying to start from a totally > blank canvas. > If you really want to go that way, you will need to dive very very ... very deep into the TW core. In TW everything is a tiddler. Even the core itself are tiddlers, that can be overwritten and modified one by one. See all the *.js tiddlers. This makes TW so extremely flexible. > The issue I have is the core contains a lot more than just a "library" of > tiddles you can use to build an application; it also contains an actual > application, the default tiddlywiki, and doesn't make it obvious where one > ends and the other begins. > That's right. > There are 1140 tiddlers in there, the majority of which define the ui and > functionality of the default app. > The actual v5.1.9 empty.html has 1218 shadow tiddlers. ... Which you name "the default app". Most of the time we name it "*vanilla TiddlyWiki*" or empty TW or empty.html As I mentioned and you found out in TW everything is a tiddler. If you open the - $:/ControlPanel and click the "Number of shadow tiddlers:" it will open the - $:/AdvancedSearch shadow tiddler with the filter: [all[shadows]sort[title]] It shows you the list of all 1218 shadow tiddlers. The above 2 tiddlers are part of vanilla TW, So basically you could remove them, which results in loosing the "advanced search" functionality and the TW Control Panel. .. This is true for every other TW functionality. ---------- If you go to $:/AdvancedSearch tiddler and you search for the term AdvancedSearch with the "shadow" tab selected you'll get the following results: $:/AdvancedSearch $:/core/ui/Buttons/advanced-search $:/core/ui/ControlPanel/Basics $:/core/ui/SideBarLists All those tiddlers are part of the advanced search functionality or call the button. If you open those tiddlers, you'll see, how vanilla TW builds the Advanced Search functionality. ... So it depends on you, if your "TW app framework" should contain this functionality or not. .. Be aware, that in the content there may be transclusions and <$:/list...>s, that may or may not be removable too. The existing TW UI is mainly built with <$:/list...> widget functionality to make it more dynamic. ... The very first versions of the PageTemplate used hard coded elements for most of the UI sections. ... So looking at the *alpha* and *bata versions*, the templates may be much simpler, but less powerful. ... eg: no multi language support. no dynamic page elements activated by tags ... and so on. That's great if you want to tweak the default app (which is pretty cool and > all), but a nightmare if you want to actually use TW as an application > framework, not just create a minor derivation of the default app. > IMO You can basically strip everything. Just keep: - all *.js tiddlers, since they provide the executable core. - $:/core/ui/PageTemplate So imo the minimum Page template is: Hello World which will be completely useless because it removes the whole "vanilla TW" functionality. .... BUT imo it's the *bare minimum core*. ... I didn't test it, but I definitely will create a stripped down version, since I'm interested, if a TW like this will start and display "Hello World" :) ... This version will be completely useless, so don't expect it, to be published. If you start studying the content starting from $:/core/ui/PageTemplate and if you understand every single bit of its content, you can work your way up, to understand the whole TiddlyWiki UI functionality. The TWs UI is built with widgets <http://tiddlywiki.com/#Widgets>, which are the basic building blocks of functionality in TiddlyWiki. If you analyse the PageTemplate, and consult the tiddlywiki.com homepage, which describes every widget in detail, you can find and see every piece that builds "vanilla TW". .... *Low Level Warning!* This journey is non trivial (and sometimes frustrating), since the existing TW UI is not only an application, it is also Jeremy's philosophy, how tiddlers should be presented. At least one version of it. So your philosophy how your application should look like may be completely different. So as I understand your post. You want to start from scratch. If you really want to do this, some hints, where I would start are following. .. eg: If you "advanced search" for: PageTemplate you'll get the following results: $:/core/modules/startup/render.js <- look at this one: https://github.com/Jermolene/TiddlyWiki5/blob/master/core/modules/startup/startup.js $:/core/templates/static.template.html $:/core/ui/PageTemplate <- start here $:/core/ui/PageTemplate/alerts $:/core/ui/PageTemplate/pagecontrols $:/core/ui/PageTemplate/pluginreloadwarning $:/core/ui/PageTemplate/sidebar $:/core/ui/PageTemplate/story $:/core/ui/PageTemplate/topleftbar $:/core/ui/PageTemplate/toprightbar $:/tags/PageTemplate You can see the basic structure of the TW UI here. So if you understand, how Jeremy built TW UI, you will be able to build your own UI. TW basically has: - page controls - a sidebar - the tiddler "story river" ... which is part of the philosophy. - top left/right menu bars, that are always visible - some plugin handling and alert stuff. Your own PageTemplate may be completely different but it needs to work with the same widgets. ------------ More details: You can see, that there are some elements hard coded in the render.js file. The following list may be incomplete!: // Default story and history lists var PAGE_TITLE_TITLE = "$:/core/wiki/title"; var PAGE_STYLESHEET_TITLE = "$:/core/ui/PageStylesheet"; var PAGE_TEMPLATE_TITLE = "$:/core/ui/PageTemplate"; // Time (in ms) that we defer refreshing changes to draft tiddlers var DRAFT_TIDDLER_TIMEOUT_TITLE = "$:/config/Drafts/TypingTimeout"; So you need to have a closer look at render.js, to find those tiddlers, that imo are absolutely necessary. -------------- If you made it so far, I'm pretty sure, that all of this looks pretty complicated, if you are new to TW tweaking. ... But it actually isn't. It's just a lot of work, that was invested to create the TW UI and there's not enough documentation, that describes, how the "reference implementation" aka vanilla TiddlyWiki is built in detail. So if someone would sit down and describe how the content of every single core tiddler (1218) works, we would have the "low level doc" for the actual TW UI and its "may be" reusable blocks. .. BUT ... Since we, the TiddlyWiki Community, are not able to fund Erics "Inside TidddlyWiki" documentation, which is a "TiddlyWiki User Manual", I doubt we will be able to fund the low level docs, that would be needed to create: "TiddlyWik the App Framework" documentation. So for the time being, this knowledge will be beautifully hidden in some heads, but not written down in a consumable way. have fun! mario -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+unsubscr...@googlegroups.com. To post to this group, send email to tiddlywiki@googlegroups.com. Visit this group at http://groups.google.com/group/tiddlywiki. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/427f1ab4-fae5-49fa-a4c7-0c5d1e36ad3d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.