This is a static dump of issues in the old "Flyspray" bugtracker for DokuWiki. Bugs and feature requests
are now tracked at the issue tracker at Github.
This task was never closed in our old bug tracker.
Feel free to open a new task at Github if you feel this is still relevant.
FS#2611 Renderer cache is not invalidated when pages are created that would be preferred as link target
When a link points to a namespace using the [[namespace:]]-syntax, resolve_pageid() tries to be clever and the link also points to namespace, when [[namespace:start]] doesn't exist. However when you create [[namespace:start]] afterwards, the link would point to namespace:start. The cache logic checks just if namespace still exists as it doesn't know that the actual link target was namespace: and thus the cache isn't invalidated. The same problem can occur with plural/non-plural pages with autoplural on. My suggestion for fixing this is to store the actual link text together with the result of resolve_pageid in addition to the current metadata. Then in the cache check we could call resolve_pageid for all these link texts and compare them to the calculated value. We could improve this by not storing the information if resolve_pageid didn't modify the link, resolve_pageid could provide an additional output parameter in order to get this information. The check also doesn't need to be executed if the purgefile is unchanged.
I think its actually wrong that a link to a namespace shows as existing when there isn't a namespace page. I'm not sure if that still leaves a problem when the page parent:child:start is created when a parent:child page already exists.