Alright, how's this?

this.createText  = this.getAttribute("create",false);
// Process create param
if(this.createText) {
  var createTiddler =
$tw.wiki.deserializeTiddlers("application/x-tiddler",this.createText);
  createTiddler[0]['title'] = this.mangleTitle;
  if(!this.wiki.tiddlerExists(this.mangleTitle))
this.wiki.addTiddler(createTiddler[0]);
}




On Mon, Mar 24, 2014 at 10:26 AM, Arlen Beiler <[email protected]> wrote:

> Hi Jeremy,
> Would the syntax use line breaks? Or were you thinking about all on one
> line? How do line breaks work with wikitext like that?
>
> --Arlen
>
>
> On Thu, Mar 20, 2014 at 1:16 PM, Jeremy Ruston <[email protected]>wrote:
>
>> 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.
>>
>
>

-- 
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