Hi Tobias,
I agree that magictabs and cornell could and should share patterns and
paradigms. The difference could be more a question of themes and usecase
than a question of code.
After spending a lot of time trying different solutions for my own usecase,
my essential conclusions so far are the following:
1. *Types: *The relations are not only between tiddlers but also and
first about *types* of tiddlers: for instance, publications are related
to authors. Thus, we need a way to define types (since we can't use the
field type). And a same tiddler can belong to different types (an author is
also a person, a note can also be a comment).
- My solution in MagicTabs is to use system tags with the prefix
*$:/type/* like* $:/type/author, $:/type/book, $:/type/note*, etc.
- That way, it is easier to differentiate them from regular tags.
- I can hide them from view mode (with a custom ViewTemplate/tags)
- I can apply a different ViewTemplate for each tiddler type.
2. *Fields: *The semantic relations must be meaningful but general
enough to be applied to different types of tiddlers.
- So far, in MagicTabs, I use the following generic relations:
- *authors*: this is a list field since a book or a paper, a song
or a recipe, a plugin or a monument, can have several authors.
- *about*: a note, a comment, a quote, a book, etc., is *about*
something, it talks *about* something which can be (or not)
another tiddler. This is also a list field since a note can talk about
different things.
- *source*: the source of a quote is a publication, the source of
an image can be a webpage, the source of a character can be a novel,
etc.
- *parent*: this field is to create a generic hierarchy or
categorization different from authors and source. This is a list field.
- But specific relations can be necessary:
- *ingredients*: for cooking recipes
- *courses*: for students and teachers, resources, lessons.
3. *Lists:* Besides types and fields, we need to show the related
tiddlers through lists. And we need a mechanism to *relate lists to
types*.
- This is where I use the *bottom tabs*, which is a solution among
others. And the mechanism used by MagicTabs is similar to the
$:/tags/foo used by the core:
- Any tiddler tiddler tagged *$:/tabs/foo* will be displayed as a
bottom tab in all tiddlers tagged *$:/type/foo*.
- For instance, if we have tiddlers tagged *$:/type/ingredient*,
we can create a tab showing a list of recipes using those ingredients
with
a tiddler tagged *$:/tabs/ingredient* and the corresponding list
filter.
4. *Customization:* We have to separate contents (like filters in
tabs) and the way they are displayed. If this is done properly, then the
same semantic relations can be shown as bottom tabs, left-column contents
(Cornell), or any other way, applying a theme or another.
To me it feels like I want to dive into your code a little more before
> setting out to implement that "cornell stuff".
>
The core of MagicTabs, if you want to understand how it works, is:
- $:/plugins/amp/MagicTabs/ViewTemplate/TabsBar
<http://wikiphilo.tiddlyspot.com/#%24%3A%2Fplugins%2Famp%2FMagicTabs%2FViewTemplate%2FTabsBar>
- $:/plugins/amp/MagicTabs/macros/tabContents
<http://wikiphilo.tiddlyspot.com/#%24%3A%2Fplugins%2Famp%2FMagicTabs%2Fmacros%2FtabContents>
- $:/plugins/amp/MagicTabs/macros/tabCaption
<http://wikiphilo.tiddlyspot.com/#%24%3A%2Fplugins%2Famp%2FMagicTabs%2Fmacros%2FtabCaption>
- $:/plugins/amp/MagicTabs/macros/inputSlider
<http://wikiphilo.tiddlyspot.com/#%24%3A%2Fplugins%2Famp%2FMagicTabs%2Fmacros%2FinputSlider>
Best wishes,
Alberto
--
You received this message because you are subscribed to the Google Groups
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/tiddlywiki.
For more options, visit https://groups.google.com/d/optout.