toto icon indicating copy to clipboard operation
toto copied to clipboard

Atom Feed ID should not be the article.url

Open grempe opened this issue 15 years ago • 7 comments

Atom Feed ID should not be the article.url

Using the post url as the atom id is not really the best practice. If the permalink changes (e.g. due to a typo) then the atom id will also change resulting in this post showing up again in feed readers (and other issues).

Once set, the ID should never, ever change no matter what.

Perhaps when your rake task generates the post, you can generate an appropriate (e.g. uuid) atom id in stuff it into the metadata of the post (and teach the user to never change this id).

See :

http://diveintomark.org/archives/2004/05/28/howto-atom-id http://www.hesido.com/web.php?page=atomidtimestamp

grempe avatar Feb 06 '10 00:02 grempe

Hmmm, I'll have to figure something out for people who don't use the rake task though. Any ideas?

cloudhead avatar Feb 06 '10 01:02 cloudhead

Can you enforce the presence of a 'atom-id' (or something like that) in the yaml front matter in an article?

If you run the rake task, generate it automagically (and add a comment telling people not to change it!). If you don't run the rake task, and leave 'atomid' blank then throw an error page?

This is a pretty big deal. It seems that 100 times a year someone ports their blog to some new host and changes all of the atom ids. Then I get ALL of their posts since forever showing up as new articles in my feed reader. Blech.

grempe avatar Feb 06 '10 01:02 grempe

And specifying the atomid in the yaml would also allow people who are porting to toto from another blog engine to move their atom id's over as well. If they have a clue that is... ;-)

grempe avatar Feb 06 '10 02:02 grempe

Hmm... I'd rather not be forced to provide additional meta -- should be up to the users. I think best would be to add an option to specify your atom-id in the config, and if you do specify it make rake new generate it too; if you don't, no changes to current setup.

ghost avatar Feb 06 '10 11:02 ghost

What about a git commit hook? I think that could work as well. If users really want to be (ahem) very annoying (cough), they could always not install / disable the hook. The hook could just inspect the YAML head and if the atom ID isn't there, add it. Otherwise, leave the existing ID alone. Should be good, right?

nogweii avatar Mar 14 '10 16:03 nogweii

First of all, I believe this is inappropriate place for this issue, as this is related to dorothy (toto knows nothing about feed creation). Secondly, we can use ctime of article as it's id, will be more than enough IMHO with ability to override in meta data of article.

ixti avatar Aug 10 '11 00:08 ixti

@cloudhead this issue can be closed as well. Feed generation is on dorothy side, so everyone can think for himself how he or she wants to output article IDs. If one want to have "timestamp" based IDs it's as easy as put in config.ru:

module Toto
  class Article
    def id
      self[:id] || File.ctime(@obj).to_f rescue self.url
    end
  end
end

And then using article.id in the index.builder. Of course it can be proposed into the upstream - but I don't think it worth it.

ixti avatar Aug 13 '11 02:08 ixti