Commit Graph

11080 Commits (b4c8cc90726cb953898b14f378881bddd224a22c)

Author SHA1 Message Date
Joey Hess b4c8cc9072 update 2009-10-04 17:38:10 -04:00
Joey Hess 9403045b7e Merge branch 'dependency-types' into transitive-dependencies
Conflicts:
	IkiWiki/Render.pm
2009-10-04 16:33:58 -04:00
Joey Hess 66a7b49acb Merge branch 'master' into transitive-dependencies 2009-10-04 16:28:57 -04:00
Joey Hess d5357374c9 Merge branch 'master' into dependency-types 2009-10-04 16:28:51 -04:00
Joey Hess a8af271e5a document effect of contentless dependencies on sidebar efficiency 2009-10-04 16:28:14 -04:00
Joey Hess cda8592a5f Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info 2009-10-04 16:19:54 -04:00
Joey Hess 7982c3c177 postsparkline and progress: also contentless dependencies 2009-10-04 16:16:50 -04:00
Joey Hess 66852de775 meta redir dependency is contentless 2009-10-04 16:12:05 -04:00
Joey Hess 2af988b86f listdirectives: contentless dependency
Another one that probably doesn't matter, but for completness.
2009-10-04 16:11:10 -04:00
Joey Hess de6eba6ddd not a contentless dependency
needs link info
2009-10-04 16:10:34 -04:00
Joey Hess ce78b69927 edittemplate: contentless dependency
This one is unlikely to matter much, but yeah, it's contentless.
2009-10-04 16:07:02 -04:00
Joey Hess a6689f9c7a calendar: all dependencies are contentless 2009-10-04 16:05:41 -04:00
Joey Hess e529c561f5 inline: Use a contentless dependency in quick mode. 2009-10-04 16:03:01 -04:00
Joey Hess da5c12e9eb expand the set of things that can be matched contentless 2009-10-04 16:01:56 -04:00
Joey Hess 6f1ebdd692 update 2009-10-04 15:53:54 -04:00
Joey Hess 2fbfcd16e6 map: Use a contentless dependency unless show= is specified.
This makes simple maps efficient enough that they can be used on sidebars!
2009-10-04 15:46:23 -04:00
Joey Hess daafdf1acb optimise add_depends for simple pagespecs
We don't need to check if the pagespec is contentless; all simple ones are.
2009-10-04 15:43:38 -04:00
Joey Hess 5fd230f968 detect pagespecs that require content dependencies
When adding a contentless dependency, the pagespec also needs to be one
that does not look at any page content information.

As a first approximation of that, only allow glob-based pagespecs in
contentless dependencies. While there are probably a few other types of
pagespecs that can match contentless, this will work for most of them.
2009-10-04 15:42:24 -04:00
http://kaizer.se/ 7b692b5d6e Updated pproc-indent by catching only indent at beginning of line 2009-10-04 14:43:38 -04:00
Joey Hess ba11568f1e response 2009-10-03 17:43:23 -04:00
Joey Hess bd958f91a2 did a scratch implementation of dependancy types, but found it more complex 2009-10-03 17:38:47 -04:00
Joey Hess c7bdd17087 clarify 2009-10-03 17:17:48 -04:00
Joey Hess 6eaf9e4015 orphans and brokenlinks cannot use contentless dependency
Tried a contentless dep and it does not work; changes to links in pages
are not noticed. Drat.
2009-10-03 15:59:30 -04:00
Joey Hess 26dbc09bd8 implement support for DEPEND_EXISTS
Preliminary support, anyway.

If a dependency only includes DEPEND_EXISTS, then only changes that
involved adding or deleting a page can trigger it.

This is complicated by internal pages, since the code did not previously
differentiate between add, delete, and change of internal pages.
Now it tracks change separately from add+delete, so DEPEND_EXISTS pagespecs
that actually match internal pages (which will probably be quite rare in
practice) should work.
2009-10-03 15:50:22 -04:00
Joey Hess 49b71d0615 update 2009-10-03 15:38:18 -04:00
Joey Hess fd9d968024 document add_depends dependency type interface 2009-10-03 15:37:57 -04:00
Joey Hess 5c9f65a672 set dependency hash value properly for new dependency types
Just "1" won't cut it anymore; we need to list all the dependency types.
2009-10-03 15:37:15 -04:00
Joey Hess dc4e44adf1 pagecount: Use contentless dependency
This will avoid lots of unnecessary updates of pages using the pagecount
directive. Yay!
2009-10-03 15:36:23 -04:00
Joey Hess 743f69c675 add dependency type parameters to add_depends
Dependency types are represented by bits in the values of the %depends
and %depends_simple hashes.

Change the dependslist array saved to the index to a depends hash.
depends_simple is also converted from an array to a hash.

Note that the depends field used to be a string, and we still
have compat code to handle upgrades from that, as well as from the arrays.
I didn't use ikiwiki-transition because I don't want ikiwiki to break if
users forget to run it; also we're going to recommend a full rebuild on
upgrade to this version to get the improved dependency handling. So
this compat code can be removed or moved to ikiwiki-transition later.
2009-10-03 15:31:51 -04:00
Joey Hess ffa73790b5 Fix a bug that could lead to duplicate links being recorded for tags.
Here I was bitten by perl's aliasing of foreach variables
to the loop array contents, and match_link accidentially changed
the contents of %links.

In Jon's testcase, a tag added an absolute link, which was
made relative by the above bug, and then the link was added
again in preprocess, and turned into a duplicate.
2009-10-03 14:16:28 -04:00
Joey Hess e4eca63767 do not need to qualify %links 2009-10-03 14:01:19 -04:00
http://www.cse.unsw.edu.au/~willu/ 5de7ba8291 response 2009-10-03 01:39:06 -04:00
Joey Hess 9673806a6d consistency with edittemplate? 2009-10-02 18:58:07 -04:00
Joey Hess db64972b65 combine with pagetemplate? 2009-10-02 18:51:52 -04:00
Joey Hess 6e133959bc fix wording here too 2009-10-02 18:47:15 -04:00
Joey Hess 82ae1372a4 Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info 2009-10-02 18:46:10 -04:00
Joey Hess 7ef22f2596 improve wording 2009-10-02 18:45:56 -04:00
http://www.cse.unsw.edu.au/~willu/ 06a1ad7e76 Add reference to new plugin 2009-10-02 18:28:11 -04:00
http://jmtd.livejournal.com/ 1ead5f7987 2009-10-02 17:31:40 -04:00
http://jmtd.livejournal.com/ 1d0d98eec4 wishlist/todo item: disable/enable directives by pagespec 2009-10-02 17:30:46 -04:00
http://jmtd.livejournal.com/ a56fd6fde9 +bugs/ backlinks onhover thing can go weird 2009-10-02 17:25:18 -04:00
http://jmtd.livejournal.com/ c1ca46a785 response 2009-10-02 17:23:37 -04:00
Joey Hess 1df5c5a22c fix 2009-10-02 16:22:47 -04:00
Joey Hess 8c2d221ca9 split off todo item for multiple dependency types 2009-10-02 16:17:56 -04:00
Joey Hess 8bb94bb197 split out dependency type issue into its own todo 2009-10-02 15:56:44 -04:00
Joey Hess 4c88d42762 mention loop optimisation 2009-10-02 15:48:47 -04:00
Joey Hess 537824a279 fix branch name 2009-10-02 15:46:27 -04:00
Joey Hess 53a8aeb1d1 implemented one fix in transitive-dependencies branch, but not really happy with it 2009-10-02 15:45:14 -04:00
Joey Hess 52134dc0ef minor optimisation
As soon as a change happens, we know we will need to rescan all
dependencies from the start, so bail out of the current scan partway to
avoid doing redundant work.

Only problem with this is that ikiwiki sometimes ends up printing out
dependencies that, while correct, are not obvious. Before:

building B, which depends on A
building C, which depends on A
building D, which depends on A

After:

building B, which depends on A
building C, which depends on B
building D, which depends on C
2009-10-02 15:41:09 -04:00
Joey Hess 71eabd44d5 handle transitive dependencies by re-running dep resolver
This is a rather expensive solution to the transitive dependency problem.
2009-10-02 15:38:04 -04:00