CurlyOptions is a means to add options to TaviMacros and certain elements. Some made-up examples are given below to illustrate the concept. For actual examples see documentation on the different elements and macros. I.e. TaviMacros/TitleSearch and FormalFormattingRules/Tables uses CurlyOptions.
The basic thought is that if one includes text between curly braces right behind the starting element marker or as the first argument to a one of the TaviMacros. Within the braces options are separated by commas, and each option could be given a value by writing option=value. Furthermore to avoid having longish text besides starting elements or macros the CurlyOptions could be reduced to shortest common prefix of the given element/macros options.
Here is two examples on the syntax, one with macros and one with headings:
[[TaviMacro {display=oneline,class=classname} Some thing else ]]
=={style=background:yellow} A yellow heading ==
And this could be reduced to, given that no other options starts with respectively 'd', 'c' or 's':
[[TaviMacro {d=oneline,c=classname} Some thing else ]]
=={s=background:yellow} A yellow heading ==
To clearly know what's needed to trigger the option the documentation of CurlyOptions for any given element should state the option name like: class, which means that the shortest unique prefix for this option is 'cl'.
First of all it's optional, so if someone don't like them they don't need to use them. Second people have different views as to how they like to view different results. I.e. the RecentChanges uses at the present a listing form set in a mono-spaced font, and includes the date/time for each and every entry. At some site one might want to change this to only display the date, or gather all changes for one given date under a heading.
With the use of CurlyOptions this could be a possibility. Another listing which uses the format of RecentChanges are the results of the TaviCategories. Here CurlyOptions could be used to change the history format into an alphabetic list.
Another use of options presents itself in the additions to the table formatting which 'Tavi uses. By using options we can do rowspans, change horisontal and vertical alignment or add custom styles or classes. This eases the requirement for different coding schemes, but still preserves the possibility to make really advanced tables.
Since we mostly work with html as output, the following options are suggested to be included for most elements as options. Note that the prefix might change, according to what other options the current element needs to use.
This is to give users a mean to set which style/class one wants for different elements. In a future version of 'Tavi there will, hopefully, be included a CSS style-switcher so that each user might choose which main design he wants for the wiki. And then classes could be used to give alternating looks on different elements.
Although it definitely adds complexity to the macro structure I think it's probably worth it. There are many times that you might want to put limits on queries and or pass other parameters. This would really open up a lot of possibilities for macros without adding a whole lot of complexity since it would be optional. Got my vote to go for it! - Frink