Works well except the "making it visible" part is not working for me.
The span remains hidden unless I remove the style from ViewTemplate.
Also, wouldn't it be more economical to check tree.length instead of
calling getList just to get the number?

Thanks Eric.

-- R

On Apr 20, 7:27 am, Eric Shulman <[email protected]> wrote:
> > I'd like to use RelatedTiddlersPlugin in a manner similar to
> > SectionLinksPlugin.
>
> You mean like the <<sectionTOC>> macro (which automatically generates
> a tree of links to sections *within* the current tiddler)... but
> showing a tree of TiddlyLinks to related tiddlers instead of sections?
>
> > A primer would be appreciated on how to achieve the following
> > functionality (I suspect most of it can be had using the provided
> > API?)
>
> The Usage section of the plugin documentation says:
> -----------------------------
> The plugin also defines two functions that can be called externally
> (from other plugins or scripts) to generate and retrieve either a list
> of links or a formatted "tree view":
>     var list=config.macros.relatedTiddlers.getList
> (start,exclude,callback);
>     var tree=config.macros.relatedTiddlers.getTree
> (start,exclude,callback);
> These functions accept parameters to specify the starting tiddler, and
> a list of tiddlers to exclude, as well as an optional callback
> function that takes any specified tiddler as input and returns a
> custom-defined array of links related to that tiddler:
>     var list=callback(tiddler);
> Use of the callback function enables you to generate an alternative
> list/tree, based on application-specific data (such tiddler references
> contained in tags or custom fields), rather than using the default
> "links" list.
> -----------------------------
>
> In addition, the Examples section of the plugin documentation, shows
> some sample inline scripting to invoke the plugin-defined function.
> With a few changes, this script will do exactly what you want:
> -----------------------------
> <script>
>         var here=story.findContainingTiddler(place);
>         var target=jQuery('#'+here.id+' .relatedTiddlers')[0];
>         var start=here.getAttribute('tiddler');
>         var exclude=config.options.txtRelatedTiddlersExclude.readBracketedList
> ();
>         var count=config.macros.relatedTiddlers.getList
> (start,exclude).length;
>         if (count>1) {
>                 var tree=config.macros.relatedTiddlers.getTree(start,exclude);
>                 if (target) target.style.display='inline';
>                 wikify(tree,target||place);
>         }
> </script>
> -----------------------------
>
> This will generate the desired tree output, starting from the current
> tiddler.title and then uses a jQuery() call to locate and render the
> desired 'target' element (by matching the .relatedTiddlers classname)
> within the currently rendered tiddler.  Note: if no such target
> element is found, the output is written directly into the current
> 'place' (i.e., the location where the script itself is being
> rendered).
>
> To invoke this script from within your ViewTemplate (so the tree is
> automatically rendered for each tiddler), first put it into a separate
> tiddler (e.g., [[ShowRelatedTiddlers]]), and then write the following
> in the template:
> -----------------------------
> <span class='relatedTiddlers small' style='display:none'
> macro='tiddler ShowRelatedTiddlers'>
> <b>Related:</b><br>
> </span>
> -----------------------------
> This both creates the target element *and* invokes the script that
> renders the tree into it.
>
> enjoy,
> -e
> Eric Shulman
> TiddlyTools / ELS Design Studios
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/TiddlyWiki?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to