> First question, I m not familiar with the term "hr-seperated list"..
An 'HR-separated list' is a text-based syntax that I've developed and
used in numerous TiddlyTools plugins and inline scripts. Basically,
it's a tiddler containing lines of text, divided up into 'items' of
one or more lines, where each item is separated by a line containing a
TW "HR" (horizontal rule) syntax: newline-4 dashes-newline (i.e.,
"\n----\n").
Two examples of HR-separated lists:
http://www.TiddlyTools.com/#Quotations
and
http://www.TiddlyTools.com/#MiniBrowserList
If the first case, each item is a text entry (a quotation) that can be
randomly selected and displayed by QuoteOfTheDayPlugin. In the second
case, each item consists of two lines: the first line contains
descriptive text, the second line contains a URL. This information is
then used by MiniBrowserPlugin to populate the 'bookmarks' list.
To parse an HR-separated list in javascript code (plugin or inline
script) is easy:
var items=store.getTiddlerText("SomeTiddler","").split("\n----\n");
This creates an array of strings, one for each item in the list.
Then, loop over those items to process each one. If each item has
multiple lines, you can further split the text into separate lines
(i.e., using .split('\n')). For example, to fill the 'bookmarks...'
droplist in MiniBrowser:
for (var i=0; i<items.length; i++) {
var lines=items[i].split("\n"); // 1st line=description, 2nd
line=URL
list.options[list.length] = new Option(lines[0],lines[1]);
}
where 'list' is an HTML <select> element (i.e., a droplist/listbox)
For Mans' specific use case, you could write something like this using
http://www.TiddlyTools.com/#InlineJavascriptPlugin
<script>
var out="";
var items=store.getTiddlerText("SomeTiddler","").split("\n----\n");
for (var i=0; i<items.length; i++) {
if (i>0 && i/5==Math.floor(i/5)) out += "|\n"; // start a new row
out += "|"+items[i]; // add item to row
}
out += "|\n"; // end last row
return out;
</script>
The script constructs the desired TW table syntax into a string
variable (out), and then returns that string. InlineJavascriptPlugin
then automatically passes that returned text to the core's wikify()
function to render the table into your output.
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
-~----------~----~----~----~------~----~------~--~---