Thanks, that clarifies things a lot.
I'm new to the Wiki world, such as TiddlyWiki etc.
I keep forgetting that a flat namespace is the norm.
Vim is a text editor that is now burned into my brain
and muscle memory. The functionality that it provides
greatly increases my productivity as a programmer
and I'd like to leverage it for documentation.
Use case 1:
General documentation:
If the text contains something like
"blah blah files/foo.txt blah [[bar stuff|files/bar.txt]] blah"
then Vim allows you to position the cursor over any
phrase and open a file (goto) by that name with one keystroke
(or mouse click combination), i.e. Vim can treat essentially
any phrase as a hyper link, without any markup (which
is the simplest markup of all).
Vim can be configured
to do some simple name "mangling" such as ignore
certain leading and trailing characters (such as [, ], |).
Mangling " " (blank) into "_" is problematic for naked links,
i.e. it requires markup to delimit link bounds.
Mangling "/" into "_" is non-intuitive for me at least,
because my mental model is that of a path.
Using directories for a namespace is more intuitive.
Vim also supports "syntax highlight".
Its normally used to highlight source code language elements,
i.e. keywords in one color, strings in another, etc.
Wiki markup can be highlighted using syntax rules,
i.e. ''bold'', //italics//, headings, links, tables, etc.
When used together, "goto" file and markup highlights
provide a useful approximation to the Wiki experience.
This approximation helps when developing content,
i.e. when bouncing between pages to get it right.
While Vim is useful, its not polished enough for
presentation (like a browser), nor web accessible.
Use case 2:
Program documentation:
Wiki pages can be used for high level documentation
of source code (C, Fortran, ...). When used together,
Vim and ctags allow the pages to magically link
to the corresponding source code, i.e. if the page
mentions a macro or function name, one keystroke
will take you directly to its definition via the "ctags".
When editing C and Fortran source code, comments
can reference Wiki pages for general information.
Vim functionality can be used to follow these "links"
and "close the loop", without leaving the Vim world.
Use case 3:
Source code markup:
Within source code comments, Wiki style highlights
can be applied by Vim, i.e. ''bold'', //italics//, tables, etc.
These highlights can be limited to comments,
i.e. they don't mangle language syntax highlights.
Use case 4:
Doxygen-like functionality (new project idea).
Documentation within the source code could be extracted
and integrated with Wiki pages for presentation.
Comments and pages could share much of the same
markup conventions, which reduces the overall learning
curve and brain-cells load.
Back End Frustration:
Vim provides useful leverage, but only if the Wiki backend
is compatible. Wiki pages must be stored in text files,
not data bases.
Page revision implementation is tricky.
Some Wikis implement it with a directory and 1, 2, 3 names,
i.e. foo/1 first version, foo/2 for second.
This scheme makes it difficult to use Vim text links,
i.e. when the foo page is updated from version 1 to 2,
all simple-minded text links to foo/1 are broken.
Source repositories (subversion, etc.) can provide a more
comprehensive solution than simple 1, 2, 3-like schemes.
Repository versions can be integrated for pages and source
code, where as 1, 2, 3 schemes are not easily synchronized.
New project idea:
Glossary scheme.
Leverage the ctags concept for Wikis?
For example, create a ctags-like file for known "anchors"
within a Wiki for all pages. The anchors might be
specified with markup, i.e. the "GoodTimes" page has
<<anchor "GoodTime"|"good times"|"for a good time">>
for a good time call me at xxx.
Any page that contains one of the phrases (without any
additional markup) is a potential link to "GoodTimes".
This glossary-like scheme might reduce overall markup,
because there are inherently more links than anchors.
Hover-like mechanisms might provide a visual clue as
to which phrases in a page have a glossary entry.
Hovers might also provide disambiguation functionality,
i.e. follow the nearest phrase(s) to the "FastFood"
"Mature" or the "SelfHelp" section.
More Vim functionality:
Utl (Universal Text Links):
Since I live in Vim, I use the Utl plugin.
It provides a richer version of "goto file".
For example, "goto"
http://foo.com/here will open the
browser and load the web page.
End-of-brain-dump...
I don't know enough about the wiki-web-browser world
to know if these ideas make sense, much less how
to implement them... perhaps somebody else can
follow up.
RLS
On Sep 26, 8:49 am, Frank McIngvale <
fmcingv...@gmail.com> wrote: