ラベル Blogger の投稿を表示しています。 すべての投稿を表示
ラベル Blogger の投稿を表示しています。 すべての投稿を表示
2012/06/01

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

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

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

Bloggerで50記事くらい連続編集するとアカBanされて死ぬ

ブログ記事にアイキャッチ画像があるとブログのウィジェットや
Google+とFacebookのシェアで表示されて見やすいし一発で目を引くので
効果的だと思って新しい記事から画像追加しまくったら
アカBanされて昨日死にかけた。機械的にスパム判定食らうみたい。

アクセスできなくなってヘルプへ誘導されるのでそこから手続きして復活させてもらった。
めっちゃ焦るので連続編集ダメ、絶対。
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/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/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を使いこなす
2012/01/18

Bloggerの記事フッターにGrow!ボタンを設置する方法

Grow!って何?って方は以下のページに少し説明を書いたので見てください。
DevAchieve: Web上でチップが貰えるぞ!噂のGrow!をBloggerに設置する方法

ここでは上の記事で出来なかった記事フッターへのGrow!ボタンを設置を行いたいと思います。
ブログのトップページなど一つのページにいくつもGrow!ボタンを表示する場合には
チュートリアル(Grow!ボタン設置者向け) | Grow! Blogを見れば良いのですが、
ここにあるコードは spanタグの itemscope に属性値がないため、XHTML的には正しくないので
Bloggerのテンプレート編集機能にエラーとしてハネられてしまいます。
(あと地味にダブルクォーテーションが全角になっているというトラップ付き)(昨日報告したから訂正されるはず!)

Blogger用Grow!ボタン設置用コード

Blogger設定画面→テンプレート→HTMLの編集→ウィジェットのテンプレートを展開にチェック
以下のScriptタグを</body>の直前に置く。(</head>直前でも動くだろうと思ったら大間違い…!)
<script src='http://growbutton.com/javascripts/button.js?apikey=xxx&amp;insert=false' type='text/javascript'/>
</body>
apikey は xxx になっているので、あなたの取得した API Key に書き換えて下さい。

記事フッター(post-fotter)の下辺りに以下のソースを追加する。
<div class='post-footer'>
...
<span itemscope='itemscope' itemref='rectangle' itemtype='http://growbutton.com/ns#button' style='display: none;'><span itemprop='url'><data:post.url/></span><span itemprop='title'><data:post.title/></span></span>
変更点
ダブルクォーテーションをシングルクォーテーションに変更
itemscope に属性値として itemscope を設定

ちなみにDevAchieve: Web上でチップが貰えるぞ!噂のGrow!をBloggerに設置する方法で設置した
右上のGrow!ボタンはコードを変更しなくても問題なく表示されるので、そのままで共存できるようです。

以上で各記事のフッターにGrow!ボタンを設置することが出来ました。
もし良かったらこの記事の方法で設置したGrow!ボタンでLet's Grow!(`・ω・´)↓↓↓↓
2012/01/17

Bloggerの人気の投稿にTweet&はてブカウンターを表示させる方法

右の画像のように人気の投稿にTweetカウンターと
はてブカウンターが表示されていたら、
どれくらい人気なのかわかりやすくていいですね。
見に来てくれた人も人気の具合がわかって便利ですし、
凄く人気ならその記事に興味を示してくれるかもしれません。

ということでBloggerの人気の投稿をカスタマイズしましょう。

Blogger設定画面

テンプレート

HTMLの編集

ウィジェットのテンプレートを展開にチェック

エディタなどで popular-posts を検索

人気の投稿で選択されている設定によって4パターンに分かれます。
  1. 抜粋/サムネイルなし
  2. 抜粋のみ
  3. サムネイルのみ
  4. 抜粋/サムネイル両方
しかし、やることは基本的には全て同じです。
自分の設定に当てはまるパターンを探して、このリンクタグを見つけます。
<a expr:href='data:post.href'><data:post.title/></a>
上のリンクタグの直後に以下のコードを追加します。
<div class='item-counter'>
<a expr:href='"http://tweetbuzz.jp/redirect?url=" + data:post.href'><img expr:src='"http://tools.tweetbuzz.jp/imgcount?url=" + data:post.href'/></a>
<a expr:href='"http://b.hatena.ne.jp/entry/" + data:post.href'> <img alt='はてブ' expr:src='"http://b.hatena.ne.jp/entry/image/" + data:post.href'/></a>
</div>
後はお好みで item-counter クラスのCSSを指定してください。

関連リンク
TweetBuzz - Tweetカウンター
はてなブックマーク > ヘルプ > 自分のブログに「○○users」を表示する
2012/01/16

Web上でチップが貰えるぞ!噂のGrow!をBloggerに設置する方法

Grow!って何?

お気に入りのコンテンツにボタンを通じてチップを贈り、コンテンツ製作者を支援すると同時に
それを友人と共有するSocial Tipping Platform ソーシャル チッピング プラットフォーム
らしいです。詳しくはこちら。
ここではGrow!でチップを貰うためにBloggerに設置する方法を説明します。
<script type='text/javascript' src='http://growbutton.com/javascripts/button.js?apikey=xxx&shape=rectangle'></script>
Blogger設定画面

レイアウト

ガジェットを追加

HTML/JavaScriptを選択

上のコードをコピー

apikeyxxx からあなたのAPI Keyに書き換える

ガジェットに貼り付けて保存

以下のように表示されたらOK!!


元のコードからの変更点は以下の通り。
タグ内のダブルクォーテーションをシングルクォーテーションへ書き換え
&を&amp;へ書き換え

本当は各記事に設置したかったんだけどGrow!から提供されたタグがXHTML的に invalid なタグで、
Bloggerのテンプレート編集機能が受け付けてくれなかったから諦めました。
FC2ブログも持っているので設置してみたけど何故か上手く行かなかったです。
ということで今のところは上記の方法でサイトに一つ設置するので我慢しましょう。
始まったばかりのサービスだからこれからに期待ということで。

追記:記事フッターにも設置できました!DevAchieve: Bloggerの記事フッターにGrow!ボタンを設置する方法

よろしければGrow!ボタンを押して下さいな(*´ω`*)

それではー

Bloggerの記事フッターに各種ソーシャルボタンを設置する方法

はてなブックマーク、Facebook、Twitter、Google +1のボタンを設置したいと思います。

Blogger設定画面→テンプレート→HTMLの編集→ウィジェットのテンプレートを展開にチェック
まずははてなブックマーク、Twitter、Google +1のScriptタグを</body>の直前に置きましょう。
コードの部分をダブルクリックすると全選択できるのでコピーして下さい。
<script async='async' charset='utf-8' src='http://b.st-hatena.com/js/bookmark_button.js' type='text/javascript'/>
<script src='http://platform.twitter.com/widgets.js' type='text/javascript'/>
<script src='https://apis.google.com/js/plusone.js' type='text/javascript'>{lang: 'ja'} </script>
...
</body>

次に記事フッター(post-fotter)の下辺りに以下のソースを追加しましょう。
<div class='post-footer'>
...
<a class='hatena-bookmark-button' data-hatena-bookmark-layout='standard' expr:data-hatena-bookmark-title='data:blog.title + ": " + data:post.title' expr:href='"http://b.hatena.ne.jp/entry/" + data:post.url' title='このエントリーをはてなブックマークに追加'><img alt='このエントリーをはてなブックマークに追加' height='20' src='http://b.st-hatena.com/images/entry-button/button-only.gif' width='20'/></a>
<iframe allowTransparency='true' expr:src='"http://www.facebook.com/plugins/like.php?href=" + data:post.url + "&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;height=21"' frameborder='0' scrolling='no' style='border:none; overflow:hidden; width:100px; height:21px;'/>
<a class='twitter-share-button' data-via='' 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>
<g:plusone expr:href='data:post.url' size='medium' />
一行目:はてなブックマーク(はてなブックマークボタンの作成・設置について)
二行目:Facebook(Like Button - Facebook開発者)
三行目:Twitter(data-viaをあなたのアカウントに設定する必要がある)(Twitter / Twitterボタン)
四行目:Google +1(+1 ボタン)

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

タグ(RSS)