Feature request: [child.attribute: value]

6 views
Skip to first unread message

moriarty4

unread,
Sep 7, 2009, 1:12:33 AM9/7/09
to wikidpad-devel
Wikidpad is fantastic. Its ease of programmability/extensability is
starting to be reminiscent of a more user-friendly emacs...

On to my question. The global.* prefix to define wiki-wide attributes
and settings is very useful. Have you thought of a child.* prefix that
applies its settings to the 'children' of the current page, overriding
any global.* settings that are in force.

I realise this is a bit complicated as a wiki is not a tree, so a page
could have several parents with conflicting child.* settings. But most
wikis do have regions within them that are organised in a tree-like
manner, where this facility would be useful. One way of getting around
the difficulty of confllicting parents is by a rule that says the
"nearest" parent (fewest links away) wins.

Alternatively/additionally, settings that are non-exclusive could be
multiply inherited. So if parent 1 says [child.tag: foo] and parent 2
says [child.tag: bar], the page inherits both tags.

Michael Butscher

unread,
Oct 10, 2009, 5:58:24 AM10/10/09
to wikidpa...@googlegroups.com
moriarty4 wrote:
> Wikidpad is fantastic. Its ease of programmability/extensability is
> starting to be reminiscent of a more user-friendly emacs...

Thank you.

> On to my question. The global.* prefix to define wiki-wide attributes
> and settings is very useful. Have you thought of a child.* prefix that
> applies its settings to the 'children' of the current page, overriding
> any global.* settings that are in force.

This would be complicated (in addition to the conflict resolution) if
grandparents/grandchildren would be taken into account.

To find all child.* attributes which may affect a page it would be
necessary to find and look at all parents, grandparents, ... of this
page. And this must be done for all pages.

The information may be cached, but this cache must then be invalidated
properly if a link or a child.* attribute on a page is added or removed
so the cache must be either thrown away entirely or parts of it must be
selected for deletion very carefully.

Michael

Reply all
Reply to author
Forward
0 new messages