Difference between revisions of "WikiDB/Roadmap"

From TestWiki
Jump to: navigation, search
(Administration: preview not working)
(Misc: adding <nowiki> tag to Special:UnusedTables that doesn't exist for now)
Line 51: Line 51:
  
 
* References to tables in table="..." attributes should follow redirects.  This allows tables to be moved without screwing everything up!
 
* References to tables in table="..." attributes should follow redirects.  This allows tables to be moved without screwing everything up!
* [[Special:UnusedTables]] to list tables that don't have any data (opposite of [[Special:UndefinedTables]]).
+
* <nowiki>[[Special:UnusedTables]]</nowiki> to list tables that don't have any data (opposite of [[Special:UndefinedTables]]).

Revision as of 17:20, 3 October 2007

This is an (incomplete) list of features that I plan to add before v1.

The bug list has been moved to WikiDB/Bugs. Please report bugs there.

Administration

  • Update tables when page is moved.
  • Update tables when page is deleted.
  • Update tables when page is undeleted.
  • (check that rollbacks work)
  • 'What links here' should show templates that are included via data tags.
  • Show table definitions correctly when using 'preview' (currently displays as if normal wiki text).

Syntax

  • Better data syntax: Need to allow multiple rows in a single definition.
    • Also, data definitions in a DB namespace shouldn't require the 'table' attribute (default to current).
  • Repeat tag - some things to iron out (see below)
  • Field names need to be limited to 255 chars (DB limit)
  • Field names need to have leading underscores removed (Reserved for special uses)
  • Provide a mechanism for 'pass-through' parameters to the <data> tag (i.e. parameters that are supplied to the template, but which don't get added to the table). Suggestion is to prefix the name with an exclamation mark. Alternatively, an underscore could be used, as this is already reserved in table definitions, and therefore is not allowed in data tags (though this is not enforced) - may kill two birds with one stone...

Repeat tag

Still quite a way to go on this, but here's where I'm up to:

Done

  • Basic sort/filter is implemented. Only limited filter options available, due to a parsing issue with MW/HTML.
  • Contents of repeat tag are repeated for each row with variables expanded (see below for limitations).

To Do

  • Tag Contents
    • Aliases are currently expanding correctly, but not in a foolproof manner (e.g. aliases that point to aliases are not handled - this is a general issue, I think)
    • Undefined fields - is their current handling OK? Currently they will be expanded if defined for the row, and left as they are if not. This might be the best behaviour, but perhaps not.
    • Cannot currently supply default values for empty fields. In any case (given the above point) default values for undefined fields must, by definition, be ignored (I think).
    • Cannot handle nested vars. Not a problem at the moment, but if default values are allowed, the default should be allowed to be an alternative variable (e.g. {{{ShortName}}} should be valid syntax).
    • Should strip blank lines at start and end. Maybe restrict to stripping 1 line only (so <repeat> need not be on the same line as the start of it's content). Should _not_ use trim(), as we need to allow for space at start of line (wiki <pre> syntax).
  • Filtering
    • Can't use > in attribute values, e.g. criteria="Field>Value", as it cripples parser. Need to decide how to specify criteria.
    • In general - how detailed can we get?
  • Other
    • Ability to have header/footer? Ideally you put your header before the repeat tag, and the footer afterwards, but tables are screwed up by this (though I might be able to fix that somehow). There may also be other situations that cause problems.

Code Tidying

  • Ensure all user-visible text uses the message cache.
  • Add profiling statements.
  • Move datatype handlers out of WikiDB class (into separate module).

Misc

  • References to tables in table="..." attributes should follow redirects. This allows tables to be moved without screwing everything up!
  • [[Special:UnusedTables]] to list tables that don't have any data (opposite of Special:UndefinedTables).