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.

Reply via email to