ラベル カスタマイズ の投稿を表示しています。 すべての投稿を表示
ラベル カスタマイズ の投稿を表示しています。 すべての投稿を表示
2012/06/01

target="_blank"を設定したらリンクテキストのあとにアイコンを表示する

先日リンクにファビコンを表示する記事が話題になっていたことからヒントを得た。
これはお役立ち!リンク先のfaviconをリンクアイコンとして表示させる方法! | バンクーバーのWEB屋
このようにリンクテキストのあとに新しいタブで開くことをアイコンで表示することができる。

知っている人には何を今更って内容なのだろうけど今までずっと謎だったので解説記事書く。
<a href="http://wada811.blogspot.com/" target="_blank">DevAchieve</a>
.entry-content a[target]:after {
    margin: 0 2px;
    content: url(http://表示したい画像のURL);
}
.entry-content はBloggerの記事内部を表すクラス。記事の外のスタイルは変更したくなかったので。
a[target] はaタグを属性セレクタでtarget属性を持つもののみを指定。
:after は疑似要素。要素の後のスタイルを指定できる。
content で表示内容を指定。画像で表示したいのでBloggerでアップロードしてURLを指定した。

インスピレーションを得たFavicons Next To External Links | CSS-Tricksでは
a[href^="http"]:before で、 [href^="http"]で前方一致していた。
同様にして[target="_blank"]でできそうなんだけどスタイルが適用されなかった。
仕方ないので target の記述があるかどうかだけチェックしてます。
普通は target="_blank"を指定するときだけ target 属性を書くと思うので。

参考リンク

意外と知らない!?CSSセレクタ20個のおさらい|Webpark
:after疑似要素 (E:after)|セレクタ|CSS HappyLife ZERO

BloggerのモバイルページをGoogle検索に表示させない方法

モバイルページをPCで開くとモバイル表示のままでPC版にリダイレクトされないし、
ソーシャルなリアクションがモバイル版のURLで行われてしまうので
Google検索でモバイルページを表示させないようにしたほうがいいかもしれないです。
スマホとかでPC版にアクセスしてもモバイル版にリダイレクトされるから
モバイルページを検索に載せておく必要性はないしね。

ということでGoogle検索にモバイルページを載せないように設定しましょう。
参考:BloggerのモバイルページをGoogleにインデックスさせない方法 +Plus One World
方法としてはウェブマスター ツールの設定>URLパラメータの項目で、
パラメータを追加ボタンからモバイル用のパラメータ「m」を追加してクロールしないにチェックを入れて保存します。
これだけ!これでGoogle検索にモバイルページが表示されなくなります。
2012/05/26

Bloggerのページタイトルを「記事タイトル | ブログタイトル」にする方法

ブログのページタイトルは「記事タイトル | ブログタイトル」がデファクトスタンダードのようで、
たいていのブログはこの形式になっていますし、Googleもこの形式の方が認識しやすいらしいです。
Google検索やその他のページなどでは先頭何文字かしか表示されないことも多いので
できるだけ記事タイトルを多く表示できるようにこの形式にしたほうがよさそうです。

ということでBloggerの設定をいじることにしましょう。
今回参考にしたのは以下の記事です。
Blogger ブログのページタイトルを「投稿タイトル | ブログタイトル」の順にする方法
Blogger設定画面 > テンプレート > HTMLの編集 > 続行 から以下のコードを検索します。
<title><data:blog.pageTitle/></title>
以下のコードに変更します。
<b:if cond='data:blog.pageType == &quot;item&quot;'>
  <title><data:blog.pageName/> | <data:blog.title/></title>
<b:else/>
  <b:if cond='data:blog.pageType == &quot;static_page&quot;'>
    <title><data:blog.pageName/> | <data:blog.title/></title>
  <b:else/>
    <title><data:blog.pageTitle/></title>
  </b:if>
</b:if>
2行目が記事タイトルで、5行目がBloggerの「ページ」のタイトルで、
7行目がトップページなどのその他のページのタイトルになります。
2012/04/20

Bloggerでラベル別に分類表示された記事一覧ページを作る

DevAchieve: Bloggerのページ機能と記事一覧を表示する方法で記事一覧ページを
作ったんだけど、単なるGoogleReaderへのリンクでユーザーが一旦外に出てしまうし、
ラベル別になっていなくて微妙でした。

これはその点では問題なしです!記事が500件超えたらどうなるのか…とは思いますが…。
Blogger ブログにサイトマップ - ラベル分類された投稿一覧を「ページ」に表示する方法
http://www.kuribo.info/2012/04/blogger.html
<script src="http://www.abu-farhan.com/script/daftarisiblogger/blogtoc-min.js"></script>
<script src="http://www.kuribo.info/feeds/posts/summary?redirect=false&amp;max-results=500&amp;alt=json-in-script&amp;callback=loadtoc"></script>
2012/04/08

Bloggerのページ機能と記事一覧を表示する方法

ブログタイトルとブログ説明の下にメニューバーを設置しました。

これはBloggerの「ページ」機能を使ったものです。
Blogger管理画面の「ページ」を選択して、
プルダウンメニューからウェブアドレスを選択して下さい。
ページタイトルとURLを指定すればメニューバーにそのURL先へのリンクが作成できます。

ここに記事一覧を表示するページを作成します。
一番簡単な方法は Google Reader に飛ばしてしまうことです。
ユーザーがGoogleアカウントを持っていれば
Google Reader で記事一覧を表示することができます。
購読を促しつつ、記事一覧の表示とクリックしたら記事内容を Google Reader で表示できるという合わせ技です。

設定するURLの例は以下の通りです。"wada811"の部分を各自のIDに変更して下さい。
http://www.google.co.jp/reader/view/feed/http%3A%2F%2Fwada811.blogspot.com%2Ffeeds%2Fposts%2Fdefault

追記:削除しました。
2012/03/31

Bloggerの最新コメントをウィジェットに表示する

BloggerのコメントはRSSフィードが配信されているので
それをフィードウィジェットで表示するだけ!
コメントRSSの例:http://wada811.blogspot.com/feeds/comments/default
2012/03/20

Bloggerのリダイレクトによる弊害を回避するための二つの方法の比較

この問題に対して2つの対処法を紹介しました。
が、2つの方法のメリット・デメリットについて書いていませんでした。
初見の人はどちらの方法で対処していいのかわからないと思うのでココで思いつく限り上げてみたいと思います。

1.Bloggerでblogspot.jpにリダイレクトされるのを防ぐ方法

メリット

・導入が簡単。
・将来追加するウィジェットがデータタグ「data:post.url」を使っていても気にする必要なく追加できる。
・人気の投稿などで使っていたデータタグの「data:post.href」で .com URLを取得できる。
人気の投稿にTweet&はてブカウンターを表示させている人は .com URLでカウントできる。

デメリット

・.jp から.com にリダイレクトしているのが見えてダサい。
・JavaScript なので、ユーザーが JavaScript を OFF にしていると .com URLにリダイレクトできなくてユーザーが分散する。
→そこでソーシャルなリアクションがあっても .com URLではないので .com URLではカウントが増えない。
・Googleの意向に歯向かうような形になっているため、将来的に不利益を被る可能性があるかもしれない。
・海外からのアクセスでリダイレクトが無限ループになるらしい!←New!←修正済み

(2012/04/07)※「.jp」のみ「.com」にリダイレクトするようにコードを修正しました。コードの確認をお願いします。


2.Bloggerのリダイレクトで失われたソーシャルカウントを取り戻す方法

メリット

・Blogger 公式のデータタグを利用しているので何か問題が起こる可能性が少ない。
・Google の意向にも従っているので将来的な不安もなく、再び対応させられることがないと思われる。

デメリット

・新たにウィジェットなどを追加した時に「data:post.url」があったら毎回「data:post.canonicalUrl」に直さなければならない。
・人気の投稿などで使っていたデータタグの「data:post.href」で .com URLが取得できず、取得する方法が不明。

以上です。他にもあったらコメントして下さい。
このメリット・デメリットを比較して自分に合った方法を導入しましょう。

ちなみに私は記事下の「人気記事TOP5」が元々は人気の投稿で、
「data:post.href」を使用しているので(1)の方法を適用しています。

それでは。

Bloggerのリダイレクトで失われたソーシャルカウントを取り戻す方法

まとめDevAchieve: Bloggerのリダイレクトによる弊害を回避するための二つの方法の比較


前回のDevAchieve: Bloggerでblogspot.jpにリダイレクトされるのを防ぐ方法では
JavaScriptでリダイレクトし直していたわけですが、一部上手くいかないという報告がありました。
InternetExplorer9、Firefox11、GoogleChrome18、Safari5、Opera11にて確認しましたが、原因不明です。

代わりにJavasriptをOFFにしていると
.com URLにリダイレクトし直すことができないという問題を発見しました。

コレでは .com と .jp への分散は避けられません。


Googleの方針に逆らい続けるのも今後デメリットがあるかもしれないし、
リダイレクトし直してるのが見えるのも少しダサい、という要望に応えて
前回の方法に代わる新しい対処法をご紹介します。

新しい対処法

blogspot.comからblogspot.jpへリダイレクトに伴なってソーシャル系で困った場合の対処方法 - buzzword update
data:post.url を使われていた場所に data:post.canonicalUrl を使うようにして下さい。
こちらは xxxxx.blogspot.com のURLを返します。
ということで、data:post.canonicalUrl は必ず blogspot.com のURLを返してくれます。
HTMLソースをエディタなどにコピペして置換機能で置換してしまいましょう。
ソーシャルなリアクションがついていた blogspot.com でカウントしてくれるので
失われたソーシャルカウントが復活します。
このデータタグはBloggerの正式なタグですので今後不利益を被る可能性もないと思います。

おまけ

Bloggerデータタグの返すURL
・ブログ全体
data:blog.url : http://wada811.blogspot.jp/ // 表示中のページの .jp URL
data:blog.canonicalUrl : http://wada811.blogspot.com/ // 表示中のページの .com URL
・記事ループ内
data:post.url : http://wada811.blogspot.jp/2012/03/bloggerblogspotjp.html
data:post.canonicalUrl : http://wada811.blogspot.com/2012/03/bloggerblogspotjp.html
・ウィジェットの記事ループ内
data:post.href : http://wada811.blogspot.jp/2012/03/bloggerblogspotjp.html

ウィジェットの記事ループ内での .com URLを返すデータタグが不明です。
ご存じの方はコメントして行ってくれると嬉しいです。
ググった感じでは存在しないんじゃないかと思いました。
data:post.href は具体的には人気の投稿に使われていると思います。
(これが正常に動かないので私は前回の対処法を継続しています。)

Bloggerのリダイレクトによる弊害を回避するための二つの方法の比較

2012/03/18

Bloggerでblogspot.jpにリダイレクトされるのを防ぐ方法

追記(2012/04/07):海外からのアクセスでリダイレクトが無限ループになる問題を修正しました。
コードを修正したのでハイライトされた部分を修正してください。


追記DevAchieve: Bloggerのリダイレクトで失われたソーシャルカウントを取り戻す方法

まとめDevAchieve: Bloggerのリダイレクトによる弊害を回避するための二つの方法の比較


Bloggerで日本において blogspot.com から blogspot.jp にリダイレクトされるようになりました。
これは不具合でもバグでもなく、悲しいことに仕様です。
ですが対処法はあります。御託はいいから方法はよ。って人は記事の下から読んで下さい。

このリダイレクトは簡単に説明すると、中国みたいな国の検閲でも
その国において非表示にするだけで済むという運用上のためのもののようです。
この問題について詳しくは:
クリボウの Blogger Tips: Blogger ブログ(blogpot.com)へのアクセスが blogspot.jp にリダイレクトされる

これによるデメリット

ソーシャルなリアクションはURLでカウントされているので、リダイレクトによって今までのリアクションが見かけ上消えます。
俺の+1返せ!ヽ(`Д´)ノウワァァァン!! URLリダイレクトでBloggerブログが悲惨なことに…… ~ Plus One World

blogspot.jpにリダイレクトされるのを防ぐ方法

Disable Blogger Country Specific Domain Redirection | Ravi Saive: A Technology Blog For Newbiesを意訳&修正。
Bloogerの国固有ドメインリダイレクトの無効化

最近、Bloggerは国固有URLのリダイレクトをすべてのBlogSpotドメインに導入しました。
blogspot.com ドメイン拡張の代わりに、あなたの読者は読者の国固有ドメイン拡張を見ることになります。
リダイレクトは現在インドでも実装されていて、
これまでのところ blogspot.com ドメインから blogspot.in にリダイレクトされています。

(中略)

このリダイレクトは"country-code Top Level Domain" (ccTLD)と呼ばれるもので、
一時的な変更である"302 Redirect"として知られています。
アドレスの恒久的な変更である"301 redirect"ではありません。


この302国固有ドメインリダイレクトを無効化するために

あなたはこのリダイレクトに対処し、blogspot.comにこだわるために
ブログテンプレート少しのコードを追加する必要があります。
以下のステップに従ってブログから302 リダイレクトを無効化してしまいましょう!

ブログの国固有ドメインリダイレクトを無効化する方法

1. Blogger設定画面>テンプレート>HTMLの編集>続行
2. 変更を行う前にテンプレートのバックアップを取っておきましょう!
3. ウィジェットのテンプレートを展開にチェック。
4. テンプレートから以下のコードを検索する。
</head>
5. </head>の前に以下のコードをコピペする。
<script type='text/javascript'>
if ((window.location.href.toString().indexOf('.jp/'))!='-1'){
window.location.href = window.location.href.toString().replace('.blogspot.jp/','.blogspot.com/ncr/');
}
</script>
(保存後にBlogger側で少し自動変換されますが問題はないかと思います)
6. テンプレートを保存してブログを確認しましょう。

もしまだリダイレクトされる場合は、コメント欄に質問を投稿してくれたら手助けできるかもしれません。

以上、意訳おわり。たぶんコレで大丈夫です。
このブログもblogspot.comで表示できているでしょう?

それでは。

追記:もう一つの方法があります。

DevAchieve: Bloggerのリダイレクトで失われたソーシャルカウントを取り戻す方法

まとめDevAchieve: Bloggerのリダイレクトによる弊害を回避するための二つの方法の比較

2012/03/02

えぇ!?またToastをshow()するのを忘れたのかい!?

えぇ!?Eclipseのテンプレート機能を使えば忘れるなんてことはないのかい!?

ということで昼間のTwitterのタイムラインがToastのshow()忘れについて盛り上がっていたので記事を書いてみる。
面倒な事は全部機械に任せれば良いんだよ!(`・ω・´)
ラッパークラスを作る必要もないんだよ。

Preference > Java > Editor > Templates


ね?簡単でしょ?

このテンプレート機能によってTLCtrl+SpaceでToastLongをすぐに呼び出せるのだ!

今ならAmeroadでToastShortもセットで50円!

ToastTemplates.xml | Ameroad
ファイルを購入したら上の画像の右側の"Import"ボタンをクリックして ToastTemplates.xml を読み込もう!



参考:AndroiderはEclipseのテンプレート機能を覚えた! - Togetter
参考:ソリューション: テンプレートを使う | Eclipse Galileo でJava コーディングを迅速に行うための追加事項
2012/02/26

ツイートボタンをカスタマイズして「@~さんから」を非公式RT形式にする

きっとこの記事を見る人は記事のTweetボタンからツイートした時に表示されている「@~さんから」というのは
画像がなくても伝わると思うので、細かいことは抜きに改善方法だけを載せておきます。

元のコードはDevAchieve: Bloggerの記事フッターに各種ソーシャルボタンを設置する方法にある通り。
<a class='twitter-share-button' data-via='null' data-count='horizontal' data-lang='ja' expr:data-text='data:blog.title + ": "+ data:post.title' expr:data-url='data:post.url' href='http://twitter.com/share'>Tweet</a>
<a class='twitter-share-button' data-count='horizontal' data-lang='ja' expr:data-text='" RT @null "+ data:blog.title + ": "+ data:post.title' expr:data-url='data:post.url' href='http://twitter.com/share'>Tweet</a>
変更点は data-via='wada811' の削除と、
expr:data-text への " RT @wada811 "+ の追加です。
自分であまり使わないから気にしてなかったんですが、
ちょうど下の記事を見たのでウチでも直しておきました。
Happy-Go-Lucky: Bloggerで"ブログ内ツイートボタンをカスタマイズして
Twitterアカウント名をイイ感じに表示してみた"

この記事の新規性は無いけど
情報源は多いほうが良いということで。(俺が発掘するの面倒だし)

Bloggerの検索結果のCSSを上書きする


この画像を見るとわかるようにBloggerの検索ウィジェットから検索した時に表示される結果に
変な border-botttom がかかっていて見苦しかったので修正しました。
検索結果のページのCSSは別に読み込んでいるようなので !important を指定して強制上書きしました。

画像では見切れているけど枠のボーダーは消えずにヒットした件数と各結果の border-bottom が消えました。
タブ部分もくっついて良い感じの表示になります。
.gsc-result{
 border-bottom: none !important;
}

.gsc-result-info{
 border-bottom: none !important;
}

.gsc-tabsArea{
 margin: 0px !important;
}
2012/02/25

DevAchieveブログカスタマイズまとめ

Blogger設定画面>テンプレート>カスタマイズ

テンプレート:Awesome Inc.(黒)
背景:変更なし
幅を調整:ブログ全体1100px, サイドバー310px
レイアウト:右サイドバー, 下段2段組

アドバンス
ページ:Verdana 14px
リンク:#9fc5e8
表示済み:#ea9999
カーソル:#b6d7a8
ブログタイトル:Times New Roman 40px
ブログの説明:Verdana 14px
タブのテキスト:Verdana 14px
日付ヘッダー:Verdana 14px
投稿タイトル:Verdana 22px
ガジェットタイトル:Verdana 14px
ガジェットテキスト:Verdana 14px
ガジェットのリンク:リンクと同じ
フィードのリンク:リンクと同じ

CSSを追加:
DevAchieve: Bloggerのラベルウィジェットのカスタマイズ
DevAchieve: CSS3でボックスを角丸にするborder-radiusを使ってみた
DevAchieve: CSS3の角丸を使ってキーを表現してみた
DevAchieve: BloggerにソースコードをハイライトするSyntaxHighlighterを導入する
DevAchieve: Bloggerの検索結果のCSSを上書きする
target="_blank"を設定したらリンクテキストのあとにアイコンを表示する | DevAchieve

HTMLの編集:
DevAchieve: Bloggerの「登録: 投稿 (Atom)」の表示を消す方法
DevAchieve: BloggerをIEで開くと最新版でもIE7として表示されることによる問題
DevAchieve: Bloggerの人気の投稿にTweet&はてブカウンターを表示させる方法
DevAchieve: Bloggerの記事フッターにGrow!ボタンを設置する方法
DevAchieve: Web上でチップが貰えるぞ!噂のGrow!をBloggerに設置する方法
DevAchieve: Bloggerの記事フッターに各種ソーシャルボタンを設置する方法
ツイートボタンをカスタマイズして「@~さんから」を非公式RT形式にする | DevAchieve
Bloggerのページタイトルを「記事タイトル | ブログタイトル」にする方法 | DevAchieve


ウィジェットの追加:
DevAchieve: Bloggerのページ機能と記事一覧を表示する方法
Bloggerの最新コメントをウィジェットに表示する | DevAchieve

その他
BloggerのモバイルページをGoogle検索に表示させない方法 | DevAchieve

関連:
DevAchieve: Bloggerのリダイレクトによる弊害を回避するための二つの方法の比較

結構色々なことやったので、リセットされた時にすぐに復活できるように。
2012/02/18

CSS3でボックスを角丸にするborder-radiusを使ってみた

追記(2012/06/01):border-radiusについてはベンダープレフィックス(8, 9行目の記述)は必要なくなりました。

SyntaxHighlighterで表示する程でもないコマンド系のコードを
角丸ボックスで表示しているのを見てカッコ良かったので取り入れてみました。
例↓
git push -u origin master

導入方法はコチラ:CSS3 角丸を表現する border-radius | CSS Lecture

こんな感じでカスタマイズしました。
span.cmd {
    color: #000000;
    margin: 5px;
    padding: 5px 10px;
    line-height: 2em;
    background-color:  #FFFFFF;
    border-radius: 10px;        /* CSS3草案 */  
    -webkit-border-radius: 10px;    /* Safari,Google Chrome用 */  
    -moz-border-radius: 10px;   /* Firefox用 */  
}
marginは左右にしか効かないので上下の幅はline-hrightで指定することになります。
IE8以下は角丸に対応していないので角が丸くなりません。
リンク先ではOperaでは角丸にならないと書かれていましたが、
少なくともOpera11.61では角丸になることを確認しました。

CSS3の角丸を使ってキーボードのキーを表現してみた

追記(2012/06/01):border-radiusについてはベンダープレフィックス(9, 10行目の記述)は必要なくなりました。

ショートカットキーとかを表示させる時に画像を用意するのは面倒なのでCSS3の角丸と
昔ながらのborder-styleを使ってキーボードのキーを表現してみた。

例↓
Windows 7ではWin+数字でタスクバーにあるソフトを起動できます。

と、こんな感じで表示することができます。
border-style: outset;は古臭いHPの香りがしますが、
角丸にすると本当にキーっぽくて良い感じです。

サンプルコードはコチラ。
span.key {
    border: 5px #eee outset;
    color: black;
    margin: 5px;
    padding: 5px 10px;
    line-height: 2.5em;
    background-color: #eee;
    border-radius: 10px;        /* CSS3草案 */
    -webkit-border-radius: 10px;    /* Safari,Google Chrome用 */
    -moz-border-radius: 10px;   /* Firefox用 */
}

2012/02/08

BloggerをIEで開くと最新版でもIE7として表示されることによる問題

記事フッターのソーシャルボタンがIEだけ右の画像のように改行されてました。
画像には写りきってないですがソーシャルボタンだけで3行使っていて
レイアウトがカッコ悪くてどうにかしたかったのですが原因不明なので諦めてました。

各ブラウザの最新版をサポートするはずの
Gorw!ボタンの背景が白くなっていたので
とりあえずTwitterに投げときました。

きっとGrow!の中の人が
エゴサーチして対応してくれると
思ってた(・ω<)テヘペロ

本当に対応していただいて、
実はBloggerのテンプレートにIEを見たらIE7だと思えというアレなコードが入ってたということでした。
以下がそのコードです。
<head>
<meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible'/>
2行目の部分を削除することによってIE9などで開いてもIE7として表示されることはなくなります。

最新版のIEさえもIE7として認識させる理由はなんなのでしょうね…。
IE7の方がマシなんてことは普通ないと思いますけど…。

不具合報告ってほどのことをしてないけどお礼にGrow!してもらっちゃった!やった!(*´∀`*)

それではー
2012/02/05

Bloggerの「登録: 投稿 (Atom)」の表示を消す方法

RSSの登録のためのウィジェットをブログのフッターに設置しているので
記事の後に表示される「登録: 投稿 (Atom)」で同じものが表示される意味がありません。
なのでテンプレートのHTMLをよく探してみるとフィードのリンクがあったので
消してみたら表示されなくなりました。
昨日、Bloggerのテンプレートを復旧しなければならなくなって大変だったので
小さな変更ですがメモしておきます。

Blogger設定画面>テンプレート>HTMLの編集>続行
で、HTMLをエディタなどにコピーして以下のタグを検索します。
<b:include name='feedLinks'/>
これを削除すれば、「登録: 投稿 (Atom)」の表示を消すことができます。

Bloggerのラベルウィジェットのカスタマイズ

ラベルウィジェットを設置したのだが
ラベルを表示させると縦に羅列されて、
サイドバー以外に設置する場合は
あまりにもスペースを取りすぎるので
カスタマイズしました。
ラベルウィジェト自体はHTMLのリストタグを
使って構成されているので
CSSをいじって横に並べるようにしました。
floatを使ったリストの基本的な横配置です。
.list-label-widget-content ul li{
    float: left;
    margin-right: 3px;
    white-space: nowrap;
}
これで置いてみるとラベル名と()で囲まれた投稿数が半角スペース1つ分くらい空いていて
投稿数が左右どちらのラベルに対応しているかわかりにくかったのでカンマを挟んで、マージンを設定しました。
<b:widget id='Label1' locked='false' title='ラベル' type='Label'>
<b:includable id='main'>
  <b:if cond='data:title'>
    <h2><data:title/></h2>
  </b:if>
  <div expr:class='"widget-content " + data:display + "-label-widget-content"'>
    <b:if cond='data:display == "list"'>
      <ul>
      <b:loop values='data:labels' var='label'>
        <li>
          <b:if cond='data:blog.url == data:label.url'>
            <span expr:dir='data:blog.languageDirection'><data:label.name/></span>
          <b:else/>
            <a expr:dir='data:blog.languageDirection' expr:href='data:label.url'><data:label.name/></a>
          </b:if>
          <b:if cond='data:showFreqNumbers'>
            <span dir='ltr'>(<a expr:href='data:blog.canonicalHomepageUrl + "feeds/posts/default/-/" + data:label.name + "?alt=rss"' expr:title='data:postLabelsLabel + " " + data:label.name + " (RSS)"'><data:label.count/></a>),</span>
          </b:if>
        </li>
      </b:loop>
      </ul>
    <b:else/>
      <b:loop values='data:labels' var='label'>
        <span expr:class='"label-size label-size-" + data:label.cssSize'>
          <b:if cond='data:blog.url == data:label.url'>
            <span expr:dir='data:blog.languageDirection'><data:label.name/></span>
          <b:else/>
            <a expr:dir='data:blog.languageDirection' expr:href='data:label.url'><data:label.name/></a>
          </b:if>
          <b:if cond='data:showFreqNumbers'>
            <span class='label-count' dir='ltr'>(<a expr:href='data:blog.canonicalHomepageUrl + "feeds/posts/default/-/" + data:label.name + "?alt=rss"' expr:title='data:postLabelsLabel + " " + data:label.name + " (RSS)"'><data:label.count/></a>),</span>
          </b:if>
        </span>
      </b:loop>
    </b:if>
    <b:include name='quickedit'/>
  </div>
</b:includable>
</b:widget>
なぜか、white-space: nowrap; を設定しないとIE7以下で正常に表示されません。
コレを取るとリストの表示幅終端付近で押しつぶされたタグが表示されるので必須です。

追記(2012/03/31)
ラベルカウント部分にラベル毎のフィードへのリンクを追加しました。
参考:Windup T: Blogger - ラベル別のフィード配信
2012/02/04

ソースコードをハイライトするSyntaxHighlighter3.0を使いこなす

導入編:DevAchieve: BloggerにソースコードをハイライトするSyntaxHighlighterを導入する

SyntaxHighlighterを使用してソースをカラフルに表示するには、
以下の二通りの方法で記述することができます。
  1. preタグを使う
  2. scriptタグを使う

preタグを使う

<pre class="brush: alias;">
// ココにソースを記述
</pre>
メリット:後述のscriptタグと違ってハイライトスクリプトが読み込まれなくてもテキストとして表示される。
デメリット:<以降がタグとして認識されるため&lt;と書き換えなければならない。
Bloggerの人気の投稿ウィジェットに表示される記事の前文にpreタグまで含まれると
表示が狂うことがある。(何が原因かわからないけどコレのせいで最初からHTML/CSS組み直した(´Д⊂ヽ)
このせいで記事の公開が遅れました…。とりあえず対策は記事書いてすぐにコードを貼らないこと。

scriptタグを使う

<script class="brush: alias;" type="syntaxhighlighter"><![CDATA[
// ココにソースを記述
]]></script>
メリット:<以降がタグとして誤認されることがない。(</script>タグだけは&lt;/script>と記述する必要あり)
デメリット:scriptが読み込まれるまで非表示である。また、AutoPager系の自動ページ読み込みで
読み込まれたページはハイライトスクリプトが動かず、ソースコードが非表示のままになる。
また、RSSやモバイル表示でソースコードが非表示になる。

ということで個人的にpreタグを使いたいのでpreタグで説明していきます。
同様の設定はscriptタグでも出来るので適宜読み替えて下さい。

使用言語の設定

SyntaxHighlighterを使用する際には使用言語を設定する必要があります。
上のどちらの方法でも同じで、一行目の"alias"の部分を使用言語のエイリアスに書き換えます。

Brush name
使用言語
Brush aliases
言語のエイリアス
File name
JSファイル名
ActionScript3as3, actionscript3shBrushAS3.js
Bash/shellbash, shellshBrushBash.js
ColdFusioncf, coldfusionshBrushColdFusion.js
C#c-sharp, csharpshBrushCSharp.js
C++cpp, cshBrushCpp.js
CSScssshBrushCss.js
Delphidelphi, pas, pascalshBrushDelphi.js
Diffdiff, patchshBrushDiff.js
Erlangerl, erlangshBrushErlang.js
GroovygroovyshBrushGroovy.js
JavaScriptjs, jscript, javascriptshBrushJScript.js
JavajavashBrushJava.js
JavaFXjfx, javafxshBrushJavaFX.js
Perlperl, plshBrushPerl.js
PHPphpshBrushPhp.js
Plain Textplain, textshBrushPlain.js
PowerShellps, powershellshBrushPowerShell.js
Pythonpy, pythonshBrushPython.js
Rubyrails, ror, rubyshBrushRuby.js
ScalascalashBrushScala.js
SQLsqlshBrushSql.js
Visual Basicvb, vbnetshBrushVb.js
XMLxml, xhtml, xslt, html, xhtmlshBrushXml.js
SyntaxHighlighter - Bundled Brushes

例えばHTMLをシンタックスハイライトしたい場合は、以下のようにaliasをhtmlにします。
<pre class="brush: html;">
// ココにソースを記述
</pre>

特定の行を強調表示する

下のやつは1行目が強調表示されているのでブログなどで言及する時に
読者にわかりやすくて便利です。
これは以下のように行番号を指定することによって設定可能です。
<pre class="brush: alias; highlight: [1];">
// ココにソースを記述
</pre>
カンマ区切りで行数を指定することによって複数行を強調表示することも出来ます。

開始行番号の指定

元のソースコードを全て載せるとスペースを取りすぎるので
一部分を抜き出して、対応する行だけ説明したい時に使います。
前の記事で言うと、「縦スクロールバーを消す」あたりで使った機能です。
<pre class="brush: alias; first-line: 10;">
// ココにソースを記述
</pre>
1行目のように指定することによって行番号が10から始まるようになりました。

タイトル設定

<pre class="brush: alias;" title="タイトル設定">
// ココにソースを記述
</pre>
さっきまではclass属性の中に記述していましたが、title属性を使用しているので注意です。
ちなみにtitle属性の属性値を記述しなければタイトルは表示されません。
title=""のままタイトル未記入でも表示には影響されないということです。

その他の設定

ソースコードの折りたたみ・展開、行番号非表示、
ソースコードと同時にHTMLタグのハイライト表示、
タブサイズの指定、などの設定はコチラに載っています。
今日のPython: ブログ上でプログラムソースを表示する方法②

まとめ

よく使う上の3つのオプションを指定したのがコチラです。
<pre class="brush: alias; first-line: 1; highlight: [,];" title="">
// ココにソースを記述
</pre>
highlightとtitleは未指定でも表示に影響無いのでイチイチ消さなくても良いです。
後はaliasを自分の使用言語のエイリアスに書き換えて単語登録でもしておけばOK!


これであなたもブログでソースコードを綺麗に表示できます!

それでは。

BloggerにソースコードをハイライトするSyntaxHighlighterを導入する

たまにブログなどで綺麗にソースコードを表示しているサイトを見かけますよね?
ソースコードを文法的に色を変えて(シンタックスハイライトして)表示していて綺麗ですね。
ブログなどでシンタックスハイライトするにはSyntaxHighlighterというのを使います。

まずはSyntax Highlighter Scripts Generatorで必要な言語を選択してください。
ちなみにココでハイライトのテーマも選ぶことができます。
SyntaxHighlighter - Themesで事前に好みのテーマを確認できるから要チェックです。

Generateボタンを押したらテキストエリアにコードが表示されるからコピペしましょう。
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'></script>
<script language="javascript" type="text/javascript">
 SyntaxHighlighter.config.bloggerMode = true;
 SyntaxHighlighter.all();
</script>
例えば、これはJavaだけを選択してGenerateボタンを押した時のコードです。
このように2行目に選択したテーマのCSSがあり、4行目以降にに選択した言語のJSファイルがあります。

これをそのまま使用しても良いのですが、表示少し微妙なのでCSSを少し編集します。
まずはhttp://alexgorbatchev.com/pub/sh/current/styles/shCore.cssにアクセスして、
中身をコピーしてエディタなどに貼り付けて編集しましょう。

縦スクロールバーを消す

.syntaxhighlighter {
  width: 100% !important;
  margin: 1em 0 1em 0 !important;
  position: relative !important;
  overflow: auto !important;
  font-size: 1em !important;
  overflow-y: hidden !important; // 追加
}

IEで最後の行が横スクロールバーに隠れるのを防ぐ

.syntaxhighlighter.ie {
  font-size: .9em !important;
  padding: 1px 0 20px 0 !important; // 1px->20pxに変更
}
DevAchieve: BloggerをIEで開くと最新版でもIE7として表示されることによる問題で説明したコードを削除した場合、
IE8以上ならばこの問題は発生しないのでCSSを変更する必要はありません。

以上でshCore.cssの編集が完了しました。
ファイルのアップロードに対応したブログサービスならばコレを保存して、
ブログにアップロードして上で生成したコードの1行目のURLと差し替えればOK!
Bloggerはファイルのアップロードができないので、
設定画面>テンプレート>カスタマイズ>アドバンス>CSSを追加、に
書き換えたCSSを貼り付けてブログに適用しましょう。

右上の"?"の非表示にする

<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
// (中略)選択した言語に対応するscriptタグ
<script language="javascript" type="text/javascript">
 SyntaxHighlighter.config.bloggerMode = true;
 SyntaxHighlighter.defaults['toolbar'] = false;
 SyntaxHighlighter.all();
</script>
7行目のオプションを設定しておくことによって非表示にすることができます。
これで設定は以上です。
このコードを</head>の直前に貼りつければ導入は終了です。

次の記事ではSyntaxHighlighterの使い方を説明します。
次の記事:DevAchieve: ソースコードをハイライトするSyntaxHighlighter3.0を使いこなす

タグ(RSS)