summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-10-09conditional: use yesnoJoey Hess
2009-10-09progress: switch to new pagespec_match_listJoey Hess
2009-10-09linkmap: Use new pagespec_match_listJoey Hess
2009-10-09fix test to use new calling conventionJoey Hess
This test still fails several cases, since add_depends influence testing is currently commented out.
2009-10-09add pagespec/sorting to underlayJoey Hess
2009-10-09don't link to inline, not available when directives underlay is not enabledJoey Hess
2009-10-08typoJoey Hess
2009-10-08rename use_pagespec to pagespec_match_listJoey Hess
To avoid breaking plugins, also support the old pagespec_match_list calling convention, with a deprecation warning.
2009-10-08fix test broken by change to failing link() influenceJoey Hess
2009-10-08calendar: rework so it can use use_pagespecJoey Hess
This was tricky because of the caching, and because use_pagespec always adds a dependency. That would have made year calendars depend on the whole pagespec, which is overly broad. So I removed the caching, format_month, and in format_year just look at %pagesources to see if month pages are available. In format_month, I make it always call use_pagespec, so each month calendar gets the right dependency and any influcences added. This means a bit more work, but the added work is fairly minimal, and presence dependencies remove a *lot* of work it used to do. (100% untested!)
2009-10-08Yet another tweak to the formal definition. Much better this time.http://www.cse.unsw.edu.au/~willu/
2009-10-08postsparkline: switch to use_pagespecJoey Hess
Also, fixed up the dependency type for time=mtime. That has to remain a content dependency, sadly.
2009-10-08orphans: switch to use_pagespecJoey Hess
2009-10-08Another tweak to the formal definition.http://www.cse.unsw.edu.au/~willu/
2009-10-08responseJoey Hess
2009-10-08comments on cycles in the dependency graphhttp://www.cse.unsw.edu.au/~willu/
2009-10-08Minor commenthttp://www.cse.unsw.edu.au/~willu/
2009-10-08fix feedpages dependencyJoey Hess
This dependency was missing before switching to use_pagespec. It is correct to add it, but it needs to be combined with the regular "pages" dependency to ensure that it does not match extra pages. (Also fixed its dependency type.)
2009-10-08Merge branch 'master' into dependency-typesJoey Hess
Conflicts: IkiWiki.pm IkiWiki/Render.pm debian/changelog
2009-10-08pagestate: switch to use_pagespecJoey Hess
2009-10-08Optimize away most expensive file prune calls, when refreshingJoey Hess
Benchmarking refresh of a a wiki with 25 thousand pages showed file_pruned() using most of the time. But, when refreshing, ikiwiki already knows about nearly all the files. So we can skip calling file_pruned() for those it knows about. While tricky to do, this sped up a refresh (that otherwise does no work) by 10-50%.
2009-10-08use_pagespec: do not fail with error when unable to match, unless it failsJoey Hess
with an ErrorReason
2009-10-08pagecount: switched to use_pagespecJoey Hess
2009-10-08inline: switch to use_pagespecJoey Hess
Taking advantage of every single one of its features, of course. Even had to add one more..
2009-10-08add sorting pageJoey Hess
2009-10-08updateJoey Hess
2009-10-08map: switch to use_pagespecJoey Hess
2009-10-08add use_pagespec and deptype functionsJoey Hess
2009-10-08change how dependency types are specified to add_dependsJoey Hess
Also, this fixes 2 bugs in dependency info.
2009-10-08found a way to get false positive influencesJoey Hess
2009-10-08Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.infoJoey Hess
2009-10-08updateJoey Hess
2009-10-08fix handling of influences of pagespecs that fail to matchJoey Hess
If a pagespec fails to match, I had been throwing the influences away, but that is not right. Consider `backlink(foo)`, where foo does not exist. It still needs to be added as an influence, because if it is created, it will influence the pagespec to match. But with that fix, `link(bar)` had as influences all pages, whether they link to bar or not. Which is not necessary, because modifiying a page to add a link to bar will directly cause the pagespec to match. So, in match_link (and all the match_* functions for page metadata), only return an influence if the match succeeds. match_backlink had been implemented as the inverse of match_link, but that is no longer completly true. While match_link does not return an influence on failure, match_backlink does. match_created_before/after also return the influence on failure, this way if created_after(foo) currently fails because foo does not exist, it will still update the page with the pagespec if foo is created.
2009-10-08(no commit message)http://shoorick.livejournal.com/
2009-10-08add cpanrthttp://www.larted.org.uk/~dom/
2009-10-08Tweakshttp://www.cse.unsw.edu.au/~willu/
2009-10-08(no commit message)http://smcv.pseudorandom.co.uk/
2009-10-08updateJoey Hess
2009-10-08Questions...http://www.cse.unsw.edu.au/~willu/
2009-10-07bugfixJoey Hess
2009-10-07remove explicit addition of dependencies for displayed pagesJoey Hess
that hack is not needed, thanks to pagespec influences calculation
2009-10-07add type info to influence informationJoey Hess
2009-10-07Merge branch 'master' into dependency-typesJoey Hess
2009-10-07updateJoey Hess
2009-10-07convert add_depends to use influencesJoey Hess
No more horrible special-case pagespec parsing. OTOH, matching over all pages to determine influences is a lot of work.
2009-10-07influences calculation implementedJoey Hess
2009-10-07more influences testsJoey Hess
2009-10-07add influence info to match_*Joey Hess
Also update docs, test suite.
2009-10-07Merge branch 'master' into dependency-typesJoey Hess
2009-10-07make success and failreason objects carry an influences hashJoey Hess
The hash will be used used to record a set of pages that influenced the result of a pagespec match. The influences are merged together when boolean and/or are encountered in a pagespec. That means using a non-short-circuiting OR operator. And so I use & and | when translating pagespecs, since those bitwise operators can be overloaded. ("and" and "or" cannot, apparently).