Joey Hess [Tue, 13 Oct 2009 19:00:07 +0000 (15:00 -0400)]
remove debugging and cruft
Joey Hess [Tue, 13 Oct 2009 18:58:22 +0000 (14:58 -0400)]
fix some broken influence blocking testing, add more tests
Joey Hess [Tue, 13 Oct 2009 18:46:38 +0000 (14:46 -0400)]
tests for influence blocking
Joey Hess [Tue, 13 Oct 2009 18:37:14 +0000 (14:37 -0400)]
influence blocker implementation
This avoids unnecessary influences being recorded from pagespecs
such as "link(done) and bugs/*", when a page cannot ever possibly
match.
A pagespec term that returns a value without influence is an influence
blocker. If such a blocker has a false value (possibly due to being
negated) and is ANDed with another term, it blocks that term's influence
from propigating out.
If the term is ORed, or has a true value, it does not block influence.
(Consider "link(done) or bugs/*" and "link(done) and !nosuchpage")
In the implementation in merge_influence, I had to be careful to never
negate $this or $other when testing if they are an influence blocker,
since negation mutates the object. Thus the slightly weird if statement.
Joey Hess [Tue, 13 Oct 2009 17:33:51 +0000 (13:33 -0400)]
match_link: dynamic influence needed for page that currently has no links
Joey Hess [Mon, 12 Oct 2009 18:22:48 +0000 (14:22 -0400)]
year calendar: Avoid highlighting the current month in a different year
Joey Hess [Mon, 12 Oct 2009 18:19:04 +0000 (14:19 -0400)]
year calendar: only link to months that have posts
This does mean the year calendars depend on existence of all posts made in
the year and have to be updated.
Joey Hess [Mon, 12 Oct 2009 18:05:56 +0000 (14:05 -0400)]
remove whitespace from within arrow links
Joey Hess [Mon, 12 Oct 2009 16:30:10 +0000 (12:30 -0400)]
calendar: Add creation time limits to user's pagespec
This avoids all calendars rebuilding when a new page is added
that will only show in one of them.
Joey Hess [Mon, 12 Oct 2009 16:21:46 +0000 (12:21 -0400)]
Added minimal default CSS for calendar plugin, just highlighting the current day.
Joey Hess [Mon, 12 Oct 2009 16:19:42 +0000 (12:19 -0400)]
calendar: Fix CSS for year calendar to match the plugin documentation.
The names in the documentation were completly different, but
also seemed better chosen than the names in the code.
Joey Hess [Mon, 12 Oct 2009 04:50:48 +0000 (00:50 -0400)]
skip merges
git log --follow seems to sometimes show merges from before the file was
ever created. So, skip them, a file shouldn't be first created during a
merge anyway.
Joey Hess [Mon, 12 Oct 2009 04:05:31 +0000 (00:05 -0400)]
formatting
Joey Hess [Mon, 12 Oct 2009 03:53:21 +0000 (23:53 -0400)]
add some TODO tests for influence blocking
Joey Hess [Mon, 12 Oct 2009 03:44:50 +0000 (23:44 -0400)]
allow spans
Joey Hess [Mon, 12 Oct 2009 03:38:41 +0000 (23:38 -0400)]
Merge branch 'master' into dependency-types
Joey Hess [Mon, 12 Oct 2009 03:07:31 +0000 (23:07 -0400)]
can't use --reverse with git log --follow
Meh, git.
Joey Hess [Mon, 12 Oct 2009 02:58:17 +0000 (22:58 -0400)]
response
Joey Hess [Mon, 12 Oct 2009 02:39:31 +0000 (22:39 -0400)]
Merge branch 'master' into dependency-types
Conflicts:
debian/changelog
Joey Hess [Mon, 12 Oct 2009 02:38:42 +0000 (22:38 -0400)]
git: --getctime will now follow renames back to the original creation of a file.
This will be a bit more expensive, but --getctime does not need to be fast.
And getting the real creation time a very useful when untangling blog
histories that involve renames.
Joey Hess [Mon, 12 Oct 2009 02:11:11 +0000 (22:11 -0400)]
calendar: avoid inline images in links
Joey Hess [Mon, 12 Oct 2009 01:55:06 +0000 (21:55 -0400)]
calendar: use left and right arrows for next/prev months
This is consistent with the year display, and I think it is less
visually confusing than using the full month names.
Joey Hess [Mon, 12 Oct 2009 01:52:50 +0000 (21:52 -0400)]
fix next/prev month padding bug
Joey Hess [Mon, 12 Oct 2009 01:43:16 +0000 (21:43 -0400)]
fix day links
I broke this recently.
Joey Hess [Mon, 12 Oct 2009 01:42:59 +0000 (21:42 -0400)]
calendar: Fix bug in next/previous year/month links, which sometimes linked to an archive page from the wrong year.
Joey Hess [Mon, 12 Oct 2009 01:06:10 +0000 (21:06 -0400)]
calendar: Fix midnight rebuild trigger of calendars with explicit month/year.
It was just broken for calendars with an explicit month or year, not
triggering at all.
Now it will update those at appropriate times.
Joey Hess [Mon, 12 Oct 2009 00:15:54 +0000 (20:15 -0400)]
avoid temporary variables
and fix a bug in pagespec variable name
Joey Hess [Mon, 12 Oct 2009 00:00:12 +0000 (20:00 -0400)]
Merge branch 'master' into dependency-types
Joey Hess [Sun, 11 Oct 2009 23:59:32 +0000 (19:59 -0400)]
remove locking
Problem is that even rcs_add may cause a commit for certian RCSs and then
it would deadlock.
Joey Hess [Sun, 11 Oct 2009 23:56:50 +0000 (19:56 -0400)]
Merge branch 'master' into dependency-types
Joey Hess [Sun, 11 Oct 2009 23:56:40 +0000 (19:56 -0400)]
install ikiwiki-calendar
Joey Hess [Sun, 11 Oct 2009 23:13:40 +0000 (19:13 -0400)]
influences returns hash ref now
Joey Hess [Sun, 11 Oct 2009 23:05:37 +0000 (19:05 -0400)]
typo
Joey Hess [Sun, 11 Oct 2009 20:54:23 +0000 (16:54 -0400)]
Merge branch 'master' into dependency-types
Conflicts:
debian/changelog
doc/plugins/calendar.mdwn
Joey Hess [Sun, 11 Oct 2009 20:53:07 +0000 (16:53 -0400)]
Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info
Joey Hess [Sun, 11 Oct 2009 20:42:49 +0000 (16:42 -0400)]
ikiwiki-calendar: New command automates creation of archive pages using the calendar plugin.
Joey Hess [Sun, 11 Oct 2009 20:04:03 +0000 (16:04 -0400)]
typo
Joey Hess [Sun, 11 Oct 2009 17:51:23 +0000 (13:51 -0400)]
typo
Jogo [Sun, 11 Oct 2009 08:34:17 +0000 (04:34 -0400)]
Jogo [Sun, 11 Oct 2009 07:18:32 +0000 (03:18 -0400)]
Jogo [Sat, 10 Oct 2009 08:22:41 +0000 (04:22 -0400)]
trianta [Sat, 10 Oct 2009 08:14:18 +0000 (04:14 -0400)]
Joey Hess [Sat, 10 Oct 2009 01:23:39 +0000 (21:23 -0400)]
update
Joey Hess [Sat, 10 Oct 2009 01:12:14 +0000 (21:12 -0400)]
added tests of SuccessReason/FailReason objects
Joey Hess [Sat, 10 Oct 2009 00:30:22 +0000 (20:30 -0400)]
update
Joey Hess [Sat, 10 Oct 2009 00:16:46 +0000 (20:16 -0400)]
Merge branch 'master' into dependency-types
Conflicts:
doc/bugs/transitive_dependencies.mdwn
Joey Hess [Sat, 10 Oct 2009 00:08:42 +0000 (20:08 -0400)]
add news item for ikiwiki 3.
20091009
Joey Hess [Sat, 10 Oct 2009 00:07:32 +0000 (20:07 -0400)]
releasing version 3.
20091009
http://www.cse.unsw.edu.au/~willu/ [Fri, 9 Oct 2009 22:08:21 +0000 (18:08 -0400)]
response
Joey Hess [Fri, 9 Oct 2009 21:19:07 +0000 (17:19 -0400)]
remove highlevel influence calculation stuff
I have it implemented in both add_depends and pagespec_match_list.
The add_depends implementation is optimised to only try one page
if the pagespec's influences are all static, and do not vary by page
matched.
Joey Hess [Fri, 9 Oct 2009 21:15:40 +0000 (17:15 -0400)]
add_depends: optimise influence calculation
I made match_* functions whose influences can vary depending on the page
matched set a special "" influence to indicate this.
Then add_depends can try just one page, and if static influences are found,
stop there.
Joey Hess [Fri, 9 Oct 2009 18:52:03 +0000 (14:52 -0400)]
response
Joey Hess [Fri, 9 Oct 2009 18:51:02 +0000 (14:51 -0400)]
revert
Joey Hess [Fri, 9 Oct 2009 18:27:11 +0000 (14:27 -0400)]
rework influence calculation
Thought of a cleaner way to accumulate all influences in
pagespec_match_list, using the pagespec_match result object as an
accumulator.
(This also accumulates all influences from failed matches, rather than just
one failed match. I'm not sure if the old method was correct.)
Joey Hess [Fri, 9 Oct 2009 18:05:22 +0000 (14:05 -0400)]
move influence tests to pagespec_match_list.t
Joey Hess [Fri, 9 Oct 2009 17:37:06 +0000 (13:37 -0400)]
img: use presence dependency when linking to a page
Joey Hess [Fri, 9 Oct 2009 17:35:11 +0000 (13:35 -0400)]
brokenlinks: use pagespec_match_list
Joey Hess [Fri, 9 Oct 2009 17:33:49 +0000 (13:33 -0400)]
fix link
Joey Hess [Fri, 9 Oct 2009 17:28:41 +0000 (13:28 -0400)]
fix pagespec_match_list handling of list parameter
Joey Hess [Fri, 9 Oct 2009 17:20:41 +0000 (13:20 -0400)]
pagespec_match_list: change limit to filter
Joey Hess [Fri, 9 Oct 2009 17:07:50 +0000 (13:07 -0400)]
conditional: use pagespec_match_list
Joey Hess [Fri, 9 Oct 2009 17:02:10 +0000 (13:02 -0400)]
pagespec_match_list allow additional pagespec limit parameters again
Joey Hess [Fri, 9 Oct 2009 17:02:03 +0000 (13:02 -0400)]
indentation
Joey Hess [Fri, 9 Oct 2009 16:54:13 +0000 (12:54 -0400)]
conditional: use yesno
Joey Hess [Fri, 9 Oct 2009 16:48:16 +0000 (12:48 -0400)]
progress: switch to new pagespec_match_list
Joey Hess [Fri, 9 Oct 2009 16:35:41 +0000 (12:35 -0400)]
linkmap: Use new pagespec_match_list
Joey Hess [Fri, 9 Oct 2009 04:06:58 +0000 (00:06 -0400)]
fix test to use new calling convention
This test still fails several cases, since add_depends influence testing is
currently commented out.
Joey Hess [Fri, 9 Oct 2009 04:06:40 +0000 (00:06 -0400)]
add pagespec/sorting to underlay
Joey Hess [Fri, 9 Oct 2009 04:06:08 +0000 (00:06 -0400)]
don't link to inline, not available when directives underlay is not enabled
Joey Hess [Fri, 9 Oct 2009 03:55:50 +0000 (23:55 -0400)]
typo
Joey Hess [Fri, 9 Oct 2009 03:51:06 +0000 (23:51 -0400)]
rename use_pagespec to pagespec_match_list
To avoid breaking plugins, also support the old pagespec_match_list
calling convention, with a deprecation warning.
Joey Hess [Fri, 9 Oct 2009 03:48:08 +0000 (23:48 -0400)]
fix test broken by change to failing link() influence
Joey Hess [Fri, 9 Oct 2009 03:24:03 +0000 (23:24 -0400)]
calendar: rework so it can use use_pagespec
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!)
http://www.cse.unsw.edu.au/~willu/ [Fri, 9 Oct 2009 02:59:34 +0000 (22:59 -0400)]
Yet another tweak to the formal definition. Much better this time.
Joey Hess [Fri, 9 Oct 2009 02:56:36 +0000 (22:56 -0400)]
postsparkline: switch to use_pagespec
Also, fixed up the dependency type for time=mtime. That has
to remain a content dependency, sadly.
Joey Hess [Fri, 9 Oct 2009 02:56:12 +0000 (22:56 -0400)]
orphans: switch to use_pagespec
http://www.cse.unsw.edu.au/~willu/ [Fri, 9 Oct 2009 02:36:29 +0000 (22:36 -0400)]
Another tweak to the formal definition.
Joey Hess [Fri, 9 Oct 2009 02:31:13 +0000 (22:31 -0400)]
response
http://www.cse.unsw.edu.au/~willu/ [Fri, 9 Oct 2009 01:30:17 +0000 (21:30 -0400)]
comments on cycles in the dependency graph
http://www.cse.unsw.edu.au/~willu/ [Fri, 9 Oct 2009 01:09:08 +0000 (21:09 -0400)]
Minor comment
Joey Hess [Fri, 9 Oct 2009 00:54:06 +0000 (20:54 -0400)]
fix feedpages dependency
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.)
Joey Hess [Fri, 9 Oct 2009 00:33:58 +0000 (20:33 -0400)]
Merge branch 'master' into dependency-types
Conflicts:
IkiWiki.pm
IkiWiki/Render.pm
debian/changelog
Joey Hess [Thu, 8 Oct 2009 23:27:25 +0000 (19:27 -0400)]
pagestate: switch to use_pagespec
Joey Hess [Fri, 9 Oct 2009 00:27:56 +0000 (20:27 -0400)]
Optimize away most expensive file prune calls, when refreshing
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%.
Joey Hess [Thu, 8 Oct 2009 22:47:48 +0000 (18:47 -0400)]
use_pagespec: do not fail with error when unable to match, unless it fails
with an ErrorReason
Joey Hess [Thu, 8 Oct 2009 22:41:08 +0000 (18:41 -0400)]
pagecount: switched to use_pagespec
Joey Hess [Thu, 8 Oct 2009 22:26:36 +0000 (18:26 -0400)]
inline: switch to use_pagespec
Taking advantage of every single one of its features, of course.
Even had to add one more..
Joey Hess [Thu, 8 Oct 2009 22:17:36 +0000 (18:17 -0400)]
add sorting page
Joey Hess [Thu, 8 Oct 2009 22:00:10 +0000 (18:00 -0400)]
update
Joey Hess [Thu, 8 Oct 2009 21:52:20 +0000 (17:52 -0400)]
map: switch to use_pagespec
Joey Hess [Thu, 8 Oct 2009 20:49:53 +0000 (16:49 -0400)]
add use_pagespec and deptype functions
Joey Hess [Thu, 8 Oct 2009 20:49:03 +0000 (16:49 -0400)]
change how dependency types are specified to add_depends
Also, this fixes 2 bugs in dependency info.
Joey Hess [Thu, 8 Oct 2009 19:33:47 +0000 (15:33 -0400)]
found a way to get false positive influences
Joey Hess [Thu, 8 Oct 2009 17:56:54 +0000 (13:56 -0400)]
Merge branch 'master' of ssh://git.ikiwiki.info/srv/git/ikiwiki.info
Joey Hess [Thu, 8 Oct 2009 17:54:51 +0000 (13:54 -0400)]
update
Joey Hess [Thu, 8 Oct 2009 17:38:46 +0000 (13:38 -0400)]
fix handling of influences of pagespecs that fail to match
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.
http://shoorick.livejournal.com/ [Thu, 8 Oct 2009 17:07:41 +0000 (13:07 -0400)]
http://www.larted.org.uk/~dom/ [Thu, 8 Oct 2009 15:38:34 +0000 (11:38 -0400)]
add cpanrt
http://www.cse.unsw.edu.au/~willu/ [Thu, 8 Oct 2009 11:26:01 +0000 (07:26 -0400)]
Tweaks
http://smcv.pseudorandom.co.uk/ [Thu, 8 Oct 2009 10:38:40 +0000 (06:38 -0400)]