Contents
Problem
The structure of a wiki can get messy over months and years. Do the navigation and structure features of MoinMoin satisfy the big task of keeping you track about the overview your wiki?
There are numerous macros which will ease this task. But in my opinion at the moment MoinMoin offers no feature which will give you a good overall overview over the site. Thus there is no possibility to have everything in the eye at once, also administrating a wiki can get a challenge.
Solution: Sitemaps
What MoinMoin really needs in my opinion is a good sitemap feature where you can see structures in a list or better: in a graphical way.
Personally I would prefer seeing a GlobalSiteMap action which creates a freemand file and shows that in a freemind viewer. You could see page structures, how pages reference each other and so on. Also you could directly go to a page by clicking the freemind bubble for that page.
The greatest thing would be if you could change the structure directly in the freemind viewer. You could drag and drop pages to different trees and after saving it, MoinMoin changes the structure in the background, moves pages, renames them or deletes them. But the freemind viewers lacks of an edit feature.
News
2009-10-23:
Look at MacroMarket/FreemindSitemap for the implementation of this feature request.
2009-09-30:
FreemindSitemap now works with version 1.8 also: FreemindSitemap_action_for_moin_1.8.py and FreemindSitemap_macro_for_moin_1.8.py. Don't forget to rename both files to FreemindSitemap.py after placing them in the macro / action folders.
each page node in the mind map now has a link to its wiki page
To do: The Freemind Flash browser requires a html link to the mm file we create with the action FreemindSitemap. Therefore I create some kind of temporary file with a unique hash name in the cache directory under the folder "freemindflashbrowser" in your "htdocs" folder. Old temporary files should be automatically deleted from time to time. I have to program some time diff code for that before.
2009-09-11:
Currently it works in MoinMoin version 1.9 (http://hg.moinmo.in/moin/1.9) only. Version 1.8.4 needs a small adjustment in the handling of requests. I'll do that in the next days.
2009-09-10:
First version ready for download.
Downloads
Don't forget to rename both the action and the macro files from FreemindSitemap_xxx.py to FreemindSitemap.py
Install
download and install extension FreemindSitemap:
copy FreemindSitemap_action_xxx.py into your plugin/action folder and rename it to "FreemindSitemap.py"
copy FreemindSitemap_macro_xx into your plugin/macro folder and rename it to "FreemindSitemap.py"
- In the applets folder in your htdocs static folder (e.g. /moin_static190/applets) create two folders:
"freemindflashbrowser" (url is e.gx.py.: "/moin_static190/applets/freemindflashbrowser")
"freemindflashbrowser/freemindCache" (url is e.g.: "/moin_static190/applets/freemindflashbrowser/freemindCache")
download the freemind flash browser from http://freemind.sourceforge.net/wiki/index.php/Flash_browser (50kB zip file)
unzip all files in this packages into the folder "freemindflashbrowser"
set this configuration variables in your wikiconfig.py
(please adjust the pathes like they are on your system !!!)
freemind_flash_browser_url = '/moin_static190/applets/freemindflashbrowser' freemind_css_url = '/moin_static190/applets/freemindflashbrowser/flashfreemind.css' freemind_cache_url = '/moin_static190/applets/freemindflashbrowser/freemindCache' freemind_cache_dir = '/home/josef/Development/MoinMoin/1.9/MoinMoin/web/static/htdocs/applets/freemindflashbrowser/freemindCache'
Adust the xxx in /moin_staticxxx to your version of MoinMoin. E.g.: /moin_static185 for MoinMoin version 1.8.5
The freemind_cache_dir is located in your htdocs folder below the python26 install path
enable embedding of swf files in your wikiconfig.py
mimetypes_embed = ['application/x-shockwave-flash', ..., ]
- add this macro on your wiki page
<<FreemindSitemap()>>
- If you want to adjust the width and height of the flash application try this:
<<FreemindSitemap(width)>>
<<FreemindSitemap(width,height)>>
Proposal
What should be done to get this freemind sitemap feature working?
create a new action FreemindSitemap (which is based on the sitemap action) which returns the sitemap in a freemind format. For the moment system pages and pages under the underlay directory aren't scanned.
each node has the title of a page
- each node will contain a wiki link to that page
- each node shows a "last modified" text. The darker the color, the newer the page
- page links could be shown in the sitemap also. But in my opinion it makes sense only for the current page.
modify the macro FreeMindFlashBrowser. It will then do this...
call the action FreemindSitemap to geht the sitemap in freemind format
- put the data in a file with the extension ".mm" and store it ... in the htdocs directory ???
- the applet wants to have a mm file. where should we store this mm file?
- my approach for now is...
create a hash number from the current timedate and the users ip address
use this number (+ .mm) as filename for a temporary file
store the freemind data in in a cache folder under the htdocs folder called ".../htdocs/freemindCache"
- delete temporary mm files which are older than xx minutes/hours
call the Flash freemind browser with this file and include the viewer on the page
if possible the page which includes the new FreeMindFlashBrowser macro will be selected in the viewer automatically
Ideas
I also love the idea to change the structure of a wiki through mind maps We could create some kind of XMLRPC script out of the mm files and remote control the wiki then.
Reference
Look at the www page of wikimindmap to see how MoinMoin could handle sitemaps in the future.
Discussion
Do you know a flash free tool? Or can it save in svg too?