a wiki based on you folder structure
One of the difficulties people gets involved into in the digital age is //information organization// - see e.g. this discussion on Slashdot: [[http://ask.slashdot.org/story/10/10/24/1833233/How-Do-You-Manage-the-Information-In-Your-Life?from=rss]]
Yet the simpler - and overlooked - method is instantly available: the folder/directory structure on your disk (some important insights here: [[http://dougist.com/2009/08/file-system-infobase-manager/]] .
Along the years I optimized the hierarchy of the directories where everything I do (digitally) is stored.
Unfortunately, however, browsing a directory structure - even a well optimized one - can be frustrating, if you end up in some areas you forgot about.
What is really needed is a way to //document// your data, and navigate your data, browsing your digital life in a less frustrating way.
Data Management Systems (DMS) provide this, but are cumbersome, network&multiuser oriented. I am interested instead in //personal use//, although with currently available disks personal use can reach the size of many Gigabytes, with directories having even thousands of subfolders.
A perfect way to navigate along a hierarchy exists - and it is the Wiki (If you don't know what a wiki is, check here [[http://en.wikipedia.org/wiki/Wiki]] for info).
With a wiki you move along pages containing text, images, links to files, ... and hyperlinks to other pages: the perfect way to create a well-documented structure.
In particular, the personal wiki (which is defined as //a wiki maintained primarily for personal use. Personal wikis allow people to organize information on their desktop or mobile computing devices in a manner similar to community wikis//.)
Linux, OSX
Unpack in its own application directory.
Modify paths in config.py: inFolderdir, homedir, and quickjump.
Check helper applications in apptypes: these work for me, check if they work for you.
Check execute permissions are right, then run it with, as argument, the directory name where you want your wiki to reside (ideally, the top of your home directory)
This program is a personal wiki.
It is a graphical text editor used to maintain a collection of pages, whose content is created by the user, //but whose hierarchical structure is dictated by the directory structure.//
New pages can easily be added at the same level of the current page as new nodes
The important thing to mention now is that the pages are text files, thus allowing for transparent reading / modification / export outside the program.
Unlike most of personal wikis (and most markdown applications) editing and viewing are done in a single view mode.
Each page can contain basic formatting: header lines, bold, italic, underline, verbatim, strikethrough, highlight,
and images (imported by file or taken as snapshot with an internal command).
Advanced formatting is provided with the support of outlining capabilities: text sections under a given header ("chapters") can be opened/closed, it is possible to show just chapters up to a given depth, move them up/down, or change their depth.
Pages can be individually customized in their default properties: background, font, header and link colors, font type and size; thesesettings can be recursively applied to a whole subtree.
Hyperlinks can be inserted: to other pages, to webpages (by browser), to directories (by filebrowser) or to any generic document, which is opened by a predefined applications.
Additionally, a plugin is provided to insert directly LaTeX equations.
Page saving is performed automatically as soon as the user leaves the page, and encryption is optionally provided on a per-page basis.
At the top of the page a link is always present, allowing by clicking it to launch the filebrowser in the current directory.
At the bottom of the page, a list of children nodes is provided, allowing to visit them in turn: this provides the basic navigation mode. The user can provide different icons for the children nodes.
Each children node is color-coded with a timebox, whose color is based on the modify time, allowing to recognize which node is newer and which is older.
By right clicking on the timebox the time can be modified, or an icon for the children node can be set.
A file list window can be activated by a hotkey, where files in the current directory are listed and comments can be displayed. Comments can be added or deleted. Double-clicking on a file in the file list window, if the file extension is recognized, launches the associated application.
Navigation is further improved by the use of user-defineable quickjump buttons in the toolbar.
If the user moves folders around containing inFolder information, this information is preserved and it will be perfectly read by the program, when navigating to the new folder location. Of course links to the previous location from other pages become 'broken', so an utility is provided to find any broken links that are left around.
The linking of node to node creates in brief time a complex network:
You can perform a basic search in the current page, and you can also perform a very fast search on all your wiki pages. This search allows clauses are separated by <and>'s, can start with <not> and contain <or>'s</or></not></and>
Pages are stored in the directories themselves. A page is simply a plain textfile with wiki formatting.
At each directory where a page is added, a .inF file is created. This file is a compressed package (.tgz) containing the plain text page (or pages) for the current directory, and all the additional images linked by the node pages.
If the user requires it, the file can be encrypted if the //gpg// program is available. It encrypts the single file, but in so doing prevents the whole subtree being explored. All pages that require encryption under a common encrypted root share the same password.
If the user deletes all text from the page, the .inF file itself is deleted, thus preventing pollution of the directory structure
Pages can be printed/exported to html and pdf.
Formatting, links and images inserting, can also be accomplished directly by using the following syntax:
1) Headings are created by using an appropriate amount of "=" characters:
= = = = = = header1 = = = = = =
= = = = = header2 = = = = =
= = = = header3 = = = =
= = = header4 = = =
= = header5 = =
(no space between the "="'s, here it is used to avoid having it read as header)
2) Links to another page like this:
[[iconsets]] => links to page in current node namespace
[[iconsets:PNG]] => links to page in subdir of current node namespace
[[:magnetooptics:Investigations]] => links to page in homedir namespace
[[:excursions:memory:.inFolder.Ultima]] => links to page in homedir namespace
[[/0ale/excursions/memory/.inFolder.Ultima]] => links to additional node
[[/0ale/excursions/memory/memory palace poetry.pdf]] => links to a file for which a helper app is defined
[[file:///0ale/excursions/books/conversion/print A5 booklet.pdf]] => the same
[[http://www.google.com]] => links to a website
[[http://www.google.com]] => (without [[ ]]): the same
[[dir:///0ale/lib]] => opens filebrowser
for all the links, the syntax [[foo|bar]] links to "foo" but display "bar"
3) Markup, beginning and ending a region with marks:
bold, //italic//, underline, ''verbatim'', ~~strike through~~, ^^highlight^^
(To render a whole block as verbatim the first and last line of the block should contain 3 quotes and no other characters)
Markup is defined at the level of the line. If a number of lines are bolded, at ^ and $, for each line, you have
subscript: Fe_{79}Si and superscript: x^{2}=-1
4) Images:
{{.inFolder.n.gif}}
The filename for an image can either be absolute or relative. If relative it is looked for in the same directory
as where the text source of the current page is.
options follow the image filename with: ?width=xxx, ?height=xxx, ?type=s (where s=equation, None, gnuplot)
'''
The main page describing a directory is named .inFolder
If additional nodes are created in that subspace with the 'add node' command, they are named .inFolder.<name>_
Images are named .inFolder..gif
Equations are named .inFolder.eq.gif</name>
//.inF file content://
.inFolder (required): the page text
.inFolder.name_1 ... .inFolder.name_n (optional): additional nodes
.infolder.1.gif ... .inFolder.n.gif (optional): images
.inFolder.eq1.gif ... .inFolder.eqn.gif (optional): equations
.inFolder.eq1.tex ... .inFolder.eqn.tex (optional): ... and their latex source
filescomments.txt (optional): comments on files
pageproperties.cfg (optional): format properties of current page
From the Sourceforge page [[http://sourceforge.net/projects/infolder/]]
//ALSO SUGGESTED://
2011 Alessandro Magni magni@inrim.it
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE