As you can see in this post, it starts with only the summary, followed by the 'Read more...' link. Clicking the link expands to the full post. Now at the bottom you will find a 'Summary only...' link, that collapses the post back to its summary.
This hack was first implemented by Ramani at Hackosphere. I expanded on it to make it collapsable. Together we developed the finishing touch of hiding the expand/collapse link when there is no need for them.
This is how to implement it.
Back-up your template before modifying it.
Find the includable named 'post' in your template, and change it so that it is exactly as shown below (the code in red has to be added):
<b:includable id='post' var='post'>
<div class='post-body' expr:id='"post-" + data:post.id'>
<b:if cond='data:blog.pageType == "item"'>
<span id='hidelink' style='display:none'>
</b:if><div style='clear: both;'/> <!-- clear for photos floats -->
.... rest of template code ....
Save your template.
In the Settings - Formatting tab go to the bottom and enter the following post-template:
Type your summary here.
Type the rest of your post here.
Now every new post you start will have a fullpost-span by default. If your post is short, you can delete the <span>-tags from the post. The post will be displayed in full, and no links with "Read more..." or "Summary only" will be displayed for that post.
How it works (skip this if you don't like tech stuff).
The changes you made to the code make that every post-body consists of at least 3 span's: the fullpost-span that you entered in the post-template, a span for the 'Read more'-link, and a span for the 'Summary only'-link. Because there might be other spans in your post, each of these 3 spans have a unique id ('fullpost', 'showlink' and 'hidelink' respectively).
When you open your blog on the main page, the post is displayed as follows:
- Summary is displayed (always)
- Full text is hidden (first div, set to display:none)
- Read more is shown (second div)
- Summary only is hidden (third div, set to display:none)
A third function, checkFull, checks if the Fullpost-span exists. If not, both links are hidden.