Hi Vincent,

inline elements get their widths from the content width, so to get through 
this, we have to understand the inline elements styling well.. this article 
is helpful: [1]. From there, I get the idea that it is padding that should 
be set. A simple solution: add to CSS

span[refresh="content"] { padding: 0 1em; }

or may be 0 1px. Try it, it allows to edit empty section transclusion. Now, 
this has a number of drawbacks that you can see if you add this to 
StyleSheet and use some transclusion, especially in 
MainMenu/SideBarCommands, all of them originate from the fact that all 
tiddler macros get padding, not only empty ones. So, something like [2] can 
be done (after wikifying/refreshing) either with changing the display 
property or with just changing padding.

I've tried to edit a section and a slice using this trick in the tiddler:
test
<<tiddler [[test##section]]>>
<<tiddler [[test::slice]]>>
|slice||
!section
Section is edited.. well, there comes the bug I've mentioned previously, 
but the content of the section becomes what it was expected to become 
(although, couple of times I got the content appended to !section without a 
linebreak, but I can't reproduce that). But when I edit the slice through 
the transclusion, I always get the content put to the wrong place: I write 
"text" to the second transclusion, and get text|slice|| line saved instead 
of |slice|text|.

Best regards,
Yakov.

[1] http://www.maxdesign.com.au/articles/inline/
[2] 
http://stackoverflow.com/questions/11572905/min-width-on-inline-not-inline-block-behaving-element

четверг, 14 августа 2014 г., 18:09:38 UTC+4 пользователь Vincent Yeh 
написал:
>
> Yakov,
>
> Thanks for the reply that showed me different results from what I had and 
> got me to look further into the details for a cause. Fortunately I found 
> it. It was the ExternalTiddlerPlugin that kept me from getting the empty 
> slices. In the handler function of ExternalTiddlerPlugin (that overrides 
> that of the original config.macros.tiddler.handler), an empty content is 
> considered non-existing and gets skipped, without even creating the SPAN 
> element. That's why I couldn't find it with an empty slice value.
>
> Removing the ExternalTiddlerPlugin I got the same results as you did: the 
> original config.macros.tiddler.handler got executed and an empty SPAN got 
> created. However, even though there is an empty SPAN created for an empty 
> slice, the *twve* still cannot find it with the mouse pointer, *because 
> the empty SPAN has zero width*. I'll need to think of some way 
> particularly for that. Shall take a short while.
>
> Have Fun!
> Vincent
>
> On Sunday, August 10, 2014 10:21:45 PM UTC+8, Yakov wrote:
>
> Hi Vincent,
>
> basically, when you work with the mode changing/refreshing of the story, 
> you shouldn't rely on displayMessage: in some cases, it fails to display 
> messages (or, probably, the message is shown and closed so quickly that 
> even the display doesn't actually show it). Instead, use console.log or 
> alert (don't use the last one if you expect many messages, though; on the 
> other hand, there are some cases when messages in the console are shown in 
> an unexpected order).
>
> On the other hand, when I tried this plugin:
> //{{{
> config.macros.tiddler.handler = 
> function(place,macroName,params,wikifier,paramString,tiddler)
> {
> console.log("msg");
> displayMessage("msg");
>
>     var allowEval = true;
>     var stack = config.macros.tiddler.tiddlerStack;
>     if(stack.length > 0 && config.evaluateMacroParameters == "system") {
>         // included tiddler and "system" evaluation required, so check 
> tiddler tagged appropriately
>         var title = stack[stack.length-1];
>         var pos = title.indexOf(config.textPrimitives.sectionSeparator);
>         if(pos != -1)
>             title = title.substr(0,pos); // get the base tiddler title
>
>         var t = store.getTiddler(title);
>         if(!t || t.tags.indexOf("systemAllowEval") == -1)
>             allowEval = false;
>     }
>     params = paramString.parseParams("name",null,allowEval,false,true);
>     var names = params[0]["name"];
>     var tiddlerName = names[0];
>     var className = names[1] || null;
>     var args = params[0]["with"];
>     var wrapper = createTiddlyElement(place,"span",null,className,null,{
>         refresh: "content", tiddler: tiddlerName
>     });
>     if(args!==undefined)
>         wrapper.setAttribute("args","[["+args.join("]] [[")+"]]");
>     this.transclude(wrapper,tiddlerName,args);
> };
> //}}}
>
> and these tiddlers:
> t1
> text
> |slice|slice value|
> |emptySlice||
> !section
> section text
> !empty section
> transcluding t1
> <<tiddler [[t1::slice]]>>
> <<tiddler [[t1::emtpySlice]]>>
> <<tiddler [[t1##section]]>>
> <<tiddler [[t1##empty section]]>>
>
> I've got this result: when I open "transcluding t1", no messages are shown 
> at top-right corner of the screen and 4 messages are shown in console; when 
> I open that tiddler in the edit mode and then press esc to return, I get 
> all 4 message in both top-right and console. Finally, if I open the text in 
> inline-edit mode, I get 4 messages and when I press esc, I have no 
> messages. But most interesting part is when I actually add changes: when I 
> enter the edit mode, change text and press "done", I get 2 messages at 
> top-right and 4 messages in console. Counting messages after inline-editing 
> is hindered by their amount..
>
> As for the DOM, I can see all 4 spans, but those that were created by 
> empty transclusion, are empty as well..
>
> Best regards,
> Yakov.
>
> суббота, 9 августа 2014 г., 6:10:53 UTC+4 пользователь Vincent Yeh написал:
>
> Yakov,
>
> I was wrong about the empty slice/section things. I am having a problem 
> beyond my knowledge and need help.
>
> After some tests I realized empty slices are not editable because (in the 
> childNodes property of the parent) the *twve* cannot find the SPAN 
> element created by <<tiddler>> macro to hold the empty slice.
>
> Then I looked into the *invokeMacro* and config.macros.*tiddler.handler* 
> functions of TW2.8.1 and realized that *with empty slice value the 
> handler function was called*
>
> ...

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to