diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2009-10-04 16:28:51 -0400 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-10-04 16:28:51 -0400 |
commit | d5357374c9def3cee23d46595f61795e08f4cc0b (patch) | |
tree | 5d840075216bdfbd730fbad44bfffccc3f8e4b29 /doc | |
parent | a8af271e5aed1c4aef3f66cee0847d609aedc705 (diff) | |
parent | cda8592a5fd5595d12f0503bfcd2e0640e0afc86 (diff) |
Merge branch 'master' into dependency-types
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ikiwiki/directive/pagestats.mdwn | 2 | ||||
-rw-r--r-- | doc/todo/Resolve_native_reStructuredText_links_to_ikiwiki_pages.mdwn | 11 | ||||
-rw-r--r-- | doc/todo/Set_templates_for_whole_sections_of_the_site.mdwn | 6 | ||||
-rw-r--r-- | doc/todo/dependency_types.mdwn | 43 |
4 files changed, 55 insertions, 7 deletions
diff --git a/doc/ikiwiki/directive/pagestats.mdwn b/doc/ikiwiki/directive/pagestats.mdwn index 426f3e4af..66f851dbd 100644 --- a/doc/ikiwiki/directive/pagestats.mdwn +++ b/doc/ikiwiki/directive/pagestats.mdwn @@ -12,7 +12,7 @@ And here's how to create a table of all the pages on the wiki: \[[!pagestats style="table"]] -The optional `among` parameter limits counting to pages that match a +The optional `among` parameter limits display to pages that match a [[ikiwiki/PageSpec]]. For instance, to display a cloud of tags used on blog entries, you could use: diff --git a/doc/todo/Resolve_native_reStructuredText_links_to_ikiwiki_pages.mdwn b/doc/todo/Resolve_native_reStructuredText_links_to_ikiwiki_pages.mdwn index e42f22970..ca7b282fa 100644 --- a/doc/todo/Resolve_native_reStructuredText_links_to_ikiwiki_pages.mdwn +++ b/doc/todo/Resolve_native_reStructuredText_links_to_ikiwiki_pages.mdwn @@ -271,6 +271,17 @@ Perl I've ever written!_) >>> Well, seems you want to match the indent at the start of the line containing >>> the directive, even if the directive does not start the line. That would >>> be quite hard to make a regexp do, though. --[[Joey]] +>> +>> I wasted a long time getting the simpler `indent($1, handle->($2,$,4))` to +>> work (remember, I don't know perl at all). Somehow `$1` does not arrive, I +>> made a simple testcase that worked, and I conclude something inside $handle +>> results in the value of $1 not arriving as it should! +>> +>> Anyway, instead a very simple incremental patch is in [pproc-indent][ppi] +>> where the indentation regex is `(^[ \t]+|)` instead, which seems to work +>> very well (and the regex is multiline now as well). I'm happy to rebase the +>> changes if you want or you can just squash the four patches 1+3 => 1+1 +>> -- [[ulrik]] [ppi]: http://github.com/engla/ikiwiki/commits/pproc-indent diff --git a/doc/todo/Set_templates_for_whole_sections_of_the_site.mdwn b/doc/todo/Set_templates_for_whole_sections_of_the_site.mdwn index cd57c1257..d0c09796f 100644 --- a/doc/todo/Set_templates_for_whole_sections_of_the_site.mdwn +++ b/doc/todo/Set_templates_for_whole_sections_of_the_site.mdwn @@ -23,3 +23,9 @@ I've written a new plugin, sectiontemplate, available in the `page_tmpl` branch >> I wanted this to put comments on my new blog, and was more interested in that goal than this subgoal. I've moved most of my web pages to IkiWiki and there is only one small part that is the blog. >> I wanted to use [[Disqus comments|tips/Adding_Disqus_to_your_wiki/]], but only on the blog pages. (I'm using Disqus rather than IkiWiki comments because I don't want to have to deal with spam, security, etc. I'll happily just let someone else host the comments.) -- [[Will]] + +>>> Yes, handing the rebuild is a good reason not to use directives for +>>> this. +>>> +>>> I do still think combining this with pagetemplate would be good. +>>> --[[Joey]] diff --git a/doc/todo/dependency_types.mdwn b/doc/todo/dependency_types.mdwn index 215a65c8a..58b5ee955 100644 --- a/doc/todo/dependency_types.mdwn +++ b/doc/todo/dependency_types.mdwn @@ -10,9 +10,9 @@ whenever a matching dependency is added, removed, or *modified*. But a great many things don't care about the modification case, and often cause unnecessary page rebuilds: -* meta only cares if the pages are added or removed. Content change does +* map only cares if the pages are added or removed. Content change does not matter (unless show=title is used). -* brokenlinks, orphans, pagecount, ditto +* brokenlinks, orphans, pagecount, ditto (generally) * inline in archive mode cares about page title, author changing, but not content. (Ditto for meta with show=title.) * Causes extra work when solving the [[bugs/transitive_dependencies]] @@ -109,9 +109,6 @@ I propose the following. --[[Joey]] * `add_depends` defaults to adding a regular ("full") dependency, as before. (So nothing breaks.) * `add_depends($page, $spec, content => 0)` adds an contentless dependency. -* Contentless dependencies are stored in `%depends_contentless` and - `%depends_contentless_simple`, which are stored in the index similarly - to the existing hashes. * `refresh` only looks at added/removed pages when resolving contentless dependencies. @@ -121,5 +118,39 @@ to the two types he talks about above, but I hope are close enough that they can be used. This doesn't deal with the stuff that only depend on the metadata of a -page, as collected in the scan pass, changing. But it does leave a window +page, as collected in the scan pass, changing. But it does leave a window open for adding such a dependency type later. + +---- + +I implemented the above in a branch. +[[!template id=gitbranch branch=origin/dependency-types author="[[joey]]"]] + +Then I found some problems: + +* Something simple like pagecount, that seems like it could use a + contentless dependency, can have a pagespec that uses metadata, like + `author()` or `copyright()`. +* pagestats, orphans and brokenlinks cannot use contentless dependencies + because they need to update when links change. + +Now I'm thinking about having a contentless dependency look at page +metadata, and fire if the metadata changes. And it seems links should +either be included in that, or there should be a way to make a dependency +that fires when a page's links change. (And what about backlinks?) + +It's easy to see when a page's links change, since there is `%oldlinks`. +To see when metadata is changed is harder, since it's stored in the +pagestate by the meta plugin. + +Quick alternative: Make add_depends look at the pagespec. Ie, if it +is a simple page name, or a glob, we know a contentless dependency +can be valid. If's more complex, convert the dependency from +contentless to full. + +There is a lot to dislike about this method. Its parsing of the +pagespec, as currently implemented, does not let plugins add new types of +pagespecs that are contentless. Its pagespec parsing is also subject to +false negatives (though these should be somewhat rare, and no false +positives). Still, it does work, and it makes things like simple maps and +pagecounts much more efficient. |