Hi Arlen

I'll reply on the pull request you created:

https://github.com/Jermolene/TiddlyWiki5/pull/503

 Best wishes

Jeremy



On Mon, Mar 24, 2014 at 8:44 PM, Arlen Beiler <[email protected]> wrote:

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



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