I'm dreaming of extending the TaviSubPages idea with the use of namespace. This is giving me some headache, and I need input. Lets say we have the following set of pages:
- TaviDocumentation
- BasicUse
- MakingTables
- UsingMacros using [level=0]
- TitleSearch using [level=1]
- BasicExample using [level=2]
- MakingBookIndexes
- RefList
Showing a page hierarchy of maximum 4 levels. In a future version it should be possible to introduce namespace into this structure. Thusly if introducing a namespace mapping to the TaviDocumentation/UsingMacros level, a reference to TitleSearch would go to the listed page, and TitleSearch/BasicExample likewise. The problem arises when, within UsingMacros, one wants to reference either TaviDocumentation or some page like BasicUse. How does one make this look nice...
The example levels given in the listing, are the levels the subpages would need to map them to the same name spaces, so that a reference within the name space would be equal, no matter what syntax is used.
Alt 1: Changing namespace changes ordinary WikiNames
When changing the name space the ordinary WikiName would refer according to namespace. If on UsingMacros the SomeName would refer to:
- Default
- SomeName equals ~/SomeName
- Level=0 (current)
- SomeName equals ~/TaviDocumentation/UsingMacros/SomeName
- Level=1 (1 above current)
- SomeName equals ~/TaviDocumentation/SomeName
This would raise the need of how to make references out of the namespace, and this could be done by:
- /MakingTables
- Refers to a neighbouring page (As of today)
- //TitleSearch
- Refers to a child page, or subpage
- ~/TaviDocumentation
- Refers to the all-time root/home of pages
- /~
- Refers to current namespace home page (i.e. if Level=0 on UsingMacros, it would refer to UsingMacros)
Could this scheme work? Will it be intuitively enough? Should we add some visual guides elsewhere on the page to note that namespacing occurs? Which syntax to use to set the namespace, i.e. %%level=0%%?
Alt 2: Using ~ to denote namespace
Another solution could be to use the ~ to denote 'current' namespace, so that ~/TitleSearch would be meaningful. This would allow SomeName to refer to the global at all times, and namespacing only to occur when the ~-character was used. And then it could be an option to display leading ~/ or not...
Still when editing the UsingMacros, with [level=0] namespace, the following would be true:
- ~/TitleSearch or //TitleSearch
- Equals TaviDocumentation/UsingMacros/TitleSearch
- ~/TitleSearch/BasicExample
- Equals TaviDocumentation/UsingMacros/TitleSearch
- TaviDocumentation
- Equals TaviDocumentation
- /MakingTables
- Equals TaviDocumentation/MakingTables
- ~/
- Equals UsingMacros, and should be display as UsingMacros
Comments
- EvenHolen: Alt 1 could work, but would maybe be hard to read and visually not pleasing. Alt 2 would be easier on the eye, whilst still maintaining some of the same functionality. I'm tending towards Alt 2, but I'm not convinced that this still is the best solution. A good thing about Alt 2, is that is preserves the original namespace so that WikiNames keeps their original meaning!
- EvenHolen: Note that none of these alternatives allows to reference into another namespace. This functionality is thought to be preserved by using InterWiki or ordinary WikiNames.
- EvenHolen: Would Alt 2 break hard when used in conjunction with unix home directories? Or would it work since we demand for WikiWords to follow?
- EvenHolen: Syntax for setting options? Maybe one could introduce a new macro? Like [[? level=0]] This wouldn't clog up the other syntax characters, and are easily implemented.
- There is a simple solution to direct to the root: use InterWiki.
Since we can create any InterWiki to link to anywhere, we can also link to Tavi's root path. Thus you can use like TaviRoot?:bala to the root without creating any other symbols. Your opinion? -- MiGi
- Actually I'm looking forward to namespace solving multi-language issue. With namespace there should be an easy way to jump to the parallel page of different languages. For example, TaviPatches/LocalImages in French to TaviPatches/LocalImages in Chinese. Moreover, subpages of each language direct to different pages, but written in the same way. So in lang_fr namespace you link to FrWikkiTikkiTavi by writing WikkiTikkiTavi, instead of FrWikkiTikkiTavi -- MiGi