<% ' Change the above to the location of your Saltshaker file. With RSS ' Where's this file? .FeedLink = "http://www.grazininthegrass.com/rdf.asp" ' ConditionalGet writes the HTTP headers for dynamically generated RSS (including Content-Type: application/rss+xml). I wouldn't recommend this--it's better to write it out as a static file--but it's what this demo file does. .ConditionalGet = True ' There really should be a way of finding this out automatically. It's just stupid otherwise. ' ...there is, just can't be bothered to do it now. .UTCOffset = -5 End With With RSS.Channel ' Simple to start. .Title = "Grass Grazin'" .Link = "http://www.grazininthegrass.com/" .Description = "Can you dig it? I can dig it, she can dig it, they can dig it, oh let's dig it." ' If either of these are non-zero length strings, then you have to deal with them later, too. .Image = "http://www.grazininthegrass.com/images/header/" .TextInput = "http://www.grazininthegrass.com/search/" ' We do want Dublin Core metadata, right? This only adds metadata for the channel element. .DC.Use = True .DC.Language = "en" .DC.Creator = "Mr Big" ' License the feed/weblog. Once a license has been mentioned once, you only need the liocense attribute in future. ' I know this hasn't been mentioned yet, but the internal ordering is Items -> Channel -> Image -> TextInput. .CC.Use = True .CC.License = "http://creativecommons.org/licenses/example2" End With With RSS.Channel.Sy ' Syndication information. .Use = True .UpdatePeriod = "daily" .UpdateFrequency = "2" ' Arbitary date in the past seems to be the way to go. .UpdateBase = DateSerial(2002, 7, 4) End With With RSS.Image ' This gets its URL from RSS.Channel.Image. .Title = "Grass Grazin'" .LinksTo = "http://www.grazininthegrass.com/" ' Once more, this is going to come /after/ the items. .CC.Use = True .CC.License = "http://creativecommons.org/licenses/example1" End With With RSS.TextInput ' Simplicity itself. .Title = "Search" .Description = "Search Grass Grazin'" .Name = "q" End With With RSS.Item ' A-ha, an item. At last! .Title = "Welcome to my weblog" .Link = "http://www.grazininthegrass.com/archival/mmiii/july/4/welcome_to_my_weblog/" .Description = "Hi there & welcome to Grass Grazin'." ' The core of RSS is Really Simple, so make it richer with Dublin Core metadata. .DC.Use = True ' If you're doing dates like this (recommended), make sure you know whether your server is dd/mm/yyyy or mm/dd/yyyy. Be cool, pay attention to server localisation settings. .DC.Date = #07/04/2002 12:39# ' So this is how a license actually works. .CC.Use = True .CC.License = "http://creativecommons.org/licenses/example2" .CC.Permits = "Reproduction|Distribution" .CC.Requires = "Copyleft" ' If we don't do this, the next item will have these properties until over-written, and this item won't be added to the feed. Never leave it out. .AddToFeed End With With RSS.Item ' Basic info once more. Are you getting the hang of this? It's easy when you know how. .Title = "Something I forgot" .Link = "http://www.grazininthegrass.com/archival/mmiii/july/4/something_i_forgot/" .Description = "Oops." ' Dublin Core once more. .DC.Use = True .DC.Date = #07/04/2002 13:00# ' A different CC license, also used by the image. .CC.Use = True .CC.License = "http://creativecommons.org/licenses/example1" .CC.Permits = "Reproduction|Distribution" .CC.Requires = "Notice|Attribution" .CC.Prohibits = "CommercialUse" .AddToFeed End With ' Write our RSS. That wasn't so hard, was it? You can validate this feed at http://feeds.archive.org/validator/ Response.Write(RSS.Write()) Set RSS = Nothing %>