X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/93351f1275d577aece40ac3fa6608047d4cbcca9..a8bff3fb13cdc129523bb1622753dcf73d185fc8:/doc/bugs/inline_page_not_updated_on_removal.mdwn?ds=sidebyside diff --git a/doc/bugs/inline_page_not_updated_on_removal.mdwn b/doc/bugs/inline_page_not_updated_on_removal.mdwn index 8374d77f3..7f5e49871 100644 --- a/doc/bugs/inline_page_not_updated_on_removal.mdwn +++ b/doc/bugs/inline_page_not_updated_on_removal.mdwn @@ -1,3 +1,32 @@ If a page inlines some other page (such as this page by the bugs page), and the page is removed (such as by this page being linked to bugs/done), the inlining page is not updated to remove it. + +This only happens if the page is removed from the inlined pagespec due to +a tag changing; the problem is that once the tag is changed, ikiwiki does +not know that the page used to match before. + +Another example would be a pagespec that allowed only matching new pages: + + newer(1 day) + +Obviously, the pages that matches are going to change, and again once they +do, ikiwiki will no longer know that they matched before, so it won't know +to remove them from a page that used that to inline them. + +To fix, seems I would need to record the actual list of pages that are +currently included on an inline page, and do a comparison to see if any +have changed. + +At first I thought, why not just add them to the dependencies +explicitly, but that failed because the dependencies GlobList failed to match +when a negated expression like "!tag(bugs/done)" is matched. It is, +however, doable with PageSpecs: + + (real deps here) or (list of all currently inlined pages here) + +However, it's not really clear to me how to _remove_ inlined pages from the +deps when they stop being inlined for whatever reason. So a separate list +would be better. + +So this is blocked by [[todo/plugin_data_storage]] I suppose.