summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/meta.pm
AgeCommit message (Collapse)Author
2009-10-09add_depends: optimise influence calculationJoey Hess
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.
2009-10-08change how dependency types are specified to add_dependsJoey Hess
Also, this fixes 2 bugs in dependency info.
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-07add type info to influence informationJoey Hess
2009-10-07add influence info to match_*Joey Hess
Also update docs, test suite.
2009-10-04rework dependency types codeJoey Hess
Simplify, change default content depends number to 1, change interface to make more sense.
2009-10-04meta redir dependency is contentlessJoey Hess
2009-08-15meta: depend on absolute page name, not relativeSimon McVittie
Previously, [[!meta redir="foo"]] on bar, where bar/foo exists, would depend on "foo" (which matches nothing, probably) rather than "bar/foo". (cherry picked from commit f27ec09b72f886415e63fe394e18d9c3cb3913bf)
2009-06-08meta: Add openid delegate parameter to allow delegating only openid or openid2.Joey Hess
2009-05-06Avoid %links accumulating duplicates. (For TOVA)Joey Hess
This is sorta an optimisation, and sorta a bug fix. In one test case I have available, it can speed a page build up from 3 minutes to 3 seconds. The root of the problem is that $links{$page} contains arrays of links, rather than hashes of links. And when a link is found, it is just pushed onto the array, without checking for dups. Now, the array is emptied before scanning a page, so there should not be a lot of opportunity for lots of duplicate links to pile up in it. But, in some cases, they can, and if there are hundreds of duplicate links in the array, then scanning it for matching links, as match_link and some other code does, becomes much more expensive than it needs to be. Perhaps the real right fix would be to change the data structure to a hash. But, the list of links is never accessed like that, you always want to iterate through it. I also looked at deduping the list in saveindex, but that does a lot of unnecessary work, and doesn't completly solve the problem. So, finally, I decided to add an add_link function that handles deduping, and make ikiwiki-transition remove the old dup links.
2009-01-18Add meta field "updated", which can alter the <updated> Atom elementSimon McVittie
Some aggregators, like Planet, sort by mtime rather than ctime. This means that posts with modified content come to the top (which seems odd to me, but is presumably what the aggregator's author or operator wants), but it also means that posts with insignificant edits (like adding tags) come to the top too. Atom defines <updated> to be the date of the last *significant* change, so it's fine that ikiwiki defaults to using the mtime, but it would be good to have a way for the author to say "that edit was insignificant, don't use that mtime".
2008-12-23finalise version 3.00 of the plugin apiJoey Hess
2008-12-21meta: Process meta date during scan pass so that the date will always affect ↵Joey Hess
sorting in inlines.
2008-12-17Coding style change: Remove explcit vim folding markers.Joey Hess
2008-12-12meta: Pass info to htmlscrubber so htmlscrubber_skip can take effect.Joey Hess
2008-09-27Export pagetitle, titlepage, linkpage.Joey Hess
2008-08-03add plugin safe/rebuild info (part 1 of 2)Joey Hess
too many plugins.. brain exploding..
2008-07-13switch preprocess hooks to use error functionJoey Hess
2008-07-12Stop prepending urn:uuid: to guids that look like UUIDsSimon McVittie
2008-07-12Bug fix: use &IkiWiki::pagetitle rather than nonexistent &pagetitle in meta ↵Simon McVittie
plugin, so that PageSpecs with title(...) work again
2008-07-12rename uuid to guidJoey Hess
2008-07-11meta plugin: if uuid looks like it is in fact a UUID, prepend "urn:uuid" ↵Simon McVittie
(otherwise leave it alone, so we can assign non-UUID <id>s to Atom items to avoid planet-flooding)
2008-07-11meta plugin: also collect [[!meta uuid="..."]]Simon McVittie
2008-07-02factor out glob2reJoey Hess
2008-06-15meta: Store "description" in pagestate for use by other plugins.Joey Hess
map: Support show=description.
2008-06-04Pass a destpage parameter to the sanitize hook.Joey Hess
Because the search plugin needed it, also because it's one of the few plugins that didn't already have it. I also considered adding it to htmlize, but I really cannot imagine caring what the destpage is when htmlizing. (I'll probably be poven wrong later.)
2008-03-21Close meta tag for redir properly.Joey Hess
2008-03-12fix syntax errorJoey Hess
2008-03-11Correct meta.robots attribute value->contentmartin f. krafft
This was a silly typo, sorry. <meta ...> takes an attribute content, not value. Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-11Generate openid2 headers as wellmartin f. krafft
This causes meta.openid to also generate the openid2 headers. Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-11Let meta.openid set X-XRDS-Location headermartin f. krafft
Adds an optional xrds-location parameter to the openid meta handler, which allows for XRDS delegation. A good document on XRDS is http://www.windley.com/archives/2007/05/using_xrds.shtml Signed-off-by: martin f. krafft <madduck@madduck.net>
2008-03-02Add robots tag to meta pluginmartin f. krafft
Add special handling for <meta name="robots" ...> which needs not be scrubbed as it's harmless. Signed-off-by: martin f. krafft <madduck@madduck.net> (cherry picked from commit b15d0299a7f7b147e89d8a202d6cca1c21491af2)
2008-02-10* meta: Check that the urls provided for authorurl, permalink, and openidJoey Hess
are safe and can't contain javascript.
2008-01-29add missing test to avoid uninitialised value when a page with metadata is ↵Joey Hess
removed
2008-01-29* meta: Add pagespec functions to match against title, author, authorurl,Joey Hess
license, and copyright. This can be used to create custom RecentChanges. * meta: To support the pagespec functions, metadata about pages has to be retained as pagestate. * Fix encoding bug when pagestate values contained spaces.
2008-01-09* mdwn: When htmlizing text, if it's a single line with no newline,Joey Hess
remove the enclosing paragraph and newline markdown wraps it in. This allows removing several hacks around this markdown behavior from other plugins that htmlize fragements of pages.
2008-01-09don't process data metadata in scan, as it's expensive and the metadata ↵Joey Hess
should not be needed so early
2008-01-09* meta: Run in scan mode again (more intelligently) and re-add support forJoey Hess
meta link. * Fix support for the case where metadata appears after an inline directive. This was broken in version 2.16.
2008-01-09* inline: Add copyright/license info on a per-post basis to atomJoey Hess
feeds if available. (rss doesn't allow such info on a per-post basis) * meta: Allow copyright/license metadata to contain arbitrary markup.
2007-12-22IkiWiki/Plugin/meta.pm <redir>: Support for specifying anchors.Thomas Schwinge
2007-12-16* meta: Drop support for "meta link", since supporting this for internalJoey Hess
links required meta to be run during scan, which complicated its data storage, since it had to clear data stored during the scan pass to avoid duplicating it during the normal preprocessing pass. * If you used "meta link", you should switch to either "meta openid" (for openid delegations), or tags (for internal, invisible links). I assume that nobody really used "meta link" for external, non-openid links, since the htmlscrubber ate those. (Tell me differently and I'll consider bringing back that support.) * meta: Improved data storage. * meta: Drop the hackish filter hook that was used to clear stored data before preprocessing, this hack was ugly, and broken (cf: liw's disappearing openids). * aggregate: Convert filter hook to a needsbuild hook.
2007-12-08real redir cycle detectionJoey Hess
2007-12-08* Finally implemented a simple per-page data storage mechanism for plugins,Joey Hess
via the %pagestate hash. * Use pagestate in meta to detect potential redir loops.
2007-12-08wikilink fixJoey Hess
2007-12-08drop redir loop detection codeJoey Hess
it won't work for incremental builds for now, relying on browsers to notice loops
2007-12-08* meta: Add redir support, based on a patch by Thomas Schwinge.Joey Hess
2007-12-08Here is a patch to add a forwarding functionality to the meta pluginThomas Schwinge
2007-09-15bugfixesjoey
2007-09-14if an inlined page has the same copyright or license as the page it'sjoey
inlined into, don't display them twice
2007-09-14* meta: Support license and copyright information. The information willjoey
be shown in the page footer. HTML will also be inserted that should support the rel=license microformat as well as the HTML spec's rel=copyright.