| Commit message (Expand) | Author | Age |
* | Moved the postscan hook to run on the raw html of a page, before the template... | Joey Hess | 2009-11-08 |
* | Fix a bug introduced in the last version that caused ikiwiki to skip all file... | Joey Hess | 2009-10-21 |
* | Merge branch 'master' into dependency-types•••Conflicts:
IkiWiki.pm
IkiWiki/Render.pm
debian/changelog
| Joey Hess | 2009-10-08 |
|\ |
|
| * | 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 | 2009-10-08 |
* | | fix backlink new change detection code | Joey Hess | 2009-10-07 |
* | | typo | Joey Hess | 2009-10-06 |
* | | fix support of a single dependency that combines links and exists types•••This is very common, and the code has to test each type differently, since
the list of candidates to test, as well as the test, will vary per type.
Much happier with this code now.
| Joey Hess | 2009-10-06 |
* | | fix handling of links+content dependency•••Such a dependency is unlikely, but can happen.
| Joey Hess | 2009-10-06 |
* | | refactor 3•••Only left one new global
| Joey Hess | 2009-10-06 |
* | | refresh refactor 2•••killed one global
| Joey Hess | 2009-10-06 |
* | | split up refresh•••I'd rather have the global variables than the 300 line function
| Joey Hess | 2009-10-05 |
* | | new link change detection method and general code rework•••This new method for determining when links on pages
have changed should be more efficient, since it avoids
double calculation of the bestlinks.
It also allows collecting data about the old links, before
the scan pass, so the data is accurate when pages move around
and bestlinks change.
Also got some code back to a saner indent level.
| Joey Hess | 2009-10-05 |
* | | make links dependencies fire if broken links change | Joey Hess | 2009-10-05 |
* | | implement links dependencies•••Involved some code refactoring so that same code that detects
link changes for backlinks updating can be used for link dependency
checking. The nice thing is that link dep checking is thus
comopletly free!
| Joey Hess | 2009-10-05 |
* | | typos | Joey Hess | 2009-10-05 |
* | | rework dependency types code•••Simplify, change default content depends number to 1,
change interface to make more sense.
| Joey Hess | 2009-10-04 |
* | | Merge branch 'dependency-types' into transitive-dependencies•••Conflicts:
IkiWiki/Render.pm
| Joey Hess | 2009-10-04 |
|\ \ |
|
| * | | 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.
| Joey Hess | 2009-10-03 |
| |/ |
|
* | | 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
| Joey Hess | 2009-10-02 |
* | | handle transitive dependencies by re-running dep resolver•••This is a rather expensive solution to the transitive dependency problem.
| Joey Hess | 2009-10-02 |
|/ |
|
* | got rid of the postrefresh hook after all•••Instead, use the change and delete hooks, and launch rsync if either hook
is called.
| Joey Hess | 2009-09-11 |
* | Revivify unixauth and rsync plugins (and hook needed by rsync) lost in•••the last merge. I should really put each feature on its own git branch.
| Amitai Schlair | 2009-09-10 |
* | remove hook not used by cvs | Joey Hess | 2009-09-10 |
* | Merge branch 'master' of git://github.com/joeyh/ikiwiki | Amitai Schlair | 2009-08-30 |
|\ |
|
| * | <pedant>rename depends_exact to depends_simple•••It's not "exact" since case munging has to be done, and I think
"simple" captures the optimisation better.</pedant>
With apologies to smcv, who probably has to rebuild his wiki now.
| Joey Hess | 2009-08-28 |
| * | Avoid duplicating debug message for building a page due to a dependency•••As per Joey's review
| Simon McVittie | 2009-08-28 |
| * | Force %depends_exact to lower case, fixing incorrect case-sensitivity | Simon McVittie | 2009-08-28 |
| * | Fix typo in dependency debug message | Simon McVittie | 2009-08-28 |
| * | Add depends_exact: simplified dependency tracking for dependencies on a singl...•••Let E be the number of dependencies per page of the form "A depends on B and
nothing else", let D be the number of other dependencies per page,
let P be the total number of pages, and let C be the number of changed
pages in a refresh.
This patch should speed up a refresh from O(E*C*P + D*C*P) to
O(C + E*P + D*C*P), assuming that hash lookups are O(1).
In practice, plugins like inline and map produce a lot of these very simple
dependencies, and my album plugin's combination of inline with a large
number of pages causes it to suffer particularly badly.
In testing on a wiki with about 7000 objects (3500 full pages, 3500
images), a full rebuild continued to take about 5:30, and a refresh
after touching about 350 pages and 350 images reduced from 5:30 to 1:30.
As with my previous optimizations, this change will result in downgrades not
working correctly until the wiki is rebuilt.
| Simon McVittie | 2009-08-28 |
| * | don't use pagespec_match_list•••This should be more efficient than pagespec_match_list since it short-circuits
after the first match is found.
The other problem with using pagespec_match_list here is it may throw an
error if a bad or failing pagespec somehow got into the dependencies.
| Joey Hess | 2009-08-25 |
| * | use pagespec_match_list | Simon McVittie | 2009-08-25 |
| * | Use a hash to de-duplicate dependencies | Simon McVittie | 2009-08-25 |
| * | Optimize the dependencies list•••On a large wiki you can spend a lot of time reading through large lists
of dependencies to see whether files need to be rebuilt (album, with its
one-page-per-photo arrangement, suffers particularly badly from this).
The dependency list is currently a single pagespec, but it's not used like
a normal pagespec - in practice, it's a list of pagespecs joined with the
"or" operator.
Accordingly, change it to be stored as a list of pagespecs. On a wiki
with many tagged photo albums, this reduces the time to refresh after
`touch tags/*.mdwn` from about 31 to 25 seconds.
Getting the benefit of this change on an existing wiki requires a rebuild.
| Simon McVittie | 2009-08-24 |
| * | optimise brokenlinks by gathering the data when calculating backlinks•••During backlink calulation, all links are examined and broken links can
be detected for free, so store a list of broken links and have brokenlinks
use it.
Exposing the %brokenlinks structure is a bit ugly, but the speedup seems
worth it: Around 1 second for wikis the size of the doc wiki that use
brokenlinks.
| Joey Hess | 2009-08-14 |
| * | Add discussionpage configuration setting•••By adding this setting, we get both more configurability, and a minor
optimisation too, since gettext does not need to be called continually
to get the Discussion value.
| Joey Hess | 2009-08-13 |
* | | Add rsync plugin, though the only rsync-specific thing about it is the•••assumption that uploading an entire site is efficient.
| Amitai Schlair | 2009-08-23 |
|/ |
|
* | fix some more foreaches that clal functions to not use $_ | Joey Hess | 2009-08-12 |
* | Merge commit 'remotes/smcv/ready/among' | Joey Hess | 2009-07-31 |
|\ |
|
| * | IkiWiki::Render: split out backlink_pages() function from backlinks()•••This separates style from content - backlinks() performs lossy
transformations on the page names to get it in the form that the page
template wants.
| Simon McVittie | 2009-07-17 |
* | | Change rendering→building in translatable strings, to ease translations. | Jonas Smedegaard | 2009-07-23 |
* | | split two helper functions of of render() | Joey Hess | 2009-07-20 |
|/ |
|
* | Disable the Preferences link if no plugin with an auth hook is enabled. | Joey Hess | 2009-06-09 |
* | fix further places where translated discussion case was assumed•••Another benefit is that consistently using gettext("Discussion")
eliminates the need to translate one string.
| Joey Hess | 2009-06-04 |
* | Avoid relying on translators preserving the case when translating "discussion... | Joey Hess | 2009-06-04 |
* | Coding style change: Remove explcit vim folding markers. | Joey Hess | 2008-12-17 |
* | set ctime in --render mode if not known•••Avoids some uninitialised value warnings.
| Joey Hess | 2008-10-30 |
* | fix display of error msg | Joey Hess | 2008-10-29 |
* | fix relativedate timezone inclusion•••The machine parseable date needs to include a timezone.
Also, simplified the interface for date display.
| Joey Hess | 2008-10-19 |
* | relativedate: New javascript-alicious plugin that makes all dates display rel... | Joey Hess | 2008-10-17 |
* | use gettext | Joey Hess | 2008-09-29 |