====== TODO ======
Also have a look at [[:zim:bugs|bugs]]

===== Wanted =====
* Somebody to build and maintain a Windows executable
* Better (standards compliant) HTML templates

===== Questions =====
* How are selections supposed to behave ?
	* http://bugzilla.gnome.org/show_bug.cgi?id=333514
* How can calendaring be improved ?
	* use a single page to list important dates ?
* More heuristic version of follow_link
	*  only follow when page doesn't exist ?
	*  don't follow external links directly ?

===== Objectives =====
* WYSIWYG editing
	* toggle tags like bold/italic/...
	* more intelligent ^Z
* Hyper-Linking
	* automaticly update links on move
	* internal linking like [[#linking|this]] ?
* Desktop integration
	* use desktop files for repository config ?
		* alternatively define our own mimetype
	* drag 'n drop
* More formats
	* native (pod, kwiki, ...)
	* export (docbook, oo.org, ..)
* Versioning
	* cvs/svn/.. plugins
	* simple fallback ?

===== Tasks =====
* other wiki dialects
	* kwiki
	* dokuwiki
* have a look at "highlighting" all potential links (see patch in mail)
* "ignore list" for files to make co-exitence with CVS/Arch/.. easier
* highlight broken links
* Editing
	* make undo/redo remeber images and tags (ignore spell check tags)
	* Make text tags "moded"
	* Change ^E from "edit link" in "edit object properties"
	* interwiki logic to link to other zim repositories ?
	* trigger "parse_word" at , . ; " ' ) etc.
* add "traditional" mode for opening one file at a time
	* move history file from Zim.pm to Repository.pm
	* add "open file" to menu
	* no pane
	* global history in cache
	* Zim::Repository::File
* Code cleanup
	* Fix proper support for commandline switches
	* Form manager spec [name, type, test]
		* labels in layout spec (xml)
	* remove dependency between script and config
	* Parsetree nodes for items in a list
	* create the component base class
	* more action based api for gui objects
	* define a Zim::Template module
		* list of backlinks in templates
	* serialization for buffers in copy-paste / undo-redo stacks
	* More intelligent "insert image"
		* check directory logic
		* add copy/link option
		* filter files for acceptable mimetypes
	* Also use UIManager for the treeview context menu
* interface improvements
	* Style difference for non-existing links
	* Search dialog
		* namespace (string)
		* recursive (toggle)
		* case sensitive (toggle)
	* Drag-n'-drop move between namespaces in the index
		* ordered namespaces ?
			* Keybindings for next/previous in list ?
	* On move page, history should pass on undo stack to new name 
	* Auto-completion in "open page" dialog and similar dialogs
	* preferences dialog
		* split config file in "state" (.rw and .ro) and "preferences"
			* split ''%settings'' in ''%state'' and ''%config''
		* add per repository config
			* default file type
		* general config
			* tearoff menus
		* add "help" button that links right manual page
* More intelligent resolving of links (upward search)
* Html export
	* make output utf8
	* make output valid html-transitional
* Multiple formats in one tree
	* each repository has a default format
	* make page resolve independent of extension
	* at least support **pod** and **xml**
	* create Zim/Formats.pm as a hub to coordinate the formatters

====== Version 1.0 checklist ======
* Custom icons for calendar etc.
* full Drag-n-Drop support
	* external image to text => link/embed
	* external file to text => link
	* index item to text => link
	* text to index item => cut and append text to page
* Menu items
	* new page (^N) (also add this in tree context menu)
		* like "jump to" +template selection ?
	* open repository (^O)
	* save copy
	* properties (+ properties dialog ) ?
* Context menu items for index
	* "split" split page to namespace (each heading its own page)
	* "merge" include namespace content in a single page
	* "export" prompt export page/namespace
* Perldoc backend for help browser
* Release Gtk2::Ex::* modules to CPAN
	* Tag styles configurable (style sheet)
* Documentation
	* code documentation
		* parse tree documentation
		* [[zim:development:class_diagram|class diagram]]
	* user documentation
		* general explanation about the concepts behind the program
		* manual page for various interface parts
* Test scripts
	*  for parser
		*  can we do the full round trip through zim ?
	*  for filename lookup
		*  check Z:P:F->realname versus Z->pagename
		*  utf8 chars in filename
	* utf8 content

====== Version 2.0 ======
* Add a [[zim:devel:database|database]] with meta data, indexes, history etc.
	* SQLite fits the profile for default backend
	* Content stays in plain files !
* Complete plugin interface

====== Random thoughts ======
* A "backlinks index" macro that inlines a table (TreeView) in the page with backlinks sortable by name and modification date
* Detect when a page has changed while we are displaying it
* Export could warn about dead internal links
* Syntax to define meta fields in a page (keywords / tags / date due ...)
* Make folding lists, "in page" outlining
	* Combine this with the idea of index pages, all items automaticly link to pages below the outline page (but can be edited to link elsewhere)
* tools->word count
* make it possible to reorganise the toolbar
* plugin using gtksourceview for editing code
* Wiki code for sub-/super-script ?
* Can we make text in lists linewrap in a visually pleasing way ?
* Internal references (images, tables, footnotes, ...)
	* anonymous links ?
	* dynamic numbering
	* each referenced item should have a unique id
		* map id to table record
		* map id to new page
		* let formatter number these ids on export
	* footnotes could be displayed in seperate pane below normal text
		* or in seperate window
* Configure browser per protocol + default
* Printing support
	* needs gnome libs, maybe implement as a plugin ?
