Hi Arlen Good stuff. My intention is to do something very similar but for the literal tiddler syntax to resemble a .tid file:
title: myTitle tags: one two three text: This is the text I was primarily thinking about using the syntax with the new tiddler message, but it's a good idea to support it on the fieldmangler widget as well. Best wishes Jeremy On Thu, Mar 20, 2014 at 1:22 PM, Arlen Beiler <[email protected]> wrote: > Hi Everyone, > Here is the result of my latest endeavor. This adds a create parameter to > the fieldmangler widget which creates the tiddler specified in "tiddler" > with the fields in "create". This allows temp tiddlers to be initialized > with state data without needing a button click. Notice that it only creates > it if it doesn't exist. > > this.mangleTitle = ... ; //Insert after this line in execute() > this.createText = this.getAttribute("create",false); > if(typeof(this.createText) === "string") { > try{ this.createText = JSON.parse(this.createText); } > catch (e) { console.error(e); this.createText = false; } > console.log(this.createText); > if(this.createText){ > this.createText['title'] = this.mangleTitle; > if(!this.wiki.tiddlerExists(this.mangleTitle)) > this.wiki.addTiddler(this.createText); > } > } > > And here is a tiddler that uses it. This tiddler creates a button that > toggles the story river between centered and normal. Centered is default. > > \define createStateTiddler() > { "text": "$(default)$" , "tags": "$:/tags/stylesheet" } > \end > \define state-1-css() > > \end > \define state-2-css() > @media (min-width: 770px) { .story-river { margin: 0 auto; } > .sidebar-header { left: 50%; right: 0; padding-left: 413px; } } > \end > <$set name="default" value=<<state-2-css>> > > <span title="Toggle width/sidebar"> > <$fieldmangler tiddler="$:/temp/toggle-centered" > create=<<createStateTiddler>>> > <$reveal type="match" state="$:/temp/toggle-centered" text=<<state-1-css>> > default=$(default)$> > <$button message="tw-add-tag" param="$:/tags/stylesheet" > set="$:/temp/toggle-centered" setTo=<<state-2-css>> class="btn-invisible > centered-toggle-1">{{$:/_images/right-arrow-button}}</$button> > </$reveal><$reveal type="match" state="$:/temp/toggle-centered" > text=<<state-2-css>>> > <$button message="tw-add-tag" param="$:/tags/stylesheet" > set="$:/temp/toggle-centered" setTo=<<state-1-css>> class="btn-invisible > centered-toggle-2">{{$:/_images/left-arrow-button}}</$button> > </$reveal></$fieldmangler> > </span> > </$set> > > If you don't have the corresponding images for the buttons, just remove > the btn-invisible class from the buttons. I'm putting this out as a feature > request (a hackability request?). > > I haven't changed the buttons yet, so that is how they were working before > I did this. I had to click the button once to create the tiddler, and then > a second time to finally see something happen. This way, whatever way I > initialize it I see the effect on start up. > > Is this something that could be added to the core? Note that "create", as > I wrote it, must be valid JSON and the title gets overwritten if it is > there. Enjoy! > > --Arlen > > -- > You received this message because you are subscribed to the Google Groups > "TiddlyWikiDev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/tiddlywikidev. > For more options, visit https://groups.google.com/d/optout. > -- Jeremy Ruston mailto:[email protected] -- You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/tiddlywikidev. For more options, visit https://groups.google.com/d/optout.
