X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/17fdb8028bfb2722c120b229c2131598affbddd6..35c56622ea56c7d97299faba5e72b5a67fa25c66:/doc/bugs/recentchanges_feed_links.mdwn diff --git a/doc/bugs/recentchanges_feed_links.mdwn b/doc/bugs/recentchanges_feed_links.mdwn index eb543587c..e3557a6cb 100644 --- a/doc/bugs/recentchanges_feed_links.mdwn +++ b/doc/bugs/recentchanges_feed_links.mdwn @@ -27,8 +27,74 @@ to turn on? --Chapman Flack >>> todo about [[todo/ability_to_force_particular_UUIDs_on_blog_posts]], >>> and then by just using that new ability in the page. --[[Joey]] ->>>> Ah. The prerequisite todo looks like more than I'd like to take on. +>>>> Ah. The prerequisite todo looks like more than I'd like to take on. >>>> In the meantime, would it be very involved to change whatever bug now >>>> optimizes away the change pages, or to simply have all the links in the >>>> feed point to the recentchanges page itself, with no fragment id? ->>>> Either would be a bit nicer than having broken links in the feed. --Chap +>>>> Either would be a bit nicer than having broken links in the feed. --Chap + +>>>> Does the completion of that todo mean it would be straightforward to get +>>>> recentchanges working now? Is it just that the recentchanges plugin +>>>> needs to generate `\[[!meta guid=something]]` into the internal files, +>>>> and the inline plugin would then generate working links in feeds? How should +>>>> the guid be constructed? Something based on the rcs revision number? I guess +>>>> I'm still not completely clear on your vision for how it ought to work. --Chap + +>>>> My idea is to use `\[[meta guid="http://url/recentchanges#rev"]]`, with the +>>>> `#rev` anchor also included in the change file, and being the rcs's +>>>> internal revision id. Then the guid is globally unique, and actually +>>>> links to the change in the recentchanges page. And, when the change +>>>> has fallen off the page, the link will still go to the recentchanges page. +>>>> +>>>> First, need to check that guids in rss and atom feeds can have anchors in +>>>> them, and that the anchor is treated as part of the guid. (If the guid +>>>> is interpreted as just "http://url/recentchanges", then it's +>>>> not a very good guid.) If using an anchor for a guid is a problem, +>>>> it could instead generate a random uuid, and use `\[[meta +>>>> guid="urn:uuid:" permalink="http://url/recentchanges"]]` + +>>>>> I had a quick look into this after fixing the "prerequisite", but got +>>>>> bogged down in minor details. Anyway, I'd be happy to help. +>>>>> I think the guid stuff is actually fairly irrelevant, you just need +>>>>> `\[[!meta permalink]]` (and in fact you're using guid incorrectly, by +>>>>> expecting it to be treated as a link). +>>>>> +>>>>> My advice would be: first, fix the bug as reported, by +>>>>> using `\[[!meta permalink="http://blah/blah/blah#change-$rev"]]` (starting +>>>>> anchor names with a number isn't syntactically valid, if I remember +>>>>> correctly, so do have a prefix like "change-" or "rev-" or something). +>>>>> +>>>>> Then, optionally, force the guid too (although it defaults to the permalink +>>>>> anyway, so this shouldn't actually be necessary). +>>>>> +>>>>> Some more explanation of how guids work: it's actually easier to think +>>>>> about them in Atom terms than in RSS terms, since Atom has a clearer +>>>>> conceptual model. +>>>>> +>>>>> The `\[[!meta permalink]]` becomes the `` +>>>>> element in Atom, which contains a link that users can follow; if it's not +>>>>> explicitly given, ikiwiki uses its idea of the page's URL. +>>>>> +>>>>> The `\[[!meta guid]]` becomes the `` element in Atom, which contains an +>>>>> opaque, not-necessarily-resolvable identifier; if it's +>>>>> not explicitly given, ikiwiki uses the same URL as the ``. +>>>>> +>>>>> In RSS the semantics aren't so clear-cut (which is part of why Atom exists!), +>>>>> but the way ikiwiki interprets them is: +>>>>> +>>>>> * `` is the same as in Atom +>>>>> * if `\[[!meta guid]]` is explicitly given, put it in `` +>>>>> (the assumption in this case is that it's a UUID or something) +>>>>> * if `\[[!meta guid]]` is not explicitly given, copy the `` into the `` +>>>>> +>>>>> I believe RSS aggregators (are meant to) compare ``s as opaque +>>>>> strings, so using an anchor there should be fine. Atom aggregators are certainly +>>>>> required to compare ``s as opaque strings. +>>>>> +>>>>> --[[smcv]] + +>>>>>> Here's my attempt at a [[patch]] for anchor-based change permalinks: +>>>>>> . +>>>>>> --[[JasonBlevins]], 2008-10-17 + +[[done]]