User suggestions for the WikkiTikkiTavi script. These may or may not be implemented! See also TaviToDo for "official" plans, and TaviPatches for available extensions.


Add suggestion

Please do add your own suggestions right here on this page. Or extend entries from other people if you feel inclined to do so.

If you'd like to discuss the refactoring of TaviSuggestions, please go to TaviSuggestions/ReFactor. (This page will be refactored sometime soon after releasing the 0.25-version...)

-

InterWiki/Suggestions [edit]


TaviTransclusion/Suggestions [edit]


Page Rename

An admin function to rename a page and to update all links to that page. Pretty straight forward, I would think, but I am not a good programmer to tackle something like that. Thanks!

Frank

It's not as easy as you might think. Yes, renaming the page titles is easy. Renaming all occurances for it in other pages' text, not that easy. You'd have to search and replace in (sometimes) large amounts of text, in all the pages, and expect errors because a page name can occur in places where it's not supposed to be replaced (such as between inverted quotes). I'm not sure how MySQL implements, if it does, regexps. And even if it does, this would limit portability to other database engines. --Zenga
-- Henry, [Web application developer]

Simpler install process

The perl-stuff in the install-folder should be removed and replaced by an static config.php (not generated) and install.php (for the mysql stuff) and a php replacement for main.pl.

There are users out there without telnet or ssh access (like some of my friends - and 1000x others), which pre-install tavi (for later upload).

windows(linux)-system without perl/and mysql means (for "normal users")

  1. download perl/mysql/cpan stuff (and install)
  2. configure/create db
  3. dump the mysql-db
  4. move the files to the server/and phpmyadmin the db stuff for this people!

Tavi is written in php why should we use perl for installing (there is absolutly no need)

- I didn't have DBI.pm available so I copied and pasted the SQL queries into phpMyAdmin... I would suggest that at the very least putting the queries into a simple .sql file. However, there seems to be no reason this shouldn't be a PHP file. In most cases it would/should be the first real test of the settings in config.php. The create config script worked, but again, is there any real reason why this is a perl script and not a PHP file? --WorldMaker

Be patient a little while longer. It's on my schedule, but I haven't gotten there yet. But a simpler install process, probably without depending on perl will be available --EvenHolen

- I was just preparing to install this when I opened the install directory and was shocked. PERL? That is perhaps the most retarded installation idea I have seen in a very long time. How much work would it really be to have adump of the database from phpmyadmin and an annotated config.php. Most definitely a fraction of the time needed to put the PERL scripts together.


Mailing List and Usenet Posting Import

I'd like to see a method by which we could input Usenet or Mailing List postings into TAVI. For example, I've been looking for a Wiki solution that would enable me to build a Systems Admin knowledge base -- such items would include what compile flags were used to compile a local server, and any issues encountered, to perhaps some accompanying posts (as mentioned) which would supplement any fixes or work-a-rounds, etc. etc.

Forrest


Usability

I have meant to suggest this as well :-)

diff for the windows users

http://gnuwin32.sourceforge.net/packages/diffutils.htm


htmlspecialchars over diff-output

this will prevent inline images to show in diff output


diff without shell_exec permissions on server

NoExecuteOnServer


Image alt-attributes

Wouldn't it be a good idea to provide some image-alt-attributes for the visualy impaired?

Syntx could be something like [http://www.server.tld/picture.jpg alt-text-goes-here]

What do you think?

If (or when) TaviSuggestions/CurlyOptions is implmented, then a syntax like [http://www.server.tld/picture.jpg {alt=alt-text-goes-here} Ordinary link text] will be available. --EvenHolen

Image attributes, including alt

Other basic image attributes might be worth considering such as height, width, align, border, hspace, vspace and perhaps also class, style, name, title?


<p> instead of <br>

it would be nice, if paragraphs could be separated by <p></p> instead of producing those ugly <br />-deserts. ;-)

It will come in a soon-to-come version of 'Tavi --EvenHolen
I disagree with this approach, especially now that I have to deal with it on my wiki. There's no easy way to make my text appear the way I like it. Visually it's useful to be able to insert a line break without having a gap between lines. I much preferred the old way, which allowed me to just add two lines if I wanted a gap. Moreover, I have no desire to add some sort of soft line break markup at the end of every line. Using a wiki should not make me feel like I'm coding in VB! Can anyone tell me how to achieve the old interpretation of line breaks without losing the new functionality in 0.25? --Qualidafial

Democratic Wiki

It would be interesting if there could be a democratic decision to fix certain pages for different periods of time. Perhaps once a majority of the registered users have registered a page for fixing it could be fixed until a majority of registered users un-register the page. All alternatives could be linked to from the fixed page.


Possible Bad Language Filters?!

I run a site for kids and would love to use Tavi to allow the kids to document the site themselves as they discover things about it. There is the problem, however, of the possible use of bad language and you know kids, if they think they can get away with it, they will. So I was wondering if you could please impliment something to filter bad language, maybe it could be something that could be turned on/off by each site using the software?

Thanks!

To add a bad language filter would be close to impossible. I would say the best solution would be to check the RecentChanges-page a lot, and maybe restrict the wiki to have pages approved before displayed to the public. --EvenHolen
Are you certain other kids won't remove the swearing themselves?
I disagree, difficult but not impossible. Many many forums have this capability right now. Bascically using a list of 'stop words' that are replaced with strings like $#$^&&$! -- PaulM?
Filtering bad words is a near impossible task. It would be an endless arms race trying to catch up with more and more filters. If a person really wants to write a bad word they will, somehow, mixing it with other characters and such. Let this issue be and let the wiki communities take care of it by themselves. -- Zenga

Some Simple Additions?

Forgive me if they already exist... -- Jason Chown


Administration improvements

The administration area could be greatly improved.

Other improvements:

/ MiiroJuuso

Ability to easily add new pages or to go directly targetted page, to the header linkbars ("WikkiTikkiTavi | RecentChanges | Preferences | input form here").

-- JeongheeKang


BreadCrumbNavigation

OpenWiki (see OpenWiki?:OpenWiki/Features?) has a cool feature they call BreadCrumbNavigation that lists the last several pages you've been to so you can backtrack easily. Very convenient. --AndrewJorgensen


Printable page

OpenWiki also has a nice printable version. This might be an answer to the html export idea too. --AndrewJorgensen

See TaviSuggestions/BuildSitePage --EvenHolen

Aliasing pages
Merge different access keys to one unique page to avoid multiple pages dealing with the same topic.
Especially necessary for bigger Wikis where it is impossible to have a overview over the whole contents.

Example: ((CD)), ((Compact Disk)), ((CompactDisk))

All three pages should address the same page and it should be possible to add another alias later like ((Compact Disc)), ((CompactDisc))

And someone from Canada: ((Disque compact)), ((DisqueCompact))

There is a need for something like this, but how could it be done? Sadly, I don't think it's feasible, with the easiest solution being to either add pages which contains info stating that the main page is ThisOne, or maybe by adding a macro to do redirecting. But I haven't digged deep enough into the source to see if it's possible to do redirecting using the macro system already implemented. --EvenHolen
Something like this is done in WikiPedia, where the use of the #REDIRECT instruction effectively allows different ways of referring to the same page. WikiPedia seems also to be getting cleverer about different language variants, though one area where there is a problem is where the names have accents in them - since they are not necessarily expressed in a unique way, and some more unusual characters cause problems with the search engine. --DavidMartland
I'd love to see the Wikipedia style redirects included --Chad
I would also love to see the Wikipedia style redirects within Tavi, in my view they are an essential tool -- Paul
How about just a simple [Redirect WikiPageName] macro? The only drawback is the question of how to edit the document if you are automagically forwarded? Anybody have a clever idea? --Qualidafial
UseMod detects that a redirect occurs and it includes a little header at the top, "Redirected from PageXyz". The page name in that header links to the edit page for the redirect. Nifty, eh? See meatball:TheWELL? for an example. --ScottMoonen
Scott, I'd be willing to code this if it's a feature you're willing to integrate. Addition of this macro would mean that all script output would have to be buffered in case there's a http-redirect, which won't be terribly often... not sure what impact this would have on performance. Of course, you could always turn off redirects, or use client-side scripts to redirect. TellMeYourThoughts?. --Qualidafial


Drop Page Recent garbage added here, not in the SandBox leads me to think it would be really good to have a way to really delete a page, not just let it slip into oblivion over the next 14 days. Of course only admin would be able to do this, but I think it would make life easier without offending WikiPurists.


Table Headers Would be nice to have a way to make <th> cells in tables. -- AndrewJorgensen

see TaviPatches/TableWithHeaders
Also see my TaviPatches/TableFormatting which also adds rowspan, and top/bottom-justification.'' --EvenHolen

Remove extra margins for headings. Using CSS, set the margin-bottom for all heading levels to 0.

Is this a suggestion to tavi, or something one could easily add self? --EvenHolen

Here is the history page suggestion that I'd previously emailed: Remove the "Older" and "Newer" headings from the version selection columns, and have the program automatically set the latest of the two selected versions as the newer for the diff.

--John Belmonte

Backlinks

Create a macro such that you can find out what pages link back to the current page.

This already exists! Just press the page title, and it will search for all pages linking to this page --EvenHolen

Removing [ ] from links

Is there an easy way to not have the [ ] show when making links such as [NY Times] ? --CurtisNelson

I just replaced the return statement of parse_hyperlink_description in parse/transforms.php:

return preg_replace("/\\[($UrlPtn) ([^]]+)]/e", "url_token(q1('\\1'), q1('\\2'))", $text, -1);

-- SimenBrekken

Page view script

How about a simple PHP script which will take a page name as a parameter and return the page's contents. This could be useful for publishing information from a Tavi admin system to a front-end-user website real-time. It's probably trivial to do so how about it.

Underline

Italic and Bold are in, but I'm still missing __Underlined__ or __Strikethrough___.

There are several suggestion regarding underlined, superscript, subscript and/or strikethrough. I've added a patch, to be debated, TaviPatches/TextEnhance which does some of this and a little more... And this patch is included in version 0.25 --EvenHolen

Dynamic CSS

How about the ability to place CSS <span> tags? Perhaps [[CSS StyleName]] and [[CSS]]

PHP Scripts

Calling a predefined PHP script from within a wiki page. [[PHP Scriptname]]. For security reasons there would have to be a predefined dir in which the scripts would reside and this dir should be set in the config.php file so only those scripts can be called. This could allow Tavi to be used to administer a "normal" website with forums, database access et all.

plz drop an e-mail to mailto:pikashole@hotmail.com for the above four ideas.

DatabaseIndependence

I know a lot of people like MySQL, but personally I'm a PostgreSQL fan. Right now, that's the only thing holding me back from using Tavi, as everything else looks sweet.

As of somewhere in the 4.0 release of PHP, there has been a new DB.php library, which is intended to be something of a PHP equivilent library to Perl's DBI. Supposedly it's fairly stable and mostly usable right now, especially for MySQL and PostgreSQL.

Status on making Tavi fully database independant can be found at DatabaseIndependence.


File upload ability So that serious groupware can be done with Tavi! Here's something you might find useful until it gets integrated... http://phpwiki.sourceforge.net/phpwiki/index.php?UploadScript.

See UploadBrainstorming.

Cache page existence checks. Until now, I had chosen not to cache page existence checks since there didn't seem to be any great performance benefit. But I think that it might help out RecentChanges, at least if some of the names on RecentChanges tend to appear a number of times. So we should at least test out a static associative-array cache to see if there's any benefit there.

Translations Translate all the strings.

Working on this on. See upcoming 0.25-version --EvenHolen

Add a watch feature. It would be cool If I could select specific pages that I want to watch, and whenever one gets updated, it would e-mail me about the change. -- GerritPadgham

Discuss at EmailNotification.
Is RecentChanges to large to be used for this purpose? Would it then be feasible to use a macro based on RecentChanges where one might add the pages one was interested in? --EvenHolen
I've seen the light... ;) This is already included see TaviCategories. It's seems like a category scheme at first, but it's also a recent changes system for pages you like. For an example of use see my page, EvenHolen. It does however not send you an email, but you could this as your starting point on the site.

Minor edits. As on c2.com and UseModWiki. Allow minor edits to be administratively prohibited.

Flag new pages. In categories, have the history URL include the version number (perhaps make it irrelevant, though). The purpose of this is to allow the user's browser to mark history links as unvisited once a page has changed -- a subtle indication that the changes haven't yet been read.

QBullets Use QBullets [1] to show e.g. external links, instead of square brackets.

Performance. Implement support for the HTTP If-modified-since header. See [2].

Preview saving. For each IP (or UserName?) cache the last previewed edit. Delete after 24 hours or when the user actually saves the edit. (I just typed in a bunch of stuff on a page, only to lose it when my computer crashed!!!)

Automatic categorization. At the top (or bottom) of each page, list all pages that include it in a category list. How do we prevent it from being clogged with "User1/Favorites", "User2/Favorites", . . . ?

This is somewhat included by selecting the main header of the page, which then searches for pages referring to it. Clogging is only prevented by people not referring to your page ;-) --EvenHolen

More intelligent diffs. Perhaps highlighting of individual words added or deleted. Or possibly a change-bar like Why:GoldBar?.

See TaviPatches/WordDiff or TaviPatches/InlineDiff.

Edit-submission mode. Where all edits must be cleared by an "editor" before they are promoted. Not sure if on a page-basis or site-basis. Has some similarity to part of MeatBall:ViewPoint?. Also useful when the level of vitriol gets too high, to allow things to cool.

Password protection. See TaviLoginIdeas.

Hierarchichal structure. I like the way ZWiki's page hierarchy works. It seems a little confusing for newbies, however. If implemented, I'd want to make it a user-definable option for which the admin decided the default setting.

User customizable link bars. Choose which links to place where (e.g., add an edit/history link to the top of each page, etc.).

Meta-category lists. See DocumentSubscriptionIdeas.

Hidden pages. Different from Cliff's MeatBall:HiddenPages?. This merely indicates pages that shouldn't display in [[! *]], but for which we'd have another wildcard, something like [[! .]]. This allows us to use some pages for system purposes, like user preferences, etc. Not sure who should be able to hide / reveal pages. Alternatively, hidden pages may simply be those enumerated in the category list on the page HiddenPages. Hmm.

Literate programming. Really wacky, probably no way it can be elegantly implemented. How about some interface whereby one might use 'Tavi to edit its own script? A la Wiki:WikiBase?.

A title index. Macro that lists all pages in an index format. Should be easy to implement.

Can you comment on what is meant by this? I'm not sure I can visualize what you mean.
I think the though is to have a title page, with alphabetized links showing every page contained in the wiki ... Something like this: IndexPage.
Aah, okay. A quick and dirty way of doing that is using action=find with no search text, e.g., http://tavi.sourceforge.net/index.php?action=find. Is that enough, or would you like to see something like a PageIndex macro?
Hey, that's cool. But for larger sites it might be nice to have a macro. Perhaps take advantage of the new anchors.
It's a cool feature. And one advantage of making it a macro is that one might include separate heading for each letter, and maybe even come up with some scheme so that WikiNames with equal prefix is gathered under a common heading? --EvenHolen
In fact it's so cool, and needed by myself in some other plans that I've actually made a patch for it, TaviPatches/TitleSearch. It does not include the headings itself yet, but it does the other stuff... This patch is included as of 0.24, see PageIndex?. --EvenHolen

Multiple language support. We have Unicode support to emit the characters, why not add language support for translations? It could be as simple as this: if the user's language preference string (reported by the browser) is "xx,yy,zz", then search first for PageName/xx, then PageName/yy, then PageName/zz, and lastly PageName. (Possible quandary: which of the above should it try to create if you click on an undefined page name?) There'd have to be some facility to easily view other translations; perhaps they could be listed at the bottom or top of each page.

Steal any other nifty ideas from MeatBall:WikiIdeas?, MoinMoin:MoinMoinIdeas?, ZWiki:WikiStructuringIdeas?, TWiki:TWiki/WebHome?, and elsewhere.

Are there any ideas in particular you want? I think it's wise to let the different wikis evolve their own way, although some ideas are indeed nifty... --EvenHolen

Allow any chars as free links. We can enter Chinese as utf-8 now, but it can not work as free links. This may be very difficult but important to Chinese users.

see the patch in UTF-8 Text. -- hlb
Included as of 0.25 --EvenHolen

Logos. It's quite good to do something like this for user specified logos (e.g.$WikiLogo )

<img src="<?php echo $WikiLogo; ?>" border="0" align="right" alt="[Home]" <?php echo GetImageSize ("$WikiLogo") [3]; ?> /> 

This fills in the width and height attributegories (search on "newly created pages") for an approximation of the latter. -- ScottMoonen


Colours It would be nice to have a way to colour text so maybe <BLUE>Text</BLUE> im not sure hypertext markup is the best way to go for that though

If the span-feature is added, then one might easily use that to accomodate any font or color changes users might have. But I think that mainly the wiki markup should be logical. (But that's my thought!) --EvenHolen

Underlining This has been mentioned before but would be really useful

Cheers


With these additions Tavi will be my wiki of choice! Right now I'm using [TikiWiki] but I'm not crazy about its feature bloat. However, I do need some of the above features so I can't use Tavi right now...


Two way RSS support

Please refer to http://www.openwiki.com/. It can use a interesting macro like <code><Syndicate></code> to include a RSS. I think that it is a nice feature - hlb


Here is an idea that might even be better than Breadcrumbs - actually, it would be a kind of supplement to it. I call it MenuTitles. The idea is fairly simple. I've noticed that some pages have slashes in the title, like this: "Root/Directory/Sub-Directory". I was thinking that when such a title appears it should be possible to click separately on each section. So, for instance, in the above example clicking on the word "Root" would take me to the page named "Root" and clicking on the word "Directory" would take me to the page "Root/Directory", and clicking on the word "Sub-Directory" would take me to "Root/Directory/Sub-Directory"!!! It seems fairly easy to implement, and then the naming system would give you an automatic navigation tree!!! And if you don't want to use it, you can just not use slashes in the title!

See TaviPatches/SubPages which is an start on this implementation. --EvenHolen
Or even better, see TaviSubPages. This is implemented as of 0.24 (with fix in upcoming 0.25) --EvenHolen

Alignment
It could be useful to have a way to center or right align some paragraph. I don't know exactly what could it be, but for exemple : > foobar < for centering and > foobar > to right align could work (< foo bar < for left-align, but since it is the default...)
Table without border
It might be useful to be able to define a table without having the border be visible. It can also be useful to be able to define the alignement inside a cells
Background color
I don't know enough HTML to know if it is possible, but could a special MACRO change the color of the background of a page ?
-- [Benjamin `Quisar' Lerman]
Some of these are partly answered in TaviPatches/TableFormatting, and could be extended. The background color is feasible, but it's maybe better to use CSS to do that stuff. --EvenHolen

BuildSitePage
This suggestions is somewhat lengty so I wrote TaviSuggestions/BuildSitePage to describe it. The idea is the possibility to build a single page including a lot of other pages, so one might make a printed edition of the pages. --EvenHolen
CurlyOptions
Described in TaviSuggestions/CurlyOptions is a scheme on how to give options to macros and elements within wiki pages. It's open for discussion if you don't understand or have some opinions about options which is not included. --EvenHolen
Loose the monospaced macro results
I see that a lot the macros produce output coded as within a <code>-section. Is this needed, or do we want to change it? I.e. on LinkTable it's not possible to get a proper view if some of the pages has lots of links within them. To discuss this suggestion please use the page TaviSuggestions/LooseMonospacedLists. --EvenHolen
TaviPatches/OrphansToBeDeleted
Whether this should be a patch or a suggestions I'm not quite sure, so now it's listed both places... :-) The idea is that even after scheduling pages for deletion they show up on the OrphanedPages, but with no indication as to fact they are to be deleted. I want to see them marked for deletion. --EvenHolen
PlugIns
Both on this page and on the TaviPatches pages I see nifty ideas for features that could be included, and some that maybe someone really would love but the community as a whole might not see the need. Therefor I envision a plugin directory, and how this is supposed to work can be debated in TaviSuggestions/PlugIns. This is also an answer to JReiter's page about Macros.

HTML Entities. It would be nice if HTML Entities would be properly handled: &rarr; &larr; etc...

Doesn't 'Tavi already accept whatever text you throw at it? So there is no need to use the &rarr;, just enter the character directly and everything is nice... That is if you're able to enter it... ;-/ --EvenHolen

Entity support is not needed if Tavi is set for UTF-8. For other character sets, the browser converts foreign characters to HTML entities. After all, the HTML character set tells only in which encoding the text is transmitted, not what characters the page may contain. To solve the problem, edit parse/transforms.php function parse_htmlisms:

function parse_htmlisms($text)
{
  $text = preg_replace('/&(?!#\d+;)/', '&amp;', $text);
  $text = str_replace('<', '&lt;', $text);
  return $text;
}

It will not display all entities (it was a quick hack) but will show entities converted by the browser.

--Jmz


Neighboring wiki's. Whenever I'm viewing a wikki page, I feel like I'm all alone, a lonely Wikki, but each Wikki must have neighbors surely!! Somehow, for it to be possible, if the administrator of a site wants to, should be able to have a Tavi Macro that lists the NeighborWikkis. These would be pages that lead to this Wikki I am reading, in other words, sort of like the browsers back and forward buttons, but they would change depending on what page you were on. IF A leads to B and B leads to J which leads to Q and I am on J, my neighbours would be B and Q, not A, unless A leads to J directly. --Bojan

This would be a rather expensive operation, and difficult to maintain. What if several sites leads to B? I think the concept of SisterWiki's is the closest we get just now, and that lists if some of the wikis have the same page. --EvenHolen

Upload ability with max size. Ability for site admin to specify max file size for uploads, and people to be able to upload small images. Although knowledge is best diseminated via words at the moment, images are very helpful in dealing with communication. The syntax could be something like [figure2-3 This is the caption] and then when you hit save, the page after it would ask for the images to be uploaded with a browse and upload buttons. The caption would appear next to it and the figure name. The data could be stored in a directory structure, accessible via regular HTTP requests, and that directory should be Apache protected to allow reqeusts only if the referrer is the site itself, thus not allowing external linking. Afterall, the purpose is to keep it in the wiki. After upload the [figuer2-3] the figure 2-3 would be replaced by a unique image identifier, thus allowing someone to move an image to any wikki they wanted to, or re-use it on that site. It might even be possible down the road to extend it via interwikki to use interwikiimage linking. That would be neat. --Bojan

This will be included somewhere along the way. See UploadBrainstorming for more discussion about the subject. --EvenHolen

How about a Peer to Peer Wikki system? -- Bojan :) Okay I'll stop now.?!


Attachements

Allow to attach some files. Very usefull to document a project, we can so add all Word/PDF/latex/etc. documents.

In upcoming 0.25, we'll allow for interwikis and url's to references files. This would provide those with a common file server to make references to any needed document. I think this is a better approach, rather than actually including binary files within the wiki. --EvenHolen

Aliasing free links

Something about ((mylink)) vs. ((my link aliase))

Suggest optional syntax of the form:

((mylink)(My link alias))
Today the following is allowed: ((mylink|alias for link)). --EvenHolen
Could someone explain this idea more in details? I don't understand what's meant here. Does he think about some sort of autocompletion whilst editing a page? In that case, it's not very likely to happen. --EvenHolen

History in toolbar?. As a casual user, whenever I'm browsing tru Wiki's, after 10-15 pages I feel I'm lost in the web. I don't have overview anymore where I am (I am oldskool hierarchical thinker :). So it would be good if:

--willem@byte.nl

Alphabetized Category List. I'm setting up a new 'Tavi site and have just started using categories. This is a nice feature, but once you get more than a few pages in the category, the long, unordered list is a bit unmanageable. It would be much more usefull if the category list were alphabetized every time a new page was added to it. --bhhenry

With the new bug fixes, it should be possible to always use the 'Add document to category'. Thereby eliminating the need of manually updating the category list. But I'll consider sorting the list. --EvenHolen

Dereference WantedPages

When looking at WantedPages I see lots of pages not created, but I don't know where they are created. Therefore I'm wanting a change in the macro so that it also lists on which page it found the missing link, and hopefully this page could be an edit link directly. In this way, one could look at WantedPages and go directly to either creating the wanted page, or edit the page where it was referenced thus causing it to appear in WantedPages. Do you like the idea? --EvenHolen

The number to the left indicates how many pages link to the missing page. If you click on the number, you will get a list of those pages. --bhhenry
I know, but see the entry for ViewMacroEngine, and try hitting the number and see the return of the search. Now my question to you is: Which of these pages contains the 3 ViewMacroEngine counted as wanted pages? --EvenHolen
I solved it. It's now possible to see by adding {origin} into the macro definition. --EvenHolen

PageIndex see TitleSearch

a PageIndex? (like the one Wakka have http://www.wakkawiki.com/PageIndex ) is a must have for listing all the Title in Tavi.

In what way do you feel this differs from the output at TitleSearch. If you're not pleased with that output, try [[TitleSearch {index,c=prelist} *]]. Note: Due to bugfixes, in version 0.25 and onward, this example needs to read as [[TitleSearch {index,list} *]]. --EvenHolen
Oh, it is handy to put this on the Navigation Bar of all pages as Wakka does. (I see the link of this function of te HomePage of Tavi now...however, it is too infomative that I missed it before :-( ) --Aaron Law

VisualTour?

VisualTour? (see an example: http://moniwiki.sourceforge.net/wiki.php/VisualTour and http://c2.com/cgi/wiki?VisualTour and http://c2.com/cgi/tour?w3.d2/MoinMoin ) is a auto-generated image/picture presenting the relationship between all the pages with in Wiki. I've seen it in MoinMoin (may be not in MoinMoin...I can't remember) , which is a Python-based Wiki, and it is very fun and useful for any "visual-guy".

Interesting concept! When the plugins-support is integrated, this sure could be a great plugin!'' --EvenHolen

I think so! This is an other kind of PageIndex/TitleSearch?, I think. --Aaron Law

Privacy/ Access Control

As a online data-warehouse, Tavi should provides Access Control (like the one Kwiki provided) for privacy (http://www.kwiki.org/index.cgi?KwikiPrivacy}.

This will be addressed somewhere along the way, see TaviToDo --EvenHolen
Wheer it is? I still not find.. --Aaron Law

Text Search

Besides Title Search, Tavi should have a Text Search like what Moin wiki (http://twistedmatrix.com/users/jh.twistd/moin/moin.cgi/FrontPage) has.

--Aaron Law

In the upcoming version I will try to facilitate more advanced searches. The search in the bottom is equivalent to the text search, so the one we're missing is the search within page titles. Or are there some other search you would like to see? --EvenHolen
According to TitleSearch & TextSearch?, what type of search have we missed? --Aaron Law
  • Page reference searches
  • Title searches
  • Links to/from search
  • Advanced searches, i.e. something -anything for a page containing something but not anything
When we get the results from word-search, we expect to see the text containing the search word, of each found page, like Google, or TWiki's search function. I know it's hard to do it because 'Tavi uses LIKE in SQL query, but I hope someday we can have more powerful serach function. --MiGi

Multiple lines within cells of table

Is it possible to have multiple lines within a cell of a table? That is, we can add something like <br> or <p>. -- Drake

In upcoming version 0.25, this is possible. See TaviReleaseNotes/LineBreaksAndContinuation. --EvenHolen

a better way to show Diff

Since the Diff fuction is a must on any Wiki system, and I'm not satisfied with the way how Tavi' shows the diff (i.e. showing the difference in 2 blockages of paragraph even there are a word changed within the same paragraph. I think it is better to show the changed-word only (i.e. not showing it in such a "blockage way")), I've done a search on other Wiki systems to find one that makes me satisfied.

Now, I've found a way to show the changes in a all-round-satisfied way. Pls check [this] out:

It shows a paragraph which has been changed in red (the old one) and green (the new one) as what Tavi' does. However, it provides a feature which tavi' doesn't have - Highlighting the text (a small piece of text) which has been changed within these blockage.

As you seen, it keeps the old way what tavi' does and help the people who don't want to search the changed text by eyes. And therefore I believe this feature helps improving tavi'. Hoping I can see this feature in the future of Tavi'.

P.S. The [example] I provide above using [PhpWiki] as the Wiki system. However, I don't find the feature on PhpWiki's wiki site.

--Aaron Law

A feature along these lines, will be included. But I can't say when. Some other stuff to do first. --EvenHolen
I like this suggestion for a better diff, it would be a big improvement to Tavi! I have set up Tavi wikis for a number of customers that use them for collaborating on all kind of documents. A better diff is the only feature they asked about. -- FredrikJonsson
Look at TaviPatches/WordDiff which compares versions of page word-by-word and not line-by-line. Of course displaying differences side by side inside their contexts would be nice to have... --HermannSchwarting
Also look at TaviPatches/InlineDiff for the word-for-word idea taken a bit further. --Zenga

When doing searches, it would be helpful for the search words to be highlighted when you follow a link from the search results page. Example: I'm searching for "widget", get a couple results, and click on one of them. The document appears as follows:

While constructing your widget don't forget to add the doohicky, while continuing to add liberal amounts of thingamajiggers.

Another option is to highlight the matching words by changing the background color slightly, rather than using strong text. Would this be useful to other people, or am I just taking crazy pills?

--Qualidafial

I've been thinking along the same lines. Still got some thinking to do, but someday... --EvenHolen
Also along the lines of searching, it seems you can't search for more than one word at a time. Replacing all spaces with % wildcards in the MySQL query, in addition to adding them in front and at the end, would give much better results. You would be able to search for several words at once. --Zenga

PHPDoc action

I'm doing a project in php for 8 credits ( 40 hours per credit 4 people ) in computer science at the university of twente, and we wanted to use a wiki in the proces. I thought it would be handy to have the PHPDoc directly accesible in the wiki. I wrote an action, <random base url>/tavi/index.php?page=PHPDoc&action=PHPDoc&dir=/upload/doc/.

I'm in the proccess of cleaning it up. It makes an index page into the phpdoc and copies the rest into it. Any suggestions on how i should proceed getting it listed here?

--Jillis ter Hove

It's not a bad idea, in fact it sounds interesting. The proper place to put this would be on the TaviPatches, maybe on a page of it own like TaviPatches/ActionPhpDoc. Please contribute the code, we'll look at it, and if it's usable by others then maybe it will make it into the main code. At least it would be available as a patch --EvenHolen

TaviSuggestions/ExportImport

See the page for ideas regarding importing and exporting multiple pages in one swift operations.

Minimum number of pages

As of today, the history of a given pages is either limited to be within the ExpirationPeriod, or to store every version. If ExpirationPeriod is set to 0. I want to change this into adding another option stating something like: Keep at leaste this given number of versions. This would make it possible to always have, say 5 versions, of any page available. No matter how old/new this pages are. This would ease maintainance on larger sites, where it's possible to get only the last two versions if the changes were made a long time ago.


I have turned on the option to separate words in wiki names. Page titles look funny though when prepositions, 'the', 'a', 'an', and the like are capitalized. Thus a link to TheFarmerInTheDell should be presented as The Farmer in the Dell instead of The Farmer In The Dell.

--Qualidafial


TranscludeSubPages? - a variation on transclude, this macro would simply render as a list of the current page's SubPages?, with a little triangles (or whatever) which toggle out to show the whole subpage.


I see one suggestion for two-way RSS capability. How about just one way? I'd like to have wiki changelogs appear as RSS. What's required for this? I know there is a FeedCreator? php library out there, i use it. I guess it would be more interesting deciding what actually goes in the RSS feed itself.

This already exists: http://tavi.sourceforge.net/?action=rss --RichardCyganiak
-

Table of Contents

Or maybe a macro? You may not want this on all your pages. --LouisLapointe
---

Custom Persistent Page Elements

It seems useful to implement a persistent (on every page) header, footer, and sidebar which are configurable in Preferences such that one may simply use the defaults or specify custom values where the header/footer/sidebar is simply a wiki page. (See also: TaviPatches/TopBar, TaviPatches/SideMenu). ?RichardTater

PmWiki has an EdiableSideBar that can be edited by the community anytime. A very
nice feature! --AaornLaw?

Auto date/time insert

How about a simple macro to insert the current date and time?


Macro for creating drop-down navigation combo boxes.

It would be cool to have a macro that generates drop-down selector boxes that many sites use for navigation:

[[Nav PageOne PageTwo PageThree]]

This would result in the following HTML being added (as well as appropriate scripts to navigate to the selected page when the user clicks):

<select>
  <option value="PageOne">
  <option value="PageTwo">
  <option value="PageThree">
</select>

--Qualidafial

I decided to go ahead and code this myself. See TaviPatches/DropDownNav. --Qualidafial
---

Counters

I got tired for hand-numbering lists (like in multi-step instructions). So, I created this little bit of code. All you have to do to install it is add a 'parse_counter' entry in the $ParseEngine variable inside defaults.php. This entry should go BEFORE the 'parse_htmlisms' entry. Then add these functions to transforms.php:


function parse_counter($text)
{
    global $CJL_COUNTERS;

    $text = preg_replace("/<counter \s*(.*)\s*(start\s*=\s*(.*))?\s*(set\s*=\s*(.*))?\s*>/iseU", "handle_counter('\\1', '\\3', '\\5')", $text);

    return $text;
}

function handle_counter($id, $start=false, $set=false)
{
    global $CJL_COUNTERS;

    if( !$start ) $start = 1;

    if( !$CJL_COUNTERS[$id] ) $CJL_COUNTERS[$id] = $start;
    if( $set ) $CJL_COUNTERS[$id] = $set;

    if( preg_match('/^[0-9]+$/', $CJL_COUNTERS[$id]) ) return $CJL_COUNTERS[$id]++;
    else if( preg_match('/^[a-zA-Z]+$/', $CJL_COUNTERS[$id]) ) return inc_ascii($id);
    else return "";
}

function inc_ascii($id)
{
    global $CJL_COUNTERS;

    $ret = chr(ord($CJL_COUNTERS[$id]));
    $CJL_COUNTERS[$id] = chr(ord($CJL_COUNTERS[$id])+1);
    return $ret;
}

Then, you use the counters like this:


Step <counter blah start=2>.  do some stuff

Step <counter blah>.  more stuff

Step <counter blah set=5>.  more stuff

Step <counter blah>.  even more stuff

:Step <counter sub1 start=a>.  sub stuff

:Step <counter sub1>.  more sub stuff

Which would look like this:

Step 2. do some stuff

Step 3. more stuff

Step 5. more stuff

Step 6. even more stuff

Step a. sub stuff
Step b. more sub stuff

--CullyLarson

-

'Linked to By' Macro:

This macro outputs a list of pages that link to the page provided. I find that it's useful to put in the header. That way, I can easily navigate to related pages and also back to the page I came from.


function view_macro_linksto($title)
{
  global $pagestore, $LkTbl;

  $esc_title = addslashes($title);
  $q1 = $pagestore->dbh->query("SELECT page FROM $LkTbl WHERE link='$esc_title'");

  if(($r1 = $pagestore->dbh->result($q1)) && !empty($r1[0]))
  {
      do $text .= html_ref($r1[0], $r1[0]) . " | ";
      while( $r1 = $pagestore->dbh->result($q1) );
      $text = substr($text, 0, -3);
  }

  return $text;
}

--CullyLarson


Erm, implement [this standard] would be nice.


Every time we view/save a 'Tavi page, the program calls $PageStore->Maintain() in file ./lib/main.php to delete expired pages.

I think this function may not be called so frequently because the deleting time is not so critical, whereas we just have to call Maintain() once 14 days (as $ExpireTime is set 14).

Also, function Maintain() is so time-comsuming that the more pages stored in the database, the more time it costs. I did one thing to view all the database queries:

in ./lib/db.php:
  function query($text)
  {
    print $text."<br>"; // add this line
    if(!($qid = mysql_query($text, $this->handle)))
      { die("<strong>".LIB_ErrorDatabaseQuery."</strong><p>$text</p>"); }
    return $qid;
  }

And I found the server spends more time expiring old pages (most time there're no such pages) than fetching data which we really need. My 'Tavi site had more than 250 pages, and there were also 250 lines of database queries of expiring, which actually does nothing...

Another side effect is that the size of the database log expands very fast.

I suggest a very simple modification which can speed up loading. but it doesn't get to the root:

modify ./lib/main.php

Add one line as the following.

...
// Expire old versions, etc.
if ($action=='save' && (rand()%$ExpireLen)==0 /*probability of 1/$ExpireLen*/)  // Add this line
	$pagestore->maintain();
?>

The effect is that, maintain() is called once only when any page is saved $ExpireLen times.

So, to solve this problem completely, is there any good way to make just one database query to expire all unwanted pages? And shall we store a new variable which records the last time of the maintainance? -- MiGi


The loading time becomes longer when the Tavi site and database server are located in different hosts. Even more, if they are in different domains, the connection might stop for timeout of database querying. I don't mean the fault is totally because of maintain() function, however, disabling maintain() will ease such problem.


Other wiki engines such as UseModWiki and Jot solve this problem by making maintenance a URL action rather than having it in the mainline path. I.e., to run maintenance you must visit index.php?action=maint. This solves the problem very simply. If you remember to link to that URL somewhere, you can even let search bots take care of remembering to do maintenance for you. ;-)

To Boost The Performance of maintain()

Make the original whole-database fetch into one query:

In lib/pagestore.php

function maintain()
    ...
//original:
    /*$qid = $this->dbh->query("SELECT title, MAX(version) FROM $PgTbl " .
                             "GROUP BY title");
    
    if ($ExpireLen != 0) 
    {
      while(($result = $this->dbh->result($qid)))
      {
        $result[0] = addslashes($result[0]);
        $this->dbh->query("DELETE FROM $PgTbl WHERE title='$result[0]' AND " .
                          "(version < $result[1] OR body='') AND " .
                          "TO_DAYS(NOW()) - TO_DAYS(supercede) > $ExpireLen");
      }
    }*/
//This do the same thing but economic!
    if ($ExpireLen != 0) {
   	$this->dbh->query("DELETE $PgTbl FROM $PgTbl AS t1, $PgTbl AS t2".
   			  "WHERE t1.title=t2.title AND t1.version<t2.version".
   			  "AND TO_DAYS(NOW()) - TO_DAYS(supercede) > $ExpireLen");
    }   		

    if($RatePeriod){
    ...
}

I think this modification would help the performance issue a lot. If there are any better solusions please tell me. -- MiGi



We use and love Tavi on our internal network, for nearly all aspects of our small 6 person company. We are primarily a software development outfit though and would LOVE to see automatic rendering of code/syntax highlighting etc. i.e. you'd surround the code segment with tags such as and it would automatically pretty print and syntax highlight any code within them. We primarily use Java, although it would be nice to include/highlight code for any language, perhaps by specifying the language as a parameter.


Integration of Tavi with an Open Source CMS

I love Tavi, it is a good Wiki. But for some applications you need a Wiki with a permission system, which means user registrations and so on. And installation is just horrible - sorry, but it is. If Tavi could be made to plug in to an existing system which took care of the users, and also provided one-click installation it would be a really great Wiki. I know this because I have done it.

WetWiki is an integration of Tavi with the [e107] CMS: the first public beta version is [here].


Auto-create free links to existing pages

Normally, Tavi only automatically assigns links if you use WordsSmashedTogether; if you create free links, then EVERY instance of that link must be explicitly declared. It would be nice if, once a non-WordsSmashedTogether page has been created, the Wiki could automatically create links.

For example, if the page "free links" already exists, then typing it in a page would result in the Wiki automatically linking it to "free links". The same could be done for single-word pages. The only problem would be page names which are subsets of other page names, such as "PHP", "Code", "PHP Code", "PHP Code Standards", etc.

Even worse, if you had pages named a b and b c and in a new page it reads a b c, which page would you link to? Apart from that, it would be an expensive procedure to compare every word on a page to a list of all known pages.

"dynamic wiki pages"

It would be nice to use wiki instead of HTML to generate simple pages on the fly because it's simpler and the resulting scripts will be less cluttered. Also it would be great to be able to use a template system (like Savant, Smarty etc) with the wiki language instead of HTML and allowing the users to edit the templates even for "dynamic wiki pages". What do you think about? It seems no wiki implementation has these features yet.

As a dynamic web page developer that would make my life easier and provide users with a simple way to edit the static parts of dynamic web pages, without any risk of breaking my PHP code. Antonio Bonifati user=ant mailhost=venus.deis.unical.it

ppp

Where's the wiki in that? I guess you have to rip the HTML rendering part from Tavi and somehow force it into the template system.

Comment Pages

Having a place for discussion to happen would certainly ease the clutter of pages, making them less confusing, less like a bulletin board and easier to maintain. For example on this wiki it is very difficult to separate what is valid documentation and what is just commentary. The admins of this site, or the public even if you like could keep the pages of documentation "clean" with the latest working Patches on the main page and all speculation and discussion happening in the comments.


Math rendering

It would be nice to have embedded math rendering from a readable, perhaps LaTeX-like, syntax to HTML, MathML or (cached) image files. One of the existing systems should be integrated. There are approaches as different as [Texvc], [fed geo] (non-GPL), [aamath] or [ACSIIMathML] .


create-db.pl

I added an 'IF NOT EXISTS' to each create line to make it possible to run create-db.pl repeatedly without getting errors.