JScripts, my Ning app for storing JavaScript includes, has got some upgrades! At Johan‘s prodding I have added the following:
- Include multiple JavaScripts with just one request to save time! It even has a form!
- Tack ?minify on to a script to have JScripts compress it before transfer (more time saving!)
- Tack ?callback=whoever on to have whoever() called after the script has loaded
OpenID is meant as a distributed single signon protocol. Unlike corporate-only systems (ie, Google Accounts) however, you have to sign on at every single site. When I sign in to Gmail I am automatically signed in to Blogger, etc.
While the inability to store ‘cookies’ or similar across domains makes this not 100% possible, I have a suggestion that will make it easier.
Make every page on an OpenID-enabled site accept the openid_url GET parameter. If it is there, authenticate the user using that OpenID and then redirect back to the page the GET string was passed to – minus the openid_url parameter. Thus if I click a link from one OpenID-enabled site (where I am signed in) to another, I can be signed in automatically.
A browser plugin (ie, Firefox extension, or built into the browser as may come in Firefox 3) could be used to store the last-entered value into a form with text input named openid_url (dependent on user settings of course). This value would then be added to the GET request on any URL (or pertinent URL, depending) the browser goes to. OpenID-less sites won’t care, OpenID-enabled sites will automatically sign you in.
Well, not really. ‘Helper’ would be a better word. You upload an old-style template to the form and it translates most tags to the new syntax. It does not force your template to be well-formed (which is required), nor does it properly do attributes with expr: It is meant as a help for converting, not an auto-converter.
Note : especially for crufty or very-much-hacked templates (like mine was) I recommend re-engineering from scratch, from a default Blogger template, or from one of my templates. It is almost easier, and better for you in the long run.
Blogger Classic to New Blogger Template Conversion Helper
I have added a lot of new tags and some corrections to the table.
A few people have asked for something like this. A table of Blogger Classic template tags and their new equivalent. This is not entirely possible because it is not a 1:1 relationship, but I will do my best. This is a post for those who were somewhat literate in the old Blogger and want to upgrade. Another post to check out would be Johan’s original post. Great stuff.
If you have a template tag from Blogger Classic that you don’t see here, post it in a comment and I’ll try to add it. This is a work in progress.
<$BlogPageTitle$> |
<data:blog.pageTitle/> |
<$BlogMetaData$> |
<b:include data=’blog’ name=’all-head-content’/> |
<style type="text/css"> |
<b:skin><![CDATA[ |
</style> |
]]></b:skin> |
<$BlogURL$> |
<data:blog.homepageUrl/> |
<$BlogDescription$> |
|
<Blogger> |
<b:section class=’posts’ id=’posts’ showaddelement=’yes’ growth=’vertical’>
<b:widget id=’PostWidget’ locked=’false’ title=’Posts’ type=’Blog’>
<b:includable id=’main’>
<b:loop values=’data:posts’ var=’post’> |
</Blogger> |
</b:loop>
</b:includable>
</b:widget>
</b:section> |
<$BlogItemNumber$> |
<data:post.id; |
<BlogDateHeader> |
<b:if cond=’data:post.dateHeader’> |
</BlogDateHeader> |
</b:if> |
<$BlogDateHeaderDate$> |
<data:post.dateHeader/> |
<$BlogItemPermalinkUrl$> |
<data:post.url/> |
<BlogItemTitle> |
<b:if cond=’data:post.title’> |
</BlogItemTitle> |
</b:if> |
<$BlogItemTitle$> |
<data:post.title/> |
<$BlogItemBody$> |
<data:post.body/> |
<$BlogItemAuthorURL$> |
<data:blog.homepageUrl/> |
<$BlogItemAuthor$> |
<data:post.author/> |
<$BlogItemDateTime$> |
<data:post.timestamp/> |
<BlogItemCommentsEnabled> |
<b:if cond=’data:post.allowComments’> |
</BlogItemCommentsEnabled> |
</b:if> |
<$BlogItemCommentCount$> |
<data:post.numComments/> |
<$BlogItemControl$> |
<span class=’control’>
<b:if cond=’data:post.emailPostUrl’>
<span class=’item-action’>
<a expr:href=’data:post.emailPostUrl’ title=’Email Post’>
<span class=’email-post-icon’> </span>
</a>
</span>
</b:if>
<b:include data=’post’ name=’postQuickEdit’/>
</span> |
<$BlogEncoding$> |
<data:blog.encoding/> |
<$BlogTitle$> |
<data:blog.title/> |
<$BlogItemAuthorNickname$> |
<data:post.author/> |
<$BlogID$> |
|
<$BlogItemUrl$> |
<data:post.link/> |
<ItemPage> |
<b:if cond=’data:blog.pageType == "item"’> |
</ItemPage> |
</b:if> |
<MainOrArchivePage> |
<b:if cond=’data:blog.pageType != "item"’> |
</MainOrArchivePage> |
</b:if> |
<MainPage> |
<b:if cond=’data:blog.pageType == "main"’> |
</MainPage> |
</b:if> |
<ArchivePage> |
<b:if cond=’data:blog.pageType == "archive"’> |
</ArchivePage> |
</b:if> |
<$BlogItemCreate$> |
<a expr:href=’data:post.addCommentUrl’>Post a Comment</a> |
<BlogItemComments> |
<b:loop values=’data:post.comments’ var=’comment’> |
</BlogItemComments> |
</b:loop> |
<$BlogCommentNumber$> |
<data:comment.id; |
<$BlogCommentDateTime$> |
<data:comment.timestamp/> |
<$BlogCommentAuthor$> |
<address style="display:inline;font-style:normal;" class="author vcard">
<b:if cond=’data:comment.authorUrl != ""’>
<a class="url fn" expr:href=’data:comment.authorUrl’><data:comment.author/></a>
<b:else/>
<span class="fn"><data:comment.author/></span>
</b:if>
</address> |
<$BlogCommentBody$> |
<data:comment.body/> |
<$BlogCommentDeleteIcon$> |
<b:include data=’comment’ name=’commentDeleteIcon’/> |
<$BlogCommentPermalinkURL$> |
#c<data:comment.id; |
For how to use this syntax inside tag attributes, please see Johan at Ecmanaut. I would actually recommend that you read that whole post.
I have updated my Lightbox Comment Form () so that it jumps down to the form when it comes up instead of making you scroll through the comments again.