> Works well except the "making it visible" part is not working for me.
> The span remains hidden unless I remove the style from ViewTemplate.
hmm... not sure about that one.
> Also, wouldn't it be more economical to check tree.length instead of
> calling getList just to get the number?
config.macros.relatedTiddlers.getList()
returns an array of related tiddler titles
config.macros.relatedTiddlers.getTree()
returns a single text string containing the entire wiki-formatted
tree of related tiddlers
Thus, to check the # of items returned, you can write either:
config.macros.relatedTiddlers.getList(...).length;
OR
config.macros.relatedTiddlers.getTree(...).split('\n').length
The first approach counts the items directly in the array... the
second approach splits the tree output into an array of separate lines
and then count the number of items that results. However, even though
its likely that the second approach would be more efficient for most
cases, I used both functions solely in order to demonstrate how they
might be applied.
-e
>
> 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
-~----------~----~----~----~------~----~------~--~---