Monday, November 08, 2010 at 12:05 AM.

system.verbs.builtins.radio.macros.headLinks

on headLinks () {
	<<Changes
		<<9/13/04; 12:49:42 PM by SK
			<<Added correct closing tag to all links to allow validation as XHTML
		<<12/14/02; 12:05:15 PM by DW
			<<The RSD link was in XML, but the others were not. Changed it so that it's not XML, to be consistent with what's already there.
		<<12/13/02; 9:34:43 AM by DW
			<<Add link to RSD file.
		<<6/2/02; 1:23:31 PM by DW
			<<Created.
			<<http://radio.userland.com/radioMacrosHeadLinks
	local (adrblog = radio.weblog.init ());
	local (pta = html.getPageTableAddress ());
	local (flcategory = defined (pta^.categoryName));
	local (htmltext = "", indentlevel = 0);
	on add (s) {
		htmltext = htmltext + (string.filledstring ("\t", indentlevel) + s + "\r\n    ");};
	bundle { //add RSS link
		local (rssUrl);
		if flcategory {
			local (folder = radio.weblog.file.getCategoryFolder (pta^.categoryName, adrblog));
			rssUrl = radio.upstream.getFileUrl (folder + radio.data.filenames.weblogRssFileName)}
		else {
			rssUrl = radio.weblog.getRssUrl (adrblog)};
		add ("<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"" + rssUrl + "\" />")};
	bundle { //add mySubscriptions.opml link
		if user.radio.prefs.flSaveServicesXml {
			local (f = radio.file.getAbsolutePath (user.radio.prefs.servicesXmlFilePath));
			add ("<link rel=\"subscriptions\" type=\"text/x-opml\" title=\"Subscriptions\" href=\"" + radio.upstream.getFileUrl (f) + "\" />")}};
	bundle { //add rsd.xml link
		local (f = radio.file.getAbsolutePath (user.radio.prefs.rsdXmlFilePath));
		add ("<link rel=\"EditURI\" type=\"application/rsd+xml\" title=\"RSD\" href=\"" + radio.upstream.getFileUrl (f) + "\" />")};
	bundle { //add blogroll(s)
		if defined (pta^.blogRollUrls) {
			local (url);
			for url in pta^.blogRollUrls {
				add ("<link rel=\"blogroll\" type=\"text/x-opml\" title=\"Blogroll\" href=\"" + url + "\" />")}}};
	return (htmltext)}



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.