Hi Tobi,
Sorry for the latency, I needed to read your explications about the
architecture several times, and yet I do not fully understand everything.
Some thoughts though:
I would rather like footnotes to be macros than tiddlers. On the one
hand something tells me that it is smaller and reduces the number of
total tiddlers. On the other hand I would like a footnote to disappear
when its anchor is deleted, and not to be accidentally deleted when
cleaning up. I wonder whether a unique id could change something about this.
The question I have is how could one search for the content of a macro
in wikitext when the searching macro would have to use the same strings
as the pattern we look for.
Like <<collect filter="[list[$:/storyList]]" start=`<<ref "` end=`"`>>
Yours Jan
Am 31.08.2016 um 07:34 schrieb Tobias Beer:
Hi Jan
To parseTreeNodes sounds a little chinese for me...but I think I
understand.
Yes, it takes some getting used to terminology. Think of it like that:
You have wikitext and that is parsed by the TiddlyWiki core into a
parseTree and then a widget tree subsequently constructed from that,
which in turn eventually generates DOM elements for the browser to
display, but not necessarily.
Since TiddlyWiki does away with the focus on manipulating DOM elements
directly, operating on a widgets architecture, there is a bit of a
gap. With TiddlyWiki classic it was easy to do DOM traversal and
manipulation with jQuery and so we could do all kinds of fancy stuff
after the fact, meaning, after TiddlyWiki did its default thing with
the wikitext.
However, with the new architecture, we're a bit lacking on a general
interface for developers to traverse the widget-tree-representation of
your wiki text, e.g. so as to say "find that list and give me its list
elements". Such a traversal may not even be desirable owed to the
transient, stateless nature of widgets... which doesn't mean that they
do not actually have a state, but that they can be trashed and
recreated at any given moment... so if you have some other output that
would depend on the current widget representation, there's a chance it
would not notice that the thing it references and relies on to do
further stuff actually changed from the first time it was created,
e.g. that footnote index.
So, with TiddlyWiki classic there were HTML / DOM elements like ULs
and LIs (which we still have, of course) for which we could use simple
jQuery selectors to address them. However, now we would need some
simplistic equivalent to address the underlying list widget, so as to
be able to then do magick with a possibly much safer and much more
powerful encapsulation in the form of a widget, that provides well
defined interfaces for actually handling it, e.g. when to refresh or
recompute the state of that widget, etc...
If it is what Ithink it would put us all a big deal forward and
could be the basis for many things I try to build.
- a filter collecting Footnotes
- a way of transcluding/navigating to parts of Tiddlers
... and thus new possibilities to present information stored in
TWs for example in Slideshows et cetera
So, that's the thing: you would need to be able to tell the TiddlyWiki
core:
* that right there is my "tiddler" in the widget tree
* and in that thing being the "tiddler" rendered from that wikitext,
go find elements matching this or that pattern, e.g. all list
widget where some attribute is such and such
* eventually return the corresponding widgets so that I can do fancy
stuff based on what I'm given, e.g. with the list items
...presuming I know all about list widgets and how to get from the
list itself to the items
However, one core paradigm is that widgets are transient things by
nature, especially their representation in the DOM. So, in general the
philosophy would be to always work try and with the underlying
wikitext first. And if that proves difficult, chances are you simply
haven't sliced and diced your wikitext just enough for you to be able
to address every single chunk of concern separately.
To conclude with a much more practical example, let me put it this way:
if you turned your footnotes into actual tiddlers, e.g. as
$:/fn/the related tiddler/foo
$:/fn/the related tiddler/bar
and then retrieved it as:
<<fn foo>>
in the context of *the related tiddler*, then you could do all kinds
of magick with those footnotes ...and all that would be missing is
some simplistic plugin that, instead of using some markup in the
tiddler, would go create those "under-the-hood"-related system
tiddlers being the footnotes... which it would be most trivial to
later on list with whatever eye-candy you fancy most.
Based on a given list of chapter tiddlers being rendered each with
their individual, related footnotes tiddlers you could as well easily
generate one big list of footnotes. All you need is for your footnotes
to be actual tiddlers. Hence system tiddlers since you may not
actually want them to be searchable on their own.
However, you could easily run into problems with the above approach if
you ever chose to rename those titles. So, one crucial missing piece
to safely model stuff like this, is that eventually TiddlyWiki will
bring core support for every single (non-system) tiddler to have an
auto-generated unique id, so it would be:
$:/some-unique-id-12345/foo
$:/another-uniqueid-54321/bar
With the eventual tiddler being:
title: some related tiddler
id: some-unique-id-12345
Refer to <<fn foo>>.
Am I making sense?
Best wishes,
Tobias.
--
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 tiddlywiki+unsubscr...@googlegroups.com
<mailto:tiddlywiki+unsubscr...@googlegroups.com>.
To post to this group, send email to tiddlywiki@googlegroups.com
<mailto:tiddlywiki@googlegroups.com>.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/e7f95d27-4dcc-4fab-bdce-eb968c8c07cf%40googlegroups.com
<https://groups.google.com/d/msgid/tiddlywiki/e7f95d27-4dcc-4fab-bdce-eb968c8c07cf%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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 tiddlywiki+unsubscr...@googlegroups.com.
To post to this group, send email to tiddlywiki@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/57D3259E.7020707%40googlemail.com.
For more options, visit https://groups.google.com/d/optout.