This is the TODO and Wish List for rest2web. It includes things that need to be done as well as things that are only included because they could be done. They are not listed in any order of priority or even desirability. Obviously bug-fixes are the highest priority. If you have any suggestions for this list, or opinions as to the priority of items on this list, or wish to implement any of the ideas yourself, then please get in touch.
Some of the items have (?) at the end of them. This means we are not sure if it desirable to implement the suggestion at all. There is a constant tension between adding more flexibility (extra options) and keeping things simple. Your input is wanted - if it matters to you whether we do this or not then let us know.
For bug reports or feature requests you can use the Pythonutils Mailing List.
- The example translation file - links to the same pages in the other languages. Standard function to do it ?
- A default macro ? (smiley ?)
- Allow easy adding of user functions ? (like macros, currently doable through normal imports in templates)
- A standard set of macros that are always available ?
- markup format - could allow additional markups, like sextile and textile.
- description format - we might want to allow different markups for the description. (Currently reST only - could allow html easily)
- can we extract the page description from the reST format ? (as meta information)
- Use filename as default page title/link ? (where none is supplied)
- Allow for multiple 'tags' to be kept with a page (use them as the meta-keywords) - so your site needn't just be represented as a tree. Also build a data structure (probably XML) that can be used by a CGI script for dynamically searching for pages with tag combinations.
- Should we allow comments inline with values in the restindex ? (or even multiline comments ?) - this would require a 'proper parser'
- Should be a standard function to generate a table of links to the sections in a page, for use in the index page - which could have several pages in each section. See the example table in the test site.
- Should 'format' or 'encoding' be a default value, when specified in the index file ? (any others ?)
- At the moment you can only have sections you have declared in your restindex 'sectionlist'. Should you be able to assign pages to sections without having to declare them ? XXXXX check this is true
- Allow a way of specifying other files to be copied to the target directory ? (anything in the directory tree other than the source files ?)
- Develop the index generation stuff so that it can generate 'blue arrows' style Python documentation.
- redo the test in restprocessor.py - preferably so that it can be used to generate individual files or sections.
- Sitemap creation.
- Contents for a section, or for the whole site.
- Single index page for the whole site (sitemap plus indexes from within pages).
- Allow an ordering to be specified for pages in a section ?
- Cache template files as they are reused, and are currently reread each time. (a dictionary, keyed by filepath)
Following is a list of 'unresolved issues' with rest2web. They aren't necessarily all bugs, so they may not be fixed. It's probably worth being aware of them.
- Unfortunately, the guess_encoding function can recognise cp1252  as ISO-8859. In this case docutils can choke on some of the characters. We probably have to special case the cp1252 and ISO-8859 encodings - but I wonder if this problem applies to other encodings ?
- If no crumb is provided, the page-title is supposed to be used instead. Each page needs it's index page in it's list of crumbs (as the 'crumb before' it). In order to work out the title for the index page, we would need to render the body of the page. But to render the body of an index page, you need to render all the other pages first. This means index pages need crumbs. Either that or you can supply an explicit page-title value !
- You probably can't set a target that is outside the current directory tree. (test !) Allow for a way of specifying that the target is an absolute URL (if build is 'No')
- It would be nice for every page to have access to the whole structure of the site . This would allow a sidebar to have links to every page in every section. The only way of doing this is to generate the site in two passes. First pass create the structure. Second pass, render the pages with the pages having access to the index structure. This means parsing the restindex - which also extracts page contents. Unless we are going to parse the restindex twice we would end up with the entire contents in memory. Is this feasible ? (or worthwhile - would anyone use it ?) XXXX Note that because of the data structures we create - it's likely that currently the whole site is being kept in memory anyway.
- Currently a '.txt' file without a restindex won't be built. It's possible that all the defaults are what you want. Should we let a file without a restindex be processed ? (That means if you don't want a text file to be processed you must give it a restindex and set build and include to No - maybe make it an option ?).
- Macros have no access to the environment they are being rendered in. This means that they no nothing about the current page location and encoding. We could provide a 'globaldict' in the macros namespace and populate it with information like this. That would mean that the macros that access files (like include and colorize) could use paths relative to the current page, and the output could be encoded with the right encoding.
- It would be nice to make Firedrop a graphical frontend to rest2web. It would need to be able to handle trees of pages, instead of a list, and effectively have a 'build.ini' file per page (the restindex) rather than for the whole site.
- For a page that has 'include' set to 'No', the indexpage value is None. This is because the current page doesn't have an entry in the indextree structure. This could require some care if you use 'thispage' in your template. Is their some other sensible value it can have ? You can still use indextree without problem.
|||The default windows encoding.|
|||Currently through indextree, a site has access to the whole structure above the current page - but not the whole structure.|