summaryrefslogtreecommitdiff
path: root/doc/bugs/nested_raw_included_inlines.mdwn
blob: 92ea4c4ef412f6efd2d8a023e6747c61cede3667 (plain)

I have the following structure:

page0

# Page 0
\[[!inline raw="yes" pages="page1"]]

page1

# Page 1
\[[!inline pages="page2"]]

page2

# Page 2
test

In this situation, a change in page 2 will trigger a rebuild of page1 but not of page0.

refreshing wiki..
scanning page2.mdwn
rendering page2.mdwn
rendering page1.mdwn, which depends on page2
done

In my real world situation, page1 is actually listing all pages that match a certain tag and page0 is the home page. Whenever a page got tagged, it will appear on page1 but not on page0.

Am I missing something? Is this a bug or Ikiwiki not supposed to support this use case?

Perhaps the inline plugin isn't being clever enough about dependencies - strictly speaking, when a page is inlined with full content, the inlining page should probably inherit all the inlined page's dependencies. That might be prohibitively slow in practise due to the way IkiWiki currently merges pagespecs, though - maybe the patches I suggested for [[separating_and_uniquifying_pagespecs|todo/should_optimise_pagespecs]] would help? --[[smcv]]

That, or something seems to have helped in the meantime... Actually, I think it was the [[transitive_dependencies]] support that did it, though smcv's pagespec stuff was also a crucial improvement.

Anyhoo:

joey@gnu:~/tmp>touch testcase/page2.mdwn 
joey@gnu:~/tmp>ikiwiki -v testcase html 
refreshing wiki..
scanning page2.mdwn
building page2.mdwn
building page1.mdwn, which depends on page2
building page0.mdwn, which depends on page1
done

I happily think this is [[done]] --[[Joey]]