Blogger Unofficial FAQ blog

The blog formerly known as Blogger archive/template troubles, featuring
fixes for problems with Blogger's archives, templates, and more

General - Where to get help

It's bad enough that you're having trouble with Blogger, but when you can't even figure out where to look for help, it's even worse. Never fear, there are some places to look.

First, if you think it's a problem with Blogger, and not just that you are having trouble figuring out how to use it, log it in control.blogger.com, with a subject line that will tell someone what the basic problem is at a glance. Even if you are a Free user and it tells you that they probably won't respond, do it anyway, just in case someone glances at the subjects and notices that a couple dozen users have reported the same problem with Free Blogger in the last five minutes.

Beyond that, the first step is to see if your question has already been answered. Looking here is a good start, and for Blogger Pro problems there's also my Pro FAQ, and the Blogger Support page and the Blogger Knowledge Base answer lots of common questions. If something in either of my faqs is close, but not quite it, you're welcome to ask a more specific question in the comments for that entry.

Still, there's no way I'll answer everything in a faq, and it has to be frequently asked before it can be faq'd. Since it looks like the Blogger Discuss forum isn't coming back, and I never meant for my Open Post feature to be a way to ask questions (it was supposed to be a way to offer answers, but there apparently isn't as much demand for a way to do that), I've started an alternative Blog help forum, where you're welcome to ask anything, as long as you remember that I'm not a Pyra/Google employee, so I can't fix it, I can only tell you how to use it, and sometimes how to work around the trouble spots.

Update: oops, forgot all about the mailing lists: if you are using Pro, there's a Yahoo Group at bloggerPro2, and for Classic, there's a Group at blogger_user_support. One nice feature of both is that there's a chance you'll get an answer from someone who isn't me, and in the case of bloggerPro2 it might even be a Blogger employee (blogger_user_support is not monitored by Blogger employees in any way, shape, or form, so there's not much point in screaming at them there, or posting about things that only they can fix, other than to find out for sure that it isn't just happening to you).



Archives - Missing archives II

Sometimes just the standard turn 'em off, turn 'em on trick to persuade Blogger to republish your archive index with all the archives included isn't enough. One thing that can help you convince Blogger to give you back your links is to add a post: if you don't have a post in the current archive period, Blogger can't be bothered to give you anything but your first archive link (yes, that is why I'm doing this as a new post, rather than adding it to the previous missing archives post).



Templates - Complete guide to tags

Tags that work anywhere

<$BlogURL$>
Replaced with: The URL in the blog's Settings.
Usage: A good value for a "home" link, or the "back to current" link in an archive template, e.g.

<a href="<$BlogURL$>">home</a>

Can also be used as a base href, to make relative links work in both the main page and in archive pages in a separate directory.

<$BlogTitle$>
Replaced with: The Title in the blog's Settings.
Usage: The title in the page, e.g.

<h1><$BlogTitle$></h1>

and also in the title tag in the <head> section (which is displayed at the top of the browser window), e.g.

<title><$BlogTitle$></title>

<$BlogDescription$>
Replaced with: The Description in the blog's Settings.
Usage: A subhead in the header, or at the top of a sidebar, e.g.

<h2><$BlogDescription$></h2>

Note that some people will have a blank Description, in which case the published blog will have "<$BlogDescription$>-Value" in place of the description.

<$BlogArchiveFileName$>
Replaced with: The Archive Filename in the blog's Settings.
Usage: Either a link to the archive index page (for blogs with a separate index page), e.g.

<a href="<$BlogArchiveFileName$>">archives</a>

or the script tag that loads the archive links (for blogs that include links with Javascript), e.g.

<script type="text/javascript" src="<$BlogArchiveFileName$>"></script>

Note that Blogger doesn't know about the path to the archives (except when it is ftping), so if the archives aren't in the same directory as the main page, you need a path in front of <$BlogArchiveFileName$>, either http://www.example.com/archives/ or /archives/ starting with a slash and going from the server's root directory.

Tags that only have meaning between <Blogger> and </Blogger> in the main template

<BlogDateHeader>
<$BlogDateHeaderDate$>
</BlogDateHeader>

Replaced with: The date for a set of posts on one day, in the format specified in Date Header Format in the blog's Settings.
Usage: These three tags go together: either you use all three, or none. No other Blogger tag has meaning inside <BlogDateHeader> to </BlogDateHeader>, but you can use any HTML you like. This section only appears once per day, typically before the first post, no matter how many posts there are in that day. Along with producing the actual date header, <BlogDateHeader> can be used (together with <BlogDateFooter>) to group posts from a day together. For example, to put all the posts from one day in a table:

<BlogDateHeader>
<table>
<tr>
<td><$BlogDateHeaderDate$></td>
</tr>
<tr>
<td>
</BlogDateHeader>

Then, the <td>, <tr>, and <table> would be closed in the <BlogDateFooter>. More elegantly, using CSS:

<BlogDateHeader>
<div class="day">
<h3 class="date"><$BlogDateHeaderDate$></h3>
</BlogDateHeader>

<BlogDateFooter>
</BlogDateFooter>

Replaced with: No Blogger tags have meaning inside <BlogDateFooter>, only HTML.
Usage: Either as a separator between days, or to close HTML tags opened in <BlogDateHeader>. Just like <BlogDateHeader>, there will only be one <BlogDateFooter> per day, after all the posts for that day. For example, to close the table-per-day example above, use:

<BlogDateFooter>
</td>
</tr>
</table>
</BlogDateFooter>

or, to close the CSS version:

<BlogDateFooter>
</div>
</BlogDateFooter>

To separate days when you aren't grouping the posts in a table or div, use any HTML that suits you, e.g.:
<BlogDateFooter>
<br><br>
<hr>
<br><br>
</BlogDateFooter>

<$BlogItemBody$>
Replaced with: The text of the posts.
Usage: Because a post can contain any sort of HTML, including lists and tables, if you wrap a tag around <$BlogItemBody$> for formatting, it should be a block-level tag like

<div class="postbody"><$BlogItemBody$></div>

In any case, never, ever, use

<p><$BlogItemBody$></p>

because "Convert Line Breaks" changes a return on a blank line in a post into a <p>, your formatting will end after the first paragraph in a post, baffling your template user.

<$BlogItemAuthor$> or <$BlogItemAuthorNickname$>
Replaced with: The values in the profile for the user making the post.
Usage: Either directly, as text, e.g.

Posted by <$BlogItemAuthor$>

or inside a tag, e.g.

<a href="<$BlogItemAuthorURL"><$BlogItemAuthor$></a>

If you are designing a template for general use, like at BlogSkins.com, use <$BlogItemAuthor$>, because everyone has one of those, but for a template for your own use, use <$BlogItemAuthorNickname$> if you want a cutesy tag, so that you can leave your name in your profile as an actual name. That way when you post in the Blogger Discuss forum, your post will be identified by your name, which makes you seem reasonable, rather than by "Jumbalo's Giant Talking Penis", which will cut down on the number of replies you get.

<$BlogItemAuthorEmail$>
Replaced with: The email address in the profile for the user making the post.
Usage: Together with <$BlogItemAuthor$>, to make a mailto: link, e.g.

<a href="mailto:<$BlogItemAuthorEmail$>"><$BlogItemAuthor$></a>

<$BlogItemAuthorURL$>
Replaced with: The URL in the profile for the user making the post.
Usage: Rarely used, in team blogs, to make a link to the home page for the user making the post, e.g.

<a href="<$BlogItemAuthorURL$>"><$BlogItemAuthor$></a>

<$BlogItemDateTime$>
Replaced with: The date and/or time of the post, in the format specified in Timestamp Format in the Settings for the blog. By default, set to time only, but for a template that lists a date and time for each post, rather than using a <BlogDateHeader>, can be set to include the date as well (not a good idea in a BlogSkin, since it requires extra instructions).
Usage: Either used alone as text, e.g.

at <$BlogItemDateTime$>

or commonly used as the link text in a permalink, e.g.

<a href="<$BlogItemArchiveFileName$>#<$BlogItemNumber$>"><$BlogItemDateTime$></a>

<$BlogItemArchiveFileName$>
Replaced with: The filename for the archive file where the post appears.
Usage: in permalinks.

<$BlogItemNumber$>
Replaced with: The unique number for the post.
Usage: in permalinks, and as the target for the permalink.

Permalinks:
Several of the Blogger tags are used to build permalinks, which are the links for each post that lead to that post's permanent location in the archives. To make permalinks work, you need two sets of tags. Before the <$BlogItemBody$> tag, include

<a name="<$BlogItemNumber$>"></a>
(or <a id="post<$BlogItemNumber$>"></a> if you insist on XHTML)

Then, for the link itself, use

<a href="<$BlogItemArchiveFileName$>#<$BlogItemNumber$>"><$BlogItemDateTime$></a>
(or <a href="<$BlogItemArchiveFileName$>#post<$BlogItemNumber$>"><$BlogItemDateTime$></a> for XHTML)

Since it may not be obvious to everyone what the link is, even if you use "link" as the text rather than the post time, including title="Permanent link to this item in the archives" is a good idea.

Tags that only have meaning between <Blogger> and </Blogger> for Blogger Pro

<PostSubject>
<$BlogItemSubject$>
</PostSubject>

Replaced with: For posts with a title, everything between the <PostSubject> tags is included, with <$BlogItemSubject$> replaced by the title of the post. For posts without a title, nothing is included.
Usage: Format the title with any HTML you like, as long as you don't depend on it, since it won't be included when there is no title (don't open a tag in the title, intending to close it after the post). For example:

<PostSubject>
<h4 class="postTitle"><$BlogItemSubject$></h4>
</PostSubject>

Tags that only have meaning between <Blogger> and </Blogger> in the archive template

<$BlogArchiveLink$>
Replaced with: The filename for each archive page.
Usage: as the href for an archive link.

<$BlogArchiveName$>
Replaced with: The date for each archive page, in the format 03/10/2002 - 03/16/2002
Usage: as the link text for an archive link, e.g.

<a href="<$BlogArchiveLink$>"><$BlogArchiveName$></a>

Tags that don't work anywhere:

Although the "Template Help" at the bottom of the main template editing page has listed it for more than a year now, <$BlogItemURL$>, which apparently had something to do with the first version of Blogger Pro, doesn't have any meaning, and isn't replaced by anything.



General - Discuss forum won't let you post

Some odd problem—probably related to the way that the Blogger Discuss forum uses browser sessions rather than the cookie that the rest of Blogger uses for id—is causing some people to be completely unable to post in the forum, because Blogger ignores the fact that they are already signed in, and then ignores their attempts to sign in again in the forum. If you are one of the afflicted, consider the comments for this post to be your own private support forum, until Blogger's forum gets fixed. Even if you don't have a problem, feel free to leave your name on the list of the afflicted, in hopes that it will make a difference (or make you feel less singled-out by Blogger).

Maybe the slightly faster response time (when I'm home, and online, since comments are emailed to me) will make up for the fact that there also seems to be a related problem, where you are unceremoniously logged out of Blogger itself, generally without knowing it while you are in the middle of typing a long post. That problem totally sucks, and the only advice I have is to either type your posts in a text editor, like Notepad, and then paste them into Blogger, or use an API client like w.bloggar so that you don't have to worry about what Blogger is doing while you type a post.



General - BlogThis/IE6 installer and remover

If you want to use the fix for right-click BlogThis on IE6, but you absolutely, positively don't want to do your own registry editing, I put together a set of Windows install programs to do the work for you: one set for Pro and one for Classic, with the standard BlogThis and my new favorite BlogQuote, which puts the highlighted text in an italic blockquote so your readers can tell what's quote and what's you. If you can do your own registry editing, please do (the install programs are around 280KB, just to install a <1KB file and a registry key, so it's a lot of extra bandwidth, but if you need it, you are certainly welcome to it).

Also for BlogThis: if you have installed the right-click BlogThis from the settings page for a blog, which gives you a version that only works for that blog, and you want to delete it without having to edit your registry, I've got a deBlogThis page which will generate a .reg file that is the mirror image of the one you installed: once you tell me the name of the blog (what's inside the parentheses on the right-click menu), you just need to run the generated file, click OK, and restart IE to get rid of the old useless BlogThis (Whatever) entry. (Doesn't work for Windows 95, I'm afraid: you're on your own, but then, you're used to that by now, aren't you?)



Archives - Custom Javascript

If you are using Javascript to include your archive links in the main page (or are willing to switch), you might want to try out my new archive script generator, which gives you the choice of newest links first or oldest first; a select (dropdown) menu, list of links, or the four links closest to the current page (newest four for the main page, two newer and two older for an archive page) with a link to show all the archives; your choice of various date formats (including one date or both for weekly archives); and optional text or html to add before or after each link.

Special bonus: it's less complicated to use than it is to explain: click a few radio buttons, pick a format from a select list, and then copy and paste, and you've got custom archive links.



Templates - Adding your blog to an existing page

Kate's How to Add Your Blog to an Existing Page, in Eight Easy Steps:

  1. Click on "Template" (across the top of the screen when you're editing your blog).
  2. Copy the code in your current template (and your archive template, under "Archive") and paste it into a text file. Save it somewhere safe in case you run into problems.
  3. Copy the code for your current page. Paste it into Blogger. (Don't forget to update your archive template, if necessary.)
  4. Add the Blogger tags where you want to posts to appear (use your old template as a model).
  5. Save your template by clicking on the button at the bottom of the text area.
  6. Publish.
  7. Look at the updated blog. Do you like it? If so, republish your archives, too. If not, replace the new code with your backed-up old template.
  8. Let us know if you run into problems along the way--error messages, template comes out wrong (give URL and the template code), etc.




Templates - Better permalinks on Blog*Spot

(Updated Friday, May 31, 2002)

Background: When I first started using Blogger and Blog*Spot, you had to put "archives/" in front of every archive-related tag (archive links and permalinks) for a Blog*Spot blog to work correctly. In fact, I made my Blogger-help bones telling people how and where to do that. Then, in August 2001, Ev changed the way Blog*Spot worked, so that any request for an archive file was redirected to "/?/whatever.html", which simplified things considerably (it worked the same whether you requested "/whatever.html" or "/archives/whatever.html"), but eventually someone noticed that if you clicked on a permalink created by "<$BlogItemArchiveFileName$>#<$BlogItemNumber$>", then although you went to the right spot in the archive file, the <$BlogItemNumber$> would disappear from the browser's address bar, so people who tried to link to a post by clicking the permalink and then copying the address from their browser (rather than right-clicking the link and selecting "copy shortcut") would end up linking to the top of your archive file. I started recommending that people include "/?/" in front of the Blogger tags that produce the permalinks, so that the item number would be preserved in the address bar.

Fast-foward to May 2002: Ev has now fixed the "disappearing item number" problem for people who didn't apply my fix, but his fix has now transferred the problem over to people who implemented my fix. Now, if your permalinks are created by "/?/<$BlogItemArchiveFileName$>#<$BlogItemNumber$>" they work just like links without the "/?/" used to: click the permalink, the item number disappears from the address bar. The fix is just to take the "/?/" out of your template again. Existing links from other pages will still work (though the item number won't show in the address bar), and new links will work as expected, whether they are produced by right-clicking or left-clicking the link. Also, if you are still using "archives/" or "/archives/", now is the time to take them out: "/archives/" will work sort of approximately (if you don't have a template with images: if you do, they may or may not end up showing in your archive pages), but "archives/" won't be at all satisfactory (in an archive file, the permalinks will point to "archives/archives/whatever.html", which won't be found).



FTP - Unable to get input/output stream

The problem with this problem is that it is not a problem, it's a symptom, and a symptom of lots of different problems, like a runny nose might mean you have a cold, or an allergy, or the flu. So someone with the flu of a cable company that doesn't allow connections from outside its network will tell you that's the problem, but someone with the allergy of a DNS problem will tell you that you just need to change from the name of your ftp server to the IP address.

All that "unable to get input/output stream" means is that Blogger's publishing program told its ftp program "send these files to this address" and the ftp program said "I can't connect to that address". There are dozens of reasons why it might not have been able to connect.

The first thing to check is whether it's down for everybody or not: scan the "recently updated" list on the front page, and check the ones that are not on Blog*Spot to see whether they seem to have a new post (which can be difficult to tell, since you don't know what time zone their <$BlogItemDateTime$> reflects). Generally, though, if it's a problem for everybody and it hasn't just happened, there will be three or four different active threads at the top of Discuss.

If it looks like some people are successfully publishing via ftp, make sure that your host's ftp server is actually up and taking connections, by connecting with an ftp client like Fetch, WS_FTP, or CuteFTP, from your computer. If you can't connect, Blogger probably won't be able to either. Check your host's support page (if any) to see if they know it's not working, or whether they changed the server name without bothering to tell you. If you can connect but Blogger can't, there are three possibilities: Blogger may be trying to connect to the wrong address, or if your host is also your ISP they may not allow ftp connections from computers not connected through their network, or there might be a problem between Blogger and your host that doesn't exist between your computer and your host, either a routing problem, or your host's ftp server doesn't like something about Blogger's connection attempts.

Change of address

The single most successful fix is changing your FTP Server in Settings from the server name to the numeric IP address. You can find the IP address at samspade.org, or in Windows by Start menu -> Run -> command.com -> ping ftp.myhost.com (obviously, replacing ftp.myhost.com with the actual name). Note that even if it works, you probably won't want to leave it as the IP address forever, since one of the reasons we use names rather than IP addresses is so that ftp.myhost.com doesn't have to stay at the same address forever.

Some people with virtual domains (where ftp.mydomain.com is redirected to someserver.bighosting.com anyway) have reported success with changing the FTP Server setting from ftp.mydomain.com to mydomain.com (and then, next time they get the error, changing back to ftp.mydomain.com). Why that would work is a little puzzling, unless Blogger is caching an old IP address for ftp.mydomain.com and the change forces it to look up a new address. Note that you do not want to do that if your FTP Server is something like ftp.geocities.com - it only works if your host redirects all ftp requests for your domain based on what port the request is going to, rather than having the subdomain ftp go to a different IP address than other subdomains.

My host is my ISP

If you are trying to use Blogger with the web space that you get along with your internet connection, especially your cable internet connection, and you get "unable to get input/output stream", chances are good that your ISP only allows ftp connections from computers connected to their network, so that ftp works just fine from your computer, but not from Blogger. You can see whether this is the problem by trying to connect with an ftp program on another computer that isn't connected to their network, at work or on a friend's computer. If you can't connect that way, then Blogger probably can't either (though it can be hard to tell with an overloaded host: when ATT first moved former @Home customers over to upload.attbi.com it wasn't at all clear if they really didn't allow connections from outside their network, or if they were just constantly overloaded. Of course, combining the worst features of a telephone company and a cable company, we should have guessed the truth: you can't upload to attbi.com from Blogger, or a public library, or a friend's house, or at work, or an Internet cafe, or.... Idiots.).

And if he still doesn't answer?

If there is a routing problem between Blogger and your host, there isn't much you can do but wait for it to clear up. Worse yet, there really isn't any way to tell if that's the problem, unless you can find a public traceroute server that's operating in the same Exodus data center as Blogger. You just have to wait, and hope that it will get better. However, if your host offers decent technical support, ask them to check their ftp log to see whether connection attempts from Blogger are getting through at all (the connections come from 64.41.146.217 (granfalloon.pyra.com) and 64.41.146.215 (leap.pyra.com) rather than anything.blogger.com, so be sure to tell them that or they won't find any connections attempts at all). Interestingly enough, a couple of times when I've suggested that people try this, their host has responded "It should work now", and it does, implying that something in their server setup was screwed up and causing the problem. So it's worth trying, if all else fails.



General - Right-click BlogThis and IE6

So you just had to download Internet Explorer 6 (or buy a new computer that came with it), and now you find that the right-click version of BlogThis gives you a script error everywhere except at www.blogger.com, and you would like to fix it. Marcus has your fix, until Ev. gets around to making the incredibly simple change in the Blogger version of the script. [Additional discussion of the problem in Discuss]

Upgraded to Pro and need to upgrade your BlogThis? If you are using the IE6 fix, just open the file on your computer, and change www.blogger.com to pro.blogger.com or if you are still using the original, run regedit, search for blogthis, and change the (Default) key's value from www to pro.



Archives - Default archive template

Even though there is a link at the bottom of your archive template page claiming to lead to the "default archive template", there is no such thing (thus the 404 error when you click the link). There are two styles of archive links: a separate archive index page (you click a link in your main page, and a separate page opens with links to your archive files), or links included in the main page with javascript. For a separate archive index page, your archive template needs to contain the html for an entire page, while for included links it will only contain the code to create the links.

Separate archive index page

Link to your archives in your main template:

<a href="<$BlogArchiveFileName$>">Archives</a>

Then, to create your archive template, copy your main template, paste it into your archive template (replacing anything that is there now), and replace the <Blogger> to </Blogger> section with:

<Blogger>
<a href="<$BlogArchiveLink$>"><$BlogArchiveName$></a><br>
</Blogger>

Links included in main page

In your main page, where you want the links to appear:

Archives<br>
<script type="text/javascript" src="<$BlogArchiveFileName$>"></script>


In your archive template, delete every single character that is there now, and include only:

<Blogger>
document.write("<a href='<$BlogArchiveLink$>'><$BlogArchiveName$></a><br>");
</Blogger>
if (location.href.indexOf("archive") != -1) {
document.write("<a href='<$BlogURL$>'>current</a>")
}

In either case, if your blog is not on Blog*Spot, and if your archives are not in the same directory as your main page, you will need to include a path in front of <$BlogArchiveFileName$> in your main template, and for included links, in front of <$BlogArchiveLink$> in your archive template. The path can be either an absolute path (starting with http://www.domain.com) or a server-rooted path (starting with a / and listing all the directories from the server's root directory, e.g. /philringnalda/blog/archives/<$BlogArchiveFileName$>), but it has to work in both your main directory and your archive directory.



General - Number of posts on the main page

There are two confusing things about the number of posts that appear on your blog's main page. The first is the relationship between archive frequency and the posts on your main page: there is none. Whether you have your archives set to weekly, monthly, or none, the number of posts on the main page is controlled by a separate setting. To change it, from the page where you post to your blog, click the "Settings" button on the top toolbar, then look at the "Formatting" section. If you haven't changed it yet, the first setting will say "Show 7 days' posts on main page". You can change the number, and whether to show that many posts, or that many days' posts. Here's the second confusing thing: days' posts doesn't refer to a number of days, it refers to a number of days on which you posted. If you only post on Mondays, then "Show 7 days' posts" will show posts from the last seven Mondays, or seven weeks worth of posts. "Show 7 days' posts" only shows a week of posts if you post every day. Once you set what you want to show, scroll down to the bottom of the page and click "save changes", and when you return to the posting page, click "publish" to have your new settings take effect.



General - Fixing bad posts

When you make an error in the html in a post (usually by forgetting either the closing quote or the </a>), it can disable the [edit] link in the Blogger editing window, preventing you from fixing the post. To fix it, click the "enter safe mode" link on the left side of the center black bar (just inside "view web page") to stop Blogger from interpreting the html in your posts in the lower window. That will let the [edit] link work again. Once you have fixed the post, click "Post & Publish", and then "turn off safe mode" to get back to normal.



General - Troubleshooting 104 errors

First, make sure that it's just you: if you check the "recently updated" on the main Blogger page and see that there isn't anything new (translating to Pacific (Standard|Daylight) Time), then when you check Discuss you'll probably find that it is something happening to everybody, and all you can do is wait for it to be fixed.

If it's not happening to everyone, and you know what you did just before it stopped working, that's the place to start.

If you were just posting, look at your page, and see what the last post to successfully publish was. Then, take a close look at the first post to not publish: it probably has some special charaters, or invisible control characters, which are causing Blogger to choke. Click the edit link at the end of the post, and then copy and paste the post into Notepad, to see if there is anything that ends up displaying as a square box, rather than a character. If you can't see anything, try just replacing the post with a placeholder (I favor the word "Placeholder"), and try to publish.

If you were editing your archive template, you probably did something to cause Blogger to think that it no longer includes <Blogger> and </Blogger>. They both have to be in there, with a capital B and everything else lowercase, and you can't have any unclosed tags or tags that are missing quotes, or Blogger will miss seeing one or the other.

If you were editing your main template, and your error is 104 StringIndexOutOfBounds, take a close look at the tags between <Blogger> and </Blogger>, looking for missing end tags or missing quotes.

If your error came from a post, but it has been long enough that the post has fallen off your main page, so that the main page publishes, but republishing your archives gives a 104 error, try this: change your archive frequency to monthly, so you don't have too many to republish, and then republish each archive one by one (click the little recycling icon in the "republish" column, rather than "republish all"). Once you track down which month (or months) won't publish, change your frequency to weekly, and republish each week in the month(s) that don't publish. Then, once you know which week has a problem post, you can look at them one by one until you find the post with the problem characters.

If none of those seem to fit, and you are getting desperate, I'd like to see whether it's a form of 104 that I haven't seen before. If you are brave enough to trust a stranger, send me an invitation to join your blog at philringnalda@barrysworld.com (send an invitation by clicking "Team" then "Add Team Members") and then after I've joined, make me an administrator for the blog so I can edit posts and templates.



General - How to delete a blog

First, be sure that this is what you want to do: deleting a blog means deleting the templates, settings, and all the posts from Blogger. If you only want to delete one post, just click the [edit] link below that post in the bottom part of the "edit your blog" window, and then click the "Delete" button over to the left of "Post" and "Post & Publish".

If you really want to delete the whole blog, how you go about it depends on whether the blog was on Blog*Spot or another host.

For a blog anywhere but Blog*Spot, click the Settings button on the top toolbar, and scroll down to the bottom of the page. Click "delete this blog". Then, use your FTP program to connect to your host and delete the files. If you have an industrial-strength need to get rid of every single trace of your blog (what were you thinking when you posted that?), you will want to get yourself removed from Google as well, so that people can't view your page in Google's cache after the blog itself has been deleted. After you delete the files, go to their automatic url remover, create an account, and then choose the "remove an outdated link" option (you will need to remove every archive page they have indexed, as well as your main page).

To get rid of every trace of a blog on Blog*Spot, before you delete the blog you will need to edit your main template, deleting the <$BlogItemBody$> tag (and possibly more, like the <$BlogItemAuthor$>), and then publish the blog and republish your archives before you delete the blog. Probably the simplest way is to use "choose a new template", select the "Plain" template (which has the least to delete), and then delete everything between <Blogger> and </Blogger> (leaving just those two tags).

To get your Blog*Spot blog removed from Google as well, include <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> somewhere between the <head> and </head> tags in your stripped-down template. After you publish and republish all, be sure the tag appears in all the pages Google has indexed. Then, go to Google's automatic url remover, create an account, and then choose the "remove a single page using meta tags" option and tell them to remove your main page and all the archive pages they indexed.

If you have already deleted a blog on Blog*Spot before checking here, the closest you can come to deleting the files is to create a new blog with the old Blog*Spot address, make one post saying something like "Nothing to see here", post & publish, and then delete that blog.



General - Adding reader comments to your blog

On Blog*Spot, or off if you don't have server-side scripting (PHP, ASP, CGI):

Simple to install, but not much control over your comments:

Not so simple, but you control your own comments:

Not on Blog*Spot, with server-side scripting

Got PHP?:

Got ASP?:

Got Perl?:

You might also find something I missed in Marcus' list. Know of another script? Leave a comment...



Archives - Switching between included and separate

So you found a template you like, but it includes the archive links in the main page and you want a separate archive index page, or vice versa. Here's how to switch between the two archive link styles.

Included to separate

If you want to switch from including the links in the main page to a separate page, first, replace the line in your main template that includes the links (<script type="text/javascript" src="<$BlogArchiveFileName$>"></script>) with a link to your archives. Because this link has to work both in your main directory and in your archives directory, it should be either an absolute url (starting with http://, e.g.
<a href="http://www.example.com/blog/archives/<$BlogArchiveFileName$>">Archives</a>) or at least a server-rooted url (starting with a slash, and listing the path from the server's root directory, e.g. <a href="/blog/archives/<$BlogArchiveFileName$>">Archives</a>). The exception is if your blog is on Blog*Spot, where the server takes care of the subdirectory for you, and you can just use <a href="<$BlogArchiveFileName$>">Archives</a>.

After you save your changes to the main template, go back in and copy your entire main template (right-click, select all, right-click, copy), then switch to your archive template, delete everything that is there, and paste in your main template. Scroll down to the <Blogger> section, delete everything between <Blogger> and </Blogger>, and replace it with:

<a href="<$BlogArchiveLink$>"><$BlogArchiveName$></a><br>


Save your changes, publish your blog, and then republish all your archives.

Separate to included

To switch from a separate archive index page to including the links in the main page, first replace the link to the archive index page in your main template with:

Archives:<br>
<script type="text/javascript" src="<$BlogArchiveFileName$>"></script>


Save your changes, and edit your archive template. Delete every single character in your archive template, and replace it with just:

<Blogger>
document.write("<a href='<$BlogArchiveLink$>'><$BlogArchiveName$></a><br>")
</Blogger>

Because the links will be included in both your main page and all your archive pages, if your blog isn't on Blog*Spot you will need to include the path to your archives before <$BlogArchiveLink$>, either as an absolute url (http://www.example.com/blog/archives/<$BlogArchiveLink$>) or a server-rooted url (/blog/archives/<$BlogArchiveLink$>). Save your changes, republish your blog, and republish all your archives.



Archives - Messed up html

Are the archives for your Blog*Spot-hosted blog completely screwed up? Do they repeat at seemingly random intervals? Are there sections of raw html poking through? In short, do they look like my June archive did for a while?

Back on July 31st, when Ev moved Blog*Spot to a new server, something happened to corrupt some (or maybe a lot) of the archive files, putting in repeated sections of html and thousand-byte sections of 00 after 00 (which will look like spaces unless you view source in a hex editor). In some cases, simply republishing the archives cleared up the problem, but in others, when you republished you got a "553 Permission denied" error (side note: if you want to actually see the ftp log from that non-resizable window, just right-click, select all, right-click, copy, and paste it into a text editor). The good news is, the permission problem is now fixed, and you only need to republish the messed up archives one more time to clear things up. If it still doesn't work, email ev AT pyra.com and/or leave a comment here.



Templates - Changing your name

Want to change your name, now that you've realized that Blogger posts the full name you gave when you signed up? Here's how. Click the "Team" button on the top toolbar, then click your name, then click "Edit My Profile" over in the upper right corner.

There are two approaches to naming yourself: if you want to change the name that appears in your blog, but you don't mind using your full name in Blogger Discuss, just put the name you want to use in your blog in the "Nickname" field, click "save profile", then edit your template by clicking "Template" on the top toolbar. Look for the byline (down toward the bottom: in most templates it starts out <span class="byline">) and change <$BlogItemAuthor$> to <$BlogItemAuthorNickname$>. Click "save changes" and then "publish". Check your main page to be sure it worked, and then republish your archives to make the change there by clicking the "Archive" button on the top toolbar, then clicking "republish all".

If you want total anonymity, change the "First Name" and "Last Name" fields (you have to put something in both, but "Last Name" can just be a single space if you only want one word), click "save profile", republish your blog and your archives, and then sign out of Blogger and close your browser to get Discuss to notice your new name.



General - Images in posts on Blog*Spot

One of the most often asked questions in Blogger Discuss is "how do I add images to my blog on Blog*Spot?" The biggest problem is that you have to find a host for your images who is willing to allow them to be delivered to a web page on another server. Between the general end of free anything and so many people wanting to post pictures on ebay and hotornot, there are very few free hosts who will allow offsite linking of images, and those that do today may not tomorrow. The best solution is probably to move out of Blog*Spot, but lots of people don't want to hear about anything that involves FTP. If your ISP gives you free webspace, chances are fairly good that they allow offsite linking. You can find out whether a host will work with Blog*Spot by signing up, transfering an image, and then including it in a post, but clicking "Post" rather than "Post & Publish". If the image shows up in the bottom frame, it should show up on your blog as well (be sure to clear your cache ("Delete Temporary Internet files" in IE-speak) if you viewed the image in your browser after you uploaded it).

Once you find a host that will allow offsite linking, include images in your posts with
<img src="http://youraccount.yourhost.com/filename.jpg">.

If you want your page to load faster, include width="100" height="50" (well, whatever they really are) in the img tag after the source. Don't know the width and height in pixels? You probably have an image editing program that will tell you, or, view the picture in your browser after you transfer it, then right click on the image and select properties, and look for "Dimensions" which will tell you width x height.

If you want to do things right, and be nice to people with images turned off (there are a lot of us), include alt="A picture of me on a pony" as well.

To get the text of your post to flow around the image, use align="right" (or left, or middle, or top, or bottom).

All together, your link would be something like:
<img src="http://www.philringnalda.f2s.com/ursy.jpg" width="294" height="424" alt="Picture of Ursy - hard on the couch, good for the soul" align="right">



Templates - Using &

As "A note about ampersands and JavaScript" at the bottom of the template editing page explains, in order to let you edit HTML character entities like &copy (the © character), the editor converts & to &amp;. Fine and dandy, unless you use a JavaScript like the newsfeed from moreover, or most common rollover scripts for pretty menus, which use &&, the JavaScript AND, or use & in a complex url in a document.write. Then you've got troubles, because the next time you edit your template, each & is converted to &amp;, which is converted to &amp;amp; the next time, until your template is filled with amp;s and your scripts are broken. My old solution was a horribly complicated scheme involving things like rewriting if (a and b) as if not (not a or not b), and using a variable which was the first character of a long string of &amp;amp;amp;amp;s. Thanks to someone's accidental discovery, my new solution is to simply nest two sets of comments inside your script tag, with the script after the innermost set of comments:

<script type="text/javascript">
<!--
<!--
script here would be messed up
// -->
script here is safe!
// -->
</script>



FTP - To GeoCities

If you have a free account with GeoCities, then you do not have ftp access (as of April 2002), and so you cannot use Blogger to publish a blog to your GeoCities site. However, if you paid for an account on GeoCities, so that you do have ftp access, you may find yourself getting more than your share of "unable to get input/output stream" errors. This appears to be because ftp.geocities.com resolves to eight different IP addresses (209.1.225.146, 209.1.225.192, 209.1.225.193, 209.1.225.194, 209.1.225.195, 209.1.225.227, 209.1.225.228 and 209.1.224.137 as of today), but Blogger doesn't give up and try another if it can't connect to the first one it tries.

Here's my workaround: when you get the "unable to get input/output stream" error, or even when you see that Blogger is taking too long to connect, and you suspect that you will get the error, start your FTP program (CuteFTP, WS_FTP, etc.) and connect to GeoCities. Chances are, it will try one IP address, fail to connect, and then move on to a working address. Write down that address, and once Blogger has given you the error, go to your Settings and change FTP Server from ftp.geocities.com to that IP address. Save changes, and publish. Once it goes through, decide whether you want to gamble on that particular IP address working more often than ftp.geocities.com does, and either change your FTP Server back to ftp.geocities.com, or leave it until the next time you are "unable to get input/output stream."



FTP - Setup basics

Blogger needs three things from you to FTP (well, five if you count username & password, seven if you count archives, but let's not, just yet...).

FTP Server

First is the FTP Server. That tells Blogger what other computer to connect to, nothing more. What that server will be depends on your host. For some hosts it is the usual name with www replaced by ftp: the FTP server for www.geocities.com is ftp.geocities.com. Sometimes it is exactly the same as the usual address. And sometimes, if you have a "virtual domain" hosted through a hosting company's address, it will be something completely different: the FTP server for www.ringnalda.com could be ftp.bigolhosting.com. Your host should have told you what FTP server to use when you signed up. If not, look on their home page for a FAQ, or technical support. As a last resort, call or email them, and ask. Enter the FTP Server as just the name, don't start it with ftp:// and don't include a username and password (phil@ftp.ringnalda.com is just a way of passing the username in the URL).

FTP Path

Once you have entered your FTP Server, you need an FTP Path. This tells Blogger where to put your blog file, relative to the directory that your FTP server puts you in when you first connect. Some hosts will automatically put you in the correct directory, and some will not. Also, if you don't want your blog in the main directory for your account, you'll have to tell Blogger that. The easiest way to determine what your path should be is to log in to your FTP server with an FTP client, like CuteFTP or WS_FTP. Set up a new connection, and only tell the program the host name and your username and password (after all, that's all Blogger will know until you figure out the path). Connect to the FTP server, and take a look at where you end up. That part of the path is what you don't need to tell Blogger. Now, what do you need to tell Blogger? If you are in an empty directory, then Blogger probably doesn't need any FTP Path at all. If you are in a directory that already has your web page(s) in it, then Blogger certainly doesn't need an FTP Path. However, if you see a subdirectory with a name like www or web or public_html, then that will be the start of your FTP Path, if not all of it. Some examples: if your web site is at www.ringnalda.com and you want your blog at www.ringnalda.com/blogger.html, and when you log in to your FTP host you see a directory named www, then your FTP Path is www/ - nothing more, nothing less. If your site is at www.geocities.com/ringnalda/ and you want your blog to be at www.geocities.com/ringnalda/writings/blog/blogger.html, and when you log in you see that you are already in the ringnalda/ directory, then your FTP Path is writings/blog/ and you need to be sure that both those directories exist before you have Blogger try to send files there. The FTP Path is just what you would tell someone to do after they connected to your host, written so that Blogger can understand: "go to the www directory, then to the blog directory" is www/blog/ in Blogger terms.

Blog Filename

The final thing that Blogger needs is the Blog Filename. Blogger thinks it should be blogger.html, which is fine if you are going to put your blog in a directory with some other files, including your main web page that is named index.html (or one of the other default page names). If your blog will be your main web page, or will be in a directory by itself, change blogger.html to index.html so that you can tell people to find your blog at www.ringnalda.com/blog/ rather than www.ringnalda.com/blog/blogger.html. Whatever filename you use, be sure it's the same in Blog Filename and at the end of Blog URL, which is the address Blogger uses when you click "view web page" to see whether your blog made it to its new home.

Username and Password

You have the choice of putting your username and password in your settings, so that you'll never be bothered about them again, or, you can type them in every time you publish (or maybe it's only once a session (it was annoying, so I started always putting mine in the settings)). Some people are worried about having their username and password stored on Blogger's server. If it bothers you, go ahead and type it in each time. Just don't think about how sending it from your computer, to Blogger's server, and then on to your host, lets twice as many people have the chance to intercept it. If horrible things would happen if your username and password were compromised, you should not be using Blogger. Send your blog to a free host, or a paid host dedicated to just your blog, and link to it from your site full of secrets.

FTP Archive Path and Filename

Of course, all that is only enough until you turn on archiving. Then you need an FTP Archive Path and an FTP Archive Filename. If you don't mind having your archives in the same directory as your main page, then the FTP Archive Path is exactly the same as your FTP Path: nothing if you don't need one, www/ or whatever it may be if you do. If you want your archives in a different directory, then your FTP Archive Path is just your FTP Path plus that directory: www/archives/ would be a reasonable choice. Be sure that the directory exists before you try to publish your archives. Blogger won't create it for you. The FTP Archive Filename can be anything you like (as long as it's a legal filename for your host - lots of free hosts are picky about the filenames they accept). I like archive.html - the archives/archive.html is just confusing enough to keep you on your toes.

When things don't work

If you figured out all the things to tell Blogger about your host, and everything was right, when you Post & Publish, you'll be told "Your publish request was sent at" the date and time, with a link for "more info". Click the "more info" and you hope to see "Transfer successful. View page to verify (give it a few seconds). [FTP Log]" - click "View page" to open your blog in a new window. If your post showed up, congratulations! You're done. If not, go back and click the "FTP Log" link, to see if that will tell you what went wrong. Since Blogger thinks the transfer was successful, you either put the file in the wrong place, or your Blog URL is not the same as the place you told Blogger to put your blog.

If you didn't get "Transfer successful" then you should get either an error message from Blogger (Error 210, etc.) or a "Transfer Error". If it is anything but "Transfer Error", write down the exact error message. Really. Write down the whole thing. Sometimes the error message doesn't tell you anything, but when you post in the Blogger Discuss forum that you got "a 5 something error I think" you'll have a long wait for a response! If you got a "Transfer Error", click the "view FTP log" link, and look for the part where your FTP host became surly. The most likely error is "553: no such file or directory" which either means that you didn't create the directory you told Blogger to put the file in, or you are trying to put the file in a directory where you aren't allowed to put it. If you can't make sense of the FTP log, copy the entire thing, and paste it into a message in the Blogger Discuss Getting Started forum, along with your Blog URL, FTP Server, FTP Path, and Blog Filename. If you are concerned about security, delete the "USER username" line in the FTP log before you post your message.



General - Moving out of Blog*Spot

Why leave Blog*Spot behind? Here are two reasons: at Blog*Spot, when Blogger is down, your blog will not be updated. At another host, you can always make updates by hand, FTP them yourself, and then let Blogger overwrite them when it comes back up. The second big reason is to have a place for other files. The biggest demand is for images (hosts like GeoCities and Tripod won't send your images over to a page on Blog*Spot, but they are happy to let you include them if your blog is hosted at their site), or you might also want an external stylesheet, or external Javascripts, or just to more closely integrate your blog with a non-blog web site. So, if you are moving out, here's a few things to make the move go smoothly:

Fix up your template and archives

First, be sure your archives are working perfectly at Blog*Spot. Click the Archive button on the "edit your blog" toolbar, and be sure that Blogger lists archives for all the weeks or months that you've been blogging. Then go to your Blog*Spot site, and click every single archive link to be sure that Blogger has published them. If some of your archives are missing, fix em!

You will want to put a <base href="<$BlogURL$>"> in the head section of your main template, and in your archive template's <head> also if you use the separate archive index page style. See making relative links work for more explanation.

If your blog's new home isn't in the root directory (i.e. www.geocities.com/username rather than username.tripod.com) then you'll need to change your "Home" link in your main template, and in your archive template if it isn't the included links style. The easiest way is to change the link to <a href="<$BlogURL$>">Home</a>. Then it will always be right, no matter where you move your blog.

If you are using permalinks, check your template to see what's in between <$BlogItemArchiveFileName$> and <$BlogItemNumber$> - the %23 that works at Blog*Spot may not work at your new host. Change it to a # just in case.

Next, pick your new host

The most important thing is to make sure they offer FTP uploads, so Blogger can move your files to their new home. The slowest thing to change about a free host is the list of features you see when you are signing up, so if a host looks good, sign up, but be sure to connect with an FTP program and send a test file to make sure they really do allow FTP uploads, before you start trying to move your blog.

Next, if you are using one of the templates that puts the archive links on the main page, instead of on a separate archive index page, be sure that your new host will cooperate with that style of archives. They have to be willing to serve up an ad-free, popup-free page when the page doesn't have <body></body> tags (here's a hint: GeoCities isn't). If they only offer popup ads, you'll have to use another host, or the separate archive index page style. If they offer banner ads, try this: create a text file, with no HTML code at all, but name it test.html and FTP it to your possible new host. Open your browser and type in the address for the test file (e.g. philor.tripod.com/test.html. If it appears ad free, then you can continue to use the javascript links on the main page style.

Finally, you need to figure out your FTP path. The first step is to connect to your new host with an FTP program. When you are connected, if you are already in the directory where you can put files that will appear in your web site, good! You won't need an FTP path. If you need to change to a directory like www or web, make a note of the exact name of the directory, because you'll need it when you change your settings. If you don't want your blog in your main directory, create the directory where it will live, and create the directory for your archives in that directory. If your blog will be in your main directory, create the directory for your archives there. Again, make a note of the exact directory names.

Now, the move itself

So far, you haven't done any real moving: your blog is still at Blog*Spot, and still in working order. That's about to change. First, you need to get your Blog*Spot version of your blog ready to be left behind. If you don't already have a counter on your page, consider adding one, so that you will know when you are no longer getting hits at your Blog*Spot address. Then, on the Settings page, under Formatting, change the "Show __ days' posts/latest posts on main page" to 1 latest posts, so that your main page will have just one post, saying that you have moved. Save changes, and make your final post, including a link to your blog's new home. If you want, you can include a JavaScript redirect in your template, but surely your readers are willing to click a link to find you, aren't they? Post & publish, and make sure that your post showed up. Once you have the single "I'm moving" post on Blog*Spot, change the number of posts/days back to what it was before.

Now for the move. You don't want to give up your Blog*Spot url until you are sure you have things working in a new spot, and you aren't still getting traffic at the Blog*Spot url. Here's how to hang on to your old address until you are sure you don't need it. Open two browser windows. In the first one, log in to edit your blog, and go to the Settings page. In the second one, go to the www.blogger.com home page, and click "create a new blog", type something like "Former" or "Old" and your blog title for the title (so you can tell it from the new home of your old blog) and anything you like for the description, select "host it at BlogSpot", and enter the address for your current blog at Blog*Spot. Click the "I agree..." box, but don't click "next" yet. Leave Blogger waiting patiently while you go back to the first window, and change the "Publish" dropdown menu to "via FTP...". Still no hurry, you haven't really moved until you click "save changes". Enter your new blog URL (including the filename, e.g. http://philor.tripod.com/testblog/index.html) and your FTP server. Enter the FTP path if you have to change directories after you log in with an FTP program (or if you want it in a different directory) without a slash at the front, and with one at the end (e.g. testblog/). Your Blog Filename should be the same name you used in Blog URL, including an extension (.html or .htm). You can either enter your FTP username and password here, or type them in a dialog box every time you publish.

Scroll down to the Archiving section, and enter the archive path you created. If you have an FTP path, put that before the archive directory, and again use a slash at the end, but not at the start, so that you have either testblog/archives/ or just archives/ and enter an archive filename, again with a .html or .htm extension.

Make sure you entered everything correctly, and click "save changes". Now go back to the second window, and click next to create a new blog with your old address. You don't want to publish it, just create it so that nobody takes your address while your back is turned. Once Blogger has created your new blog with the old url, close that window.

Back in the first window, you are ready to publish! Click the publish button, and then win-or-lose, save a copy of the FTP log. If you get an error, click the link to view it in the bottom frame, select it all and copy it into a text file. If Blogger claims to have published successfully, cheer, but also "view ftp log" and again, save it in a text file.

Now, view your web page in its new home. Did it appear? Do you have archive links, and do they work? You almost certainly don't have all your archives, since Blogger rarely notices that it needs to republish old archives. Back in the "edit your blog" window, click the Archive button, and click "republish all". View web page again. Now do you have your archives? If something is missing, take a close look at the FTP log, and see if you can figure out what went wrong. If not, you'll probably have to post in the Blogger Discuss forum, but at least you'll have your FTP log saved, to explain what went wrong. If it all works, congratulations, and welcome to your new home! Be sure to delete the "I'm moving" post from your blog's new home, and be careful not to publish the temporary blog you created to save your address, at least until after a new archiving period (week or month) starts, so that it doesn't overwrite your final Blog*Spot archive until people have adjusted their bookmarks.



Templates - Making relative links work

Blogger makes relative links (links like <a href="archives/archive.html"> are relative, links like <a href="http://www.domain.com/archives/archive.html"> are absolute links) a bit more difficult to manage than usual, because most people keep their archives in a different directory than their main page. If you link to "images/mypic.jpg" in a post, then when that post is archived the link will point to "archives/images/mypic.jpg" and thus not be found. The same thing happens if you put a relative link in your main template, because the archive pages are also created from your main template. Fear not, there are two simple fixes.

Fix one is to use a "base href" tag to tell the browser to start every relative url with the path to your main directory. In your main template, in the <head> section, include the tag <base href="<$BlogURL$>">. If you have the separate archive index page style of archives, include a base href in the <head> section of your archive template as well. The next time you publish or post & publish, all your relative links will start from the directory where you have your main page, whether they are in that directory, or in your archives directory. Just be sure you remember to change the Blog URL in your settings if you move your blog!

The second fix is to use server-rooted paths rather than relative paths: a server rooted path starts with a slash, and lists all the directories from the root directory of the server. For example, if your main page was www.example.com/index.html and your archives were in www.example.com/archives/archive.html, then a server-rooted link to the archives would be <a href="/archives/archive.html">, and a server-rooted link to an image in www.example.com/images/ would look like <img src="/images/image.jpg">. However, if your main page is in www.freehost.com/bunch12/~username/blog/blogger.html, a server-rooted link will start /bunch12/~username/blog/, and using a base href tag will be a whole lot easier (once you get used to it).



Archives - Missing archives

Are some (or all) of your blog's archive pages missing from the index? Worse yet, are some (or all) of your archive pages themselves missing, or not matching your current template? First, from the Blogger editor, click the Archive button on the toolbar. If all of your archives are listed there, clicking republish all should clear things up (unless Blogger is having a temporary publishing problem). If they aren't all listed, here's how to remind Blogger that they exist: click the link for archive settings, and change your archive frequency to no archive, and click enter (don't worry, it won't delete your archived posts); then change the archive frequency back to what it was to start with, click enter, and the missing weeks or months should be back in the list. Click republish all, and they should be back on your site. [stolen from michael paige's late, lamented probs.blogspot.com]



Archives - Rewrite the date format for archive links

Jake has an excellent solution to the problem of ugly 02/04/2001 - 02/10/2001 archive links in the Developer's discussion forum. Once I got interested in using Javascript to monkey with the archive link names, I wrote enough scripts that I put up a web page to house them, and then wrote a script generator to let you produce customized scripts.