====== TODO ======
Also have a look at [[bugs]] and [[.brainstorm|brainstorm]]

===== Objectives =====
* WYSIWYG editing
* Rich hyper-Linking
* Desktop integration
* Multiple backends
* Versioning support

===== Plans =====
* [[.VersionControl|VersionControl]]
* [[.Changes|Changes]]
* [[.Searching|Searching]]
* [[.PluginInterface|PluginInterface]]
* [[.Linking|Linking]]
* [[.MindMap|MindMap]]
* [[.ImageMap|ImageMap]]
* [[.SketchPad|SketchPad]]
* [[.AlbumPlugin|AlbumPlugin]]
* [[.TagsPlugin|TagsPlugin]]
* [[TagsCategoriesSelections]]
* [[.Formats|Formats]]
* [[.RecentChanges|RecentChanges]]

===== Tasks =====

* Insensitive on focus fix
	* need a dispatcher that checks focus for all actions defined in pageview

* Printing support - bug #206168
	* Needs code to render text + images on cairo context

* [[.Tests|Tests]] - __expand test coverage !__
* [[.GUI improvements|GUI improvements]]
* [[.Template|Template]]
* [[.Export|Export]]
* [[.Caching|Caching]]
* [[.Headers|Headers]]

-------

* BUG: in undo links can be broken - see escaped test case in test 70
* BUG: links that point to the same target should be merged if they touch each other - prevents "broken" link text - see above item
* BUG: spaces in repository names conflict with interwiki link syntax
* ~~BUG: can not use Gtk2::StatusIcon !?~~

* Fix hack for date template in Store
	* fix date template for month / year pages
* Fix hack for date namespace in InsertDate dialog

**Website needs:**
* embed some html to set e.g. alignment
* need to be able to set links on images

* move sub-tree
	* move update logic from GUI.pm to ZIm.pm
	* move_pages(namespace => namespace)
	* use glob in update links
	* Make sure that when moving a subtree also the corresponding document root subtree is moved

* signals in GUI for page_renamed and page_deleted belong in Zim.pm
	* update history on on these events (and update pathbar)

* Accept image data from clipboard - attach as image
* How about a "copy as.." menuitem for mediawiki, dokuwiki etc. - only export is needed

* Interface
	* add profile drop down to properties
	* Make trayicon show icons for open notebooks ?
	* make open notebook dialog show paths and show open notebooks in bold, optionally include icons as well
	* Better feedback from autosave and ^S for "paranoid" users
	* Set sensitivity for next/prev/child when applicable
	* optional bottom pane with iconview showing attachments may be nice

* Refactor Utils
	* see if we can hide url encoding logic in Zim::FS::URI object
	* set default class for files in dir, not in store !
	* automatic DOS to Unix line-ending conversion in IO object ?
	* maybe store tmp files under NOTEBOOK/.zim/tmp - gives us better control

* Add test for links parsing logic in copy media when exporting
	* loop trough Html to see if paths remain OK
	* both with and without doc_root
	* rel path, abs path and uri
	* both for images and file links
* Expand test coverage for Zim.pm - copy tests that are now only done for Files
* Test coverage for Formats/Wiki and Formats/Html

* For drag 'n drop and InsertImage should give choice between link / copy / move
	* setting in prefs for copy / move / link / ask
	* For InsertImage put a radio box in the file browse dialog ?

* Dialog to import notes from tomboy, see tzim.py for example code
	* Maybe also add Newton import ?
	* Ans also plain text and strip html ?
	* Import from gjots - but also support read/write gjots (?)

* Icons
	* Check the [[http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html|Freedesktop spec]] - provide 48x48, 64x64 and svg
	* Install stock using xdg-icon-resource ? 
	* Draw new icon for text/x-zim-notebook

* More keybindings to control email-style quoting. E.g.:

	"> ..."  TAB  ">> ..."
	">> ..." SHIFT-TAB "> ..."

* Module for tar.gz access should consider zip file a read-only dir
	* probably cache file index
	* completely transparent file access for other modules	

* Make undo grouping letters into words (see sourceview code for example)
* Make it possible to use more characters in page names, use url encoding
* Format that calls external python script for [[ReST]] support - see mail liraz
* Have a look at explicit ordering in the side pane

* Add support for hierarchical trees of tasks to TODOList

* Plugins
	* Gnuplot plugin - similar to latex equation plugin and proposed graphviz plugin
	*  Backend for ccrypt ?
	* Plugin that can dowload internet pages and images
		* use external (wget) program or libwww ?
		* hook on drag n drop / insert link signals
		* either only download and insert images or also cache complete pages

* Refactor PageView
	* move FindReplaceDialog to namespace below PageView
		* We can shell out much more dialogs from [[PageView]] to their own module files.
		* Use bare minimal POD
	* how bout moving stuff from PageView to HyperTextEditor ?

* Release Gtk2::Ex::* modules to CPAN
	* grep for "zim" to make sure all apis are fixed
