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

2016年1月15日金曜日

Open Live Writer で編集中のブログテーマ (テンプレート) を CSS で カスタマイズ

1. サイドバーを消したい

ブログ (Blogger) への投稿は Windows Live Writer から Open Live Writer へ乗り換えた。その結果、入力するためのテンプレートも改めて更新されてしまった。(@_@;

SnapCrab_Untitled - Open Live Writer_2016-1-15_6-11-56_No-00

Windows Live Writer で編集中のブログテーマ (テンプレート) を CSS で カスタマイズした方法と同様の設定をする必要がある。

2. テンプレートファイルの CSS を編集

  • %APPDATA%\OpenLiveWriter\blogtemplates

の中に含まれるランダムな文字列が付けられたフォルダより、Open Live Writer で使用されているテンプレートを見つける。自分の環境では、

  • index.htm
  • index[1].htm

がテンプレートファイルだった。

予め投稿先のブログより、記事に対する CSS の設定を確認しておく。

ここでは、div#main より、float, width 属性を削除した。

SnapCrab_CUsersjute1AppDataRoamingOpenLiveWriterblogtemplatese6eb9f29-500e-4a53-909a-7ac2f6fb317aindex[2]htm _2016-1-15_5-53-6_No-00

これにより、Open Live Writer の方では、サイドバーが表示されなくなる。

SnapCrab_Untitled - Open Live Writer_2016-1-15_6-12-20_No-00

3. テンプレートをクラウド上に保存しておく

PC が壊れた場合に備えて、上記で作成した index.htm を Dropbox の以下の場所に保存しておいた。

  • [Dropbox へのパス]\blog\WindowsLiveWriter\AppData\blogtemplate

2015年4月2日木曜日

Blogger は Google のマルチログインに対応してない

Google には複数のアカウントを切り替える「マルチログイン」機能がある。これにより、複数の Gmail アカウントがあっても、ログアウトすることなくアカウントを切り替えることができる。しかし、残念ながら Blogger では機能しない。

自分の場合、Gmail, Google Drive, Google+, Blogger, アナリティクスをよく利用している。当初、すべての Google サービスでマルチログインが利用できると勘違いしていたので、挙動が理解できず混乱した。(+_+)

複数のアカウントに同時にログイン - Google アカウント ヘルプ によると、

SnapCrab_No-0010[5]マルチ ログインは一部の Google サービスと、Google サービスのモバイル版では機能しません。

マルチ ログインが機能しない場合は、そのブラウザからログインした最初のアカウントに自動的にログインします。

たとえば、次の場合はマルチ ログインは機能しません。

  • AdWords
  • アナリティクス
  • Blogger
  • Picasa

Google ドライブはマルチ ログインに対応していますが、他のサービスとは動作が異なります

現在、アナリティクスではマルチログインに対応しているようだ。

SnapCrab_No-0013

これに対して、Blogger でアカウントを確認すると、確かに「Google アカウントを追加する」ボタンが見当らない。

SnapCrab_No-0014

そのため、複数の Google アカウントを持っていても、簡単にアカウントを切り替えることができない。アカウントを切り替えるためには、ログアウトし、切り替えたいアカウントでログインし直す必要がある。

面堂なことに、一度ログアウトすると、マルチログインに利用した情報は消えてしまう。よって、自分の場合、マルチログインの機能を利用することができない。(+_+)

SnapCrab_No-0015なおかつ、Firefox の場合、一度マルチログインを利用すると、ログアウトして再ログインする際に表示されるパスワード入力フィールドに、正しいパスワードを直接入力しても、なぜか当該アカウントにログインできない。

ログインするためには、パスワードの入力を求められる画面で、Secure LoginKeeFox を利用するしかない。

SnapCrab_No-0016

もしくは、アカウントにログインするための情報を全て削除した後 (「別のアカウントでログイン」の画面で行う。) 、ユーザー名とパスワードを入力する。

SnapCrab_No-0017

ただし、Google Chrome では上記の問題は発生しない。

Google Chrome のユーザー機能の充実っぷりを見ると、マルチログインの機能をこれ以上実装する気があるのかな?と不安を覚える。

だから、今のところ、Firefox を利用していて、Blogger をマルチアカウントで使いたい場合、複数プロファイルを利用するか、

プライベート機能を使うしかない。

 

参考記事

2012年4月17日火曜日

FreeMind のファイルを Dropbox を使い Web に公開し、ブログに埋め込む

1. FreeMind のファイルを Flash としてブログに埋め込む

FreeMind で作成したファイルを Web 上に公開したい。

FreeMind で Flash としてエクスポート

FreeMind(Version:0.9.0) には、ファイルをFlash へエクスポートする機能がある。

  • メニューより、ファイル > エクスポート > Flashとして...

を選択。

img_0105

ファイル名を XXXXX として保存すると、

  • XXXXX.html
  • XXXXX.html_files

が作成される。

 

Dropbox に配置

上記の 2 つを Dropbox の Public フォルダ内に配置。

  • XXXXX.html を右クリック > Dropbox > パブリックリンクのコピー

img_0110

 

ブログに iframe タグで埋め込む

ブログに埋め込むためには iframe タグを使う。

幅を目一杯広げ、高さを 300px とするなら、

<iframe src="Dropboxのパブリックリンク" 
    width="100%"
    height="300">
</iframe>

これを HTML を編集するモードにおいて貼り付ける。

 

2. Flash としてエクスポートしないで、マインドマップの本体だけを Dropbox に配置する

上記の方法では、FreeMind のファイルをエクスポートする必要がある。また、マインドマップの本体以外に複数のファイルを Dropbox に配置しなければならない。

マインドマップの本体だけを Dropbox に配置し、ファイルを更新したら、ブログに埋め込んだマインドマップも更新されるようにしたい。

方法

FreeMind をFlash としてエクスポートしたとき、2つのものが生成された。

  • XXXXX.html
  • XXXXX.html_files

フォルダ XXXXX.html_files には、3つのファイルが含まれている。

  • flashobject.js
  • map.mm
  • visorFreemind.swf

この内、map.mm がマインドマップの本体。後は共通の部品なので、別のマインドマップでも共有することにした。

全体の配置は、以下の通り。

  • Dropbox のルート/Public/mindmaps/
    • freemind.html (XXXXX.html を修正したもの)
    • flashobject.js
    • visorFreemind.swf

マインドマップを作成したら、以下の場所に保存する。

  • Dropbox のルート/Public/mindmaps/

上記の freemind.html のパブリックリンクをコピー。

マインドマップのファイル名が

  • XXXXX.mm

である場合、ブログに埋め込むための iframe タグを以下のように書く。

<iframe src="Dropboxのパブリックリンク?XXXXX.mm" 
    width="100%"
    height="300">
</iframe>

 

関連記事

2011年11月6日日曜日

Blogger に載せる画像の保存先を Flickr から Picasa へ変更 - Google+ へ登録して、無料で保存できる画像サイズもアップ

1. これまでブログの画像は Flickr に保存していた

このブログは、Blogger を利用している。

使いはじめの頃、Blogger へ投稿できる画像の上限は 300M だった。そのため、画像の投稿先は Flickr にした。理由は、Flickr では、月毎のアップロードの上限を守れば、無料でずっと使うことができるため。ブログへ投稿する画像の容量は小さいので、上限を超えることはなかった。

ブログを書くために、

  • エディタは、マイクロソフトの Windows Live Writer (WLW) を使い、
  • ブログシステムとして、Google に買収された Blogger を利用し、
  • 画像の保存先は、Yahoo に買収された Flickr へ保管。

11-06-20111

できることなら、シンプルに一本にまとめたいけれど、快適さを追求すると、便利なものを組み合わせなければならない。

 

Windows Live Writer から Flickr へアップロードするためのプラグイン

WLW から、Flickr へ投稿するには、プラグイン「Flickr Upload」を使う。

このプラグインは、挿入したい画像を、その場へ配置することには向いている。しかし、Flickr へのアップロードがバックグラウンドで行われないため、画像を挿入する度に、アップロードが完了するのを待たなければいけない。

できることなら、画像の投稿先を変更したかった。

 

2. 画像の投稿先を Picasa へ変更した理由

Google のサービス には、写真の投稿サービスとして、Picasa ウェブ アルバム がある。随分前に、Blogger への画像の投稿は、Picasa へ保存されると聞いたことがある。

Picasa ウェブ アルバムには、Blogger(カスタム ドメインを含む)にアップロードされたすべての写真が保存されます。

Picasa と Picasa ウェブ アルバムの ヘルプ より)

しかし、 Picasa にも利用の上限があり、Flickr のように、月毎のアップロードの上限を設けるという形態ではなかったため、相変わらず Flickr を利用し続けた。

 

Google+ に登録すると大きな写真も無料の保存容量にカウントされない
少し前から、Google+  が話題になっている。それに伴い、Picasa について、ヘルプを見直したら、

Blogger に投稿された写真はすべて、Picasa ウェブ アルバムに無料で割り当てられている 1 GB の保存容量に含まれます。特定のサイズに満たないファイルは、無料の保存容量にはカウントされません

(同上より、太字は引用者による)

と書かれていた。

「特定のサイズ」って何のことだろう?と思ったら、

無料の保存容量の制限 - Picasa と Picasa ウェブ アルバムの ヘルプ によると、

無料の保存容量の制限

Picasa ウェブ アルバムでは、写真と動画にのみ 1 GB の保存容量を無料でご利用いただけます。ただし、特定のサイズに満たないファイルは、この無料の保存容量にはカウントされません。これは、Picasa ウェブ アルバムに写真や動画を保存する他の Google サービス(Blogger、Google マップを含む)でのアップロードにも適用されます。

ここで重要なのは、画像のサイズ。以下のように説明がある。

無料の保存容量の制限

800×800 ピクセル以内の写真や 15 分以内の動画は、無料の保存容量にカウントされません。

(同上 より)

それに加え、以下のような記述もあった。

Google+ に登録済みの場合
無料の保存容量の制限

2048×2048 ピクセル以内の写真や 15 分以内の動画は、無料の保存容量にカウントされません。

Google+ に登録すれば、こんな大きな画像も無料の対象になることに驚いた。 (@_@;

念のため、自分の Picasa ウェブ アルバム を確認したら、なぜか WLW から投稿した画像が保存されているアルバムを発見。写真の枚数が 500 枚以上あったので、そこそこ容量は消費していそうに思えた。しかし、Picasa ウェブ アルバム のページ下部にある利用容量を見たら、

現在、1024 MB 中 0 MB (0%) を使用しています。

となっていた。

これで何の心配もなく、画像の投稿先を Flickr から Picasa へと変更できる。

WLW に画像を挿入するのも一瞬で済む。画像が投稿されるのは、全体の記事が投稿されるタイミングなので、使い勝手がとても良い。 ^^

(cf. Windows Live Writer で挿入する画像の、余白のデフォルトを設定するには )

2011年9月18日日曜日

Web フォントを利用して、Web サイトで個性的な文字を使う

1. 海外のブログで、シンプルなデザインのサイトは、Blogger を使っていることが多い

海外のブログで、ファッション系のサイトを見ていると、Blogger である場合が多い。写真のサイズは大きく、綺麗な画像が載せられている。サイト全体はシンプルで、コンテンツに目が行くように配慮されている。

日本では、 Ameba を利用する人が結構いるようだが、掲載されている写真を見ると、なんだかなぁ…と。ただし、自分が知る限り、水原希子の画像は綺麗で、道端アンジェリカ の写真はでかい。

 

2. Blogger で使えるフォント

ところで、Forget*me*not... を眺めていたら、記事のタイトルの文字が、綺麗な細身のフォントであることに気がついた。Firebug でソースを見たら、使われているフォントは、

Josefin Slab

こんなフォントをウェブで使えたかな?と思い調べてみると、

の中に Josefin Slab があった。

 

3. Web フォントにより、サイトで使えるフォントの幅が広がる

なぜこのようなフォントを使えるのか、参照先を読んでみると、

A couple of months back we introduced Web Fonts to Blogger in Draft. Today we’re excited to not only launch Web Fonts to ALL Blogger users, but also announce we’ve added an additional 35 fonts to the mix, for a grand total of 77 fonts! …

Web Fonts, brought to you by our good friends at Google Fonts, let you spice up and further personalize your blog. J

Blogger Buzz: The Quick Brown Fox より)

Web フォント と言う技術が使われているようだ。

今、はやりのWeb Fontとは?:Webトレンド:ITmedia オルタナティブ・ブログ によると、

ここ1、2年、注目を集めているのがWeb Font。これは、興奮する話です。フォントを全てウェブ上に置いてしまって、誰でも同じようにサイトが見れるようにしようというアイデア。 有名どころで言えば、fonts.com Web Font , Typekit, Font Deck, そして最近Googleが開始したGoogle web fontsなどがあります。

日本語の場合、欧文フォントのように豊富ではないけれど、日本語 ”webフォント” で検索すると 幾つかサービスが見つかる。

日本語WEBフォントサービス(デコもじ&フォントプラス)を比較してみた。 | ラズル株式会社スタッフブログ によると、

英語のWEBフォントサービスが世に現れてから、ブログやニュースサイト等を中心に爆発的に広がりを見せましたが
日本語フォントのサービスはまだまだ始まったばかりで、私が知っているのは以下2つです。
デコもじ
フォントプラス

 

4. Google Web Fonts を使ってみる

上記で紹介されていた Web フォントの中で Google Web Fonts を試しに使ってみる。

Google Web Fonts を開いたら、Start choosing fonst ボタンを押す。

左側にある Search ボックスに、フォント名 `Josefin Slab’ を入力して、フォントを絞り込む。

フォントの下にある Quick-use リンクをクリックすると、使いたいサイトに埋め込むコードと、フォントを適用したい要素に対する CSS が表示される。

 

5. Tumblr で Web フォントを使う

例えば、Tumblr のタイトルのフォントを、上記で取得したものに変更したいとする。

Tumblr を表示させ、customize ボタンを押す。

メニューより、Theme において、Use custom HTML ボタンを押す。

表示された HTML 中における head 要素の中に、Google Web Fonts で取得した link 要素を貼り付ける。

次に、メニューより、Advanced > add custom CSS に、Google Web Fonts で取得した CSS をタイトルに対して適用するように記述する。自分が使っているテーマでは、以下のようにして CSS を適用した。

#header h1{
font-family: 'Josefin Slab', serif;
}

これで、タイトルのフォントが 'Josefin Slab' となった。

Google Web Fonts を使用する前。

使用後。

Google Web Fonts で、日本語フォントも使えるようになるといいなぁ。そうすれば、デザインのために文字を画像として表示する、なんてことをしなくて済む。

2011年9月11日日曜日

Blogger の新しいインターフェイスで、改行が自動的に <br /> に変換されないようにする

1. 旧インターフェイスの改行設定

ブログを書くときは、Windows Live Writer を利用している。

WLW で書いた内容を HTML で表示させ、Blogger に貼り付けると余分な改行が入る。

このため、Blogger では、エディタに入力された改行は、<br /> タグに変換されないようにしている。Blogger のメニューより、

  • 設定 > フォーマット > 改行の変換

で「いいえ」を選択。

CropperCapture[321]

これにより、過去に投稿した記事を、ブラウザ上で編集しようとした場合、「HTMLの編集」モードで表示される。

CropperCapture[322]

 

2. 新インターフェイスの改行設定

最近、Blogger の新インターフェイスに移行した。

「新しい Blogger インターフェイスを使ってみる」

のリンクを選択。

CropperCapture[317]

新インターフェイスは、すっきりとしたデザインで、好感が持てた。ブラウザから記事を投稿するときの、エディタの表示領域が広くて使いやすい。

しかし、新しいインターフェイスで、以前に投稿した記事を修正した後、プレビューを表示させたところ、ブラウザ上で改行して見える箇所が <br /> に変換されてしまった。 (@_@; 旧インターフェイスでは、そのような設定にはしてなかったにも関わらず。

新しいインターフェイス上で、改行が <br /> に変換されない設定を探したけれど、メニューから

  • 設定 > フォーマット

がなくなっている。

CropperCapture[323]

新しいインターフェイスを使いたかったのに残念。。

…と思っていたが、記事を編集するエディタの右側に表示される

  • 投稿の設定 > オプション > 改行

に「<br> タグを使用」という選択があった。

CropperCapture[320]

一度、設定を変更したら、それ以降別の記事の編集、新規投稿でも、同じ設定になってくれた。

これで新インターフェイスに移行できる。 ^^

2011年4月27日水曜日

Blogger で記事を投稿するときに HTML のエラーが表示されたら

Blogger で記事を投稿する際、

  • 「HTML の編集」

を利用していると、以下のようなエラーが表示されることがある。

作成された HTML ファイルは承認できません: 終了タグが開始タグと一致していません: A

CropperCapture[174]

これはどこかで HTML のタグを書き間違えているということ。上例の場合、どこかの A タグに問題がある。

Blogger の投稿画面で A タグを検索しても良いけれど、記事が長いと結構大変。 (+_+)

 

HTML を検証するためのツールを手がかりに

代わりに Another HTML-lint gateway を使い、HTML の検証をすると問題の箇所を早く見つけることができる。

  1. 上記サイトにアクセスし、Blogger に投稿しようとした HTML のソースを DATA フィールドに貼り付け。
  2. DATA にチェックを入れ、「チェック」ボタンを押して検証。
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html

Another HTML-lint gateway via kwout

結果がたくさん表示されるので、当該箇所を見つけるのに、

この場合、

<A>

で検索したら、

9: line 39: </A> に対応する開始タグ <A> が見つかりません。

をすぐに見つけることができた。

ちなみに、HTML のソースが一行にまとまっている場合、Windows Live Writer などを使い、HTML を整形してからの方が結果が見やすくなる。

 

参考サイト

2010年8月11日水曜日

Wibiya でブログに Facebook の 「いいね!」 ボタンを設置

1. ブログ下部にツールバーを配置

の記事を目にして以来、ブログ下部に表示されるボタンの一群を導入している。

「あると邪魔かな?」

と思いつつ、Blogger での設定は、Wibiya に登録した後、ボタン一つでできるというお手軽さが好印象だったため、そのまま使い続けている。ブログテンプレートを直接いじらないで済むので、後々のメンテナンスが楽。

Blogger 以外なら、上記のサイトに設置方法が書かれている。

 

2. Facebook とは

ところで、最近よく記事を目して気になる SNS は Facebook

米SNS最大手Facebook、アクティブユーザーが5億人突破 | ネット | マイコミジャーナル (Yoichi Yamashita 2010/07/22) によると、

Facebookは2004年に大学生向けSNSとして始まり、2006年に一般(13歳以上)へのサービス提供を開始した。当時は米SNS市場において MySpaceに差を付けられた2位だったが、2007年のFacebook APIの公開で風向きが変わった。開発パートナーの増加と共にユーザー数が急増し始め、2009年4月に2億ユーザー、同年9月に3億ユーザーを達成。設立6周年の今年2月に4億ユーザーを突破し、それから6カ月とかからずに5億ユーザーのマイルストーンに到達した。

 

a. mixi との比較

しかし、日本国内では利用者が少ない。

現在、世界中に5億人を超えるユーザーを持つ世界最大のSNSである。そのうち日本国内のユーザー数は約100万人。

(Facebook – Wikipedia より)

日本では今のところ mixi が圧倒しており、会員数で見ると桁が違う。 “『mixi』のユーザー数が2,000万人に « 株式会社ミクシィ” (2010年04月14日) によると、

本日、ソーシャル・ネットワーキング サービス(SNS) 『mixi』のユーザー数が、2,000万人を超えたことをお知らせいたします。

ただし、自分は 「足あと」 機能が好きではないので使わなくなった。はじめたときはおもしろくて誰が来たか見ていたけれど、ソーシャルグラフが生長するに連れて足枷になる。

 

b. 国内における Facebook の注目状況

世界のSNSマップ最新版。Facebookが131ヵ国中111ヶ国でトップ:in the looop:ITmedia オルタナティブ・ブログ」(2010/06/15) で紹介されている SNS の勢力図を見ると、アジア地域は Facebook の勢力に飲み込まれないで健闘していると見るべきか、鎖国してると言うべきか…。

Google トレンド で他の日本の有力な SNS 「GREE, モバゲー」を加えて比較してみると、世界的に見れば当然ながら facebook が圧倒的。

日本に限って見ても、2010年を境に facebook の勢いが止まらない。

興味深いのは、「詳細地域」を見ると facebook が注目されているのは都市部ではなく東京に一極集中という感じ。

日本でも3ー5年でFacebookがトップSNSに?=Zuckerberg氏【湯川】 : TechWave」 (2010年06月24日)  によると、

どの国でもまず、外国人の友人がいる人がFacebookを使い始め、やがて自国の友人も招待し始める。そして自国の友人関係の数が、外国人との友人関係の数を上回ると、あとはその国でFacebookが一気に広がるのだという。…

日本を含む残りの国について、そのtipping pointが半年や1年以内にくることはないが、3年から5年以内には可能性が十分ある、というのが同氏の考えだ。

と述べられていることより、地方でも注目されるレベルになったときには、会員数もすごいことになっているのかな?

 

c. Facebook になじめるのか?

グローカル化 – Wikipedia という言葉がある。この意味は、

    1. 地球規模/多地域での展開を目指しながらも、地域の法律や文化に応じる形で提供される製品やサービス。
    2. インターネットなどの電子コミュニケーション技術を活用し、地球規模/多地域の基準の下で提供される地域限定のサービス。
    3. 地域の文化や需要に応じるために、世界的な企業が設立する現地法人、など。

img08-11-2010[2]-vert果たして、facebook は日本向けに上手くローカライズされるのだろうか。もしくは日本の文化圏でソーシャルグラフが生長できる土壌たりえるのか。加えて、馴染んだ SNS から乗り換える気にさせるプラットフォームなのか。

ちょっと使ってみた感じでは、機能の全容を把握しずらい。特にプライバシーとアプリケーションの設定で戸惑った。

メインコンテンツとおぼしき 「掲示板」 も、言語を英語に設定すると `Wall’ と表示されるが、果たしてこれは 「掲示板」 と呼ぶに相応しいものなのだろうか?

 デジタルネイティブ ならぬ Facebook ネイティブなる世代が誕生し、「こういうのが掲示板だ」 と最初から認識していない限り、違和感を感じるに違いない。慣れるまでに時間がかかりそう。 Twitter のときと同じようにはいかない気がする。 (+_+) その分、いじるのおもしろそうだけれど。

個人的には 「足あと」 機能がないという理由だけでこちらを使いたい。そんなものまで可視化してソーシャルグラフに加える必要はない。

 

d. 目新しインターフェイスに慣れるのは骨が折れる

直感的に操作できないものは、それの善し悪しに関わらず、必要性に迫られる人以外には支持されない。

家の親父は、若いとき割と新しもの好きだった。会社では一早くワープロを使って文書を作成し、上司には

「手書きでキチンと書かれていないような文書はダメだ!」

と言われ、頭にきたと聞いたことがある。同年代の中ではインターネットにも親しんでいる方で、自分でホームページを作成している。しかし、頭の中は古いままで、昔ながらのシンプルな掲示板 & メールやメルマガによる同報通信というモデルを頑なに堅持。 Twitter を勧めても関心がないようで、いわんや Facebook をや。

寄る年波には勝てないなと横目で見つつ、翻って自分のことを考えてみれば、以前よりも新しいものに対する免疫力が低下していると感じることがある。例えば、昨日まで地デジのリモコンに

`d データ’ ボタン

があることに気づいてなかった。加えて、その操作が「カーソルと決定、4色のボタン」というシンプルな構成にも関わらず、「これ押すとどうなるんだ?あれ…? え?ん…?」と操作する気が失せた。 (+_+)

万人に受ける操作モデルとインターフェイスはいかに難しいかと実感。

 

3. 「いいね!」 ボタンの設定

話を戻して Facebook 。このサービスの中で一番シンプルでわかりやすいのが 「いいね!」 ボタン。

Facebookの”like”ボタンは立ち上げから24時間で10億回押されるって」によると、

“like”ボタンの機能はほかのサイトの上でも … ユーザがそのページのコンテンツを気に入ったシルシとしてボタンを押す。気に入った理由などメモも書ける

この「いいね!」ボタンを Wibiya のツールバーに追加してみる。

まずは Web Application Bank | Wibiya にアクセス。

img08-11-2010[4]

Facebook Like Button を選択して install を押す。

img08-11-2010[3]

後は表示する位置を右上の Rearrange Toolbar ボタンを使って調整。

これで以下のようにブログ下部に表示された。

img08-11-2010[5]

 

Facebook での表示

「いいね!」 ボタンを押すと、Facebook の掲示板の「最近のアクティビティ」に表示される。

img08-11-2010[6]

もう一度「いいね!」ボタンを押したら、「最近のアクティビティ」から消えた。

2010年3月5日金曜日

Blogger に Twitter の つぶやく ボタンを設置

Topsy の retweet ボタン

http://topsy.com/

Topsy via kwout

以前、「A-Liaison BLOG: Bloggerにretweetボタンを付ける方法」 を参考に Twitter のリツイートボタンをつけた。これに対して、”[を] Topsy はじめました” では検索エンジン TOPSY が用意している retweet ボタンが紹介されていた。今回はこちらを試してみることに。

ところで Topsy と言えば、

Topsyは普通の検索エンジンだ。しかしこのサービスは検索結果を得るのに根本的に新しいターゲットを利用している。Twitterユーザーだ。

3 千万のTwitterユーザーは全体として巨大なコンテンツ発見マシンとして機能する。

(Twitter検索エンジン、Topsyがローンチ―重要性の尺度はTwitterでReTweetされた回数 より)

という記事ではじめて知った。Topsy を使って site 検索をして、ブログに対してつぶやかれた内容を見ることに使える。 ( ex. site:jutememo.blogspot.com – Topsy )

 

ボタンの設定

以下のように、茶色で小さく 「つぶやく」 と表示させたいとする。

img03-04-2010[1]

まずは、Blogger のダッシュボードよりテンプレートを編集できる状態にする

Topsy Labs » Topsy Retweet Button for Web Sites” の説明に従い、head 要素内に

  • ボタンの設定情報
  • retweet ボタンを表示するための JavaScript ライブラリ

を読み込むコードを挿入。

<script type="text/javascript">
     var topsy_nick = "Twitterのユーザ名";
     var topsy_theme = "";
     var topsy_style = "small";
     var topsy_order = "retweet,count,badge";
     var topsy_tweet_text = "つぶやく";
     var topsy_retweet_text = "つぶやく";
</script>
<script type="text/javascript" src="http://cdn.topsy.com/topsy.js?init=topsyWidgetCreator"></script>

色の指定は以下から選ぶ。

ボタンを大きなサイズにしたければ、topsy_style を big に。

デフォルトではリツイートされてない記事の場合、ボタンには`tweet’ と表示され、リツイートされたものは `retweet’ と表示される。日本語でどちらも 「つぶやく」と表示したいので、

  • topsy_tweet_text
  • topsy_retweet_text

を 「つぶやく」 とそれぞれ設定。

 

ボタンの表示

次にボタンを表示したい位置に以下のコードを貼り付ける。

<div class="topsy_widget_data">&lt;!--
    {
        "url": "<data:post.url/>",
        "title": "<data:post.title/>"
    }
--&gt;</div>

気をつけるのは、Twitter の Follow me のバッジを付けたときと同じく、script タグ内の < >HTML の特殊文字 に置き換えること。

url と title に設定してある data タグは Blogger に固有の設定で、レイアウト データ タグ の posts を参照。これにより、Twitter に貼り付けられる記事の URL とタイトルが設定される。

表示の位置を微調整したい場合は、上記の div タグに style 属性を追加。例えば、ボタンを左の要素に対してやや間を空け、右に寄せて配置したい場合、

 style="float:right;margin-left:10px;"

を追加。

 

Blogger のテンプレートにおけるボタンの表示位置

ボタンを記事のタイトルの右側に表示したい場合、上記のボタン表示用のコードを

<h3 class='post-title entry-title'>

の要素の中の末尾に置く。

記事の末尾に置く場合は、

<div class='post-footer'>

の要素の中に配置。

2010年3月2日火曜日

Blogger でブログと記事のタイトルの表示順序を変更

1. サイト内検索をしたとき、記事のタイトルが途切れる

過去に書いたブログの記事を探すとき、タイトルを手がかりに Google で site 検索 する。その結果、非常に見にくかった。なぜなら、検索結果が、

ブログのタイトル : 記事のタイトル

の順で表示されるため。

ブログのタイトルが長いので、記事のタイトルが途中で切れてしまう。(+_+) 記事のタイトルを、ブログのタイトルの前に表示させたい。

 

2. Blogger のテンプレートをカスタマイズ

Aptana でテンプレートを整形

ブログのテンプレートを編集する前に、テンプレートの内容を整形しておく。

これまでに、ブラウザ上でテンプレートを少しずつ変更している。そのため、徐々にコードが汚なくなった。 (@_@;) インデントがぐちゃぐちゃで見にくい。

  • ダッシュボードより 「レイアウト > HTML の編集」 を選択。

「テンプレートの編集」 において 「ウィジェットのテンプレートを展開」 のチェックを付ける。

091121-001.png

テンプレートの内容を Aptana で開く。Aptana の

  • メニューより 「Edit > Format

を選択するとコードが整形される。

ちなみに、Aptana で開くために、「It’s All Text! で HTML を編集」 と同じ手順で行うと、後々便利。

 

3. ページのタイトルをカスタマイズ

タイトルとブログの名前が表示される順序を変える方法は、以下を参照した。

上記の解説によると、テンプレートのタイトルを表示している部分を、以下のコードに置きかえれば良いとのこと。

    <b:if cond='data:blog.pageType == "index"'>
      <title><data:blog.title/></title>
    <b:else/>
      <title><data:blog.pageName/> | <data:blog.title/></title>
    </b:if>

変更してから 2週間くらい経過した時点で、Google のインデックスの大部分が反映された。

 

タイトルを区切る文字

ところで、上記の設定では、

記事のタイトル | ブログのタイトル

と表示される。

これに対して、はてなダイアリー では、以下の区切り文字をよく見かける。

記事のタイトル - ブログのタイトル

見た目は `-‘ の方が好みだけれど、drupal で `|’ と表示されているので、このままにした。

 

テンプレートのタグについて

Blogger のテンプレートで使われている、接頭辞 <b: は Blogger の B なのかな?

条件に応じたタグは、レイアウト用ウィジット タグ - Blogger ヘルプ によると、

<b:if cond='condition'>
   [条件が true ならば、コンテンツを表示]
<b:else/>
   [条件が false ならば、コンテンツを表示]
</b:if>

条件式内の属性の値 の data: は、

data: タグは、実際にすべてのコンテンツを表示する上で重要なタグです。…

data: タグを使ってアクセスできるデータは非常に多く、利用するウィジットによってさまざまです。 必要なデータを探すには、一覧リストをご覧ください。

(レイアウト用ウィジット タグ - Blogger ヘルプ より)

2009年12月16日水曜日

Blogger でサイドに Twitter の Follow me のバッジを付ける

1. Twitter の Follow me バッジをつけたい

たまに見かけるブログの横にある Twitter の Follow me のバッジ。どこのサービスを利用しているのだろう?

ブログの横に「Follow me」バッジをつける方法・・・ - IDEA*IDEA ~ 百式管理人のライフハックブログ によると、

このバッジをつけるツール、たくさんあるかと思いきや、探してみたらGO2WEB20のものしかないようですね・・・。

 

2. コードの生成とテンプレートの編集

早速、Twitter "Follow" Badge for your site でコードを生成。

  • Blogger のダッシュボード > レイアウト > HTML の編集 の「テンプレートの編集

において、</body> タグの前に貼り付けた。

しかし、バッジが表示されず。 (+_+)

 

3. <> を HTML の特殊文字に置き換える

Blogger Buster: 16 Useful Twitter Tools for Blogger によると、Blogger で表示させるには、上記のコードを HTML/JavaScript のウィジェットとして追加するか、または、

Replace <-- and --> in the generated code with &lt;-- and --&gt; (this enables the script to function correctly and display the badge in your page)

script タグ内の < >HTML の特殊文字 に置き換えることによって動作するようだ。

先ほど生成されたコードの中の

<script  … ><!--

--></script>

<script  … >&lt;!--

--&gt;</script>

に変更することで、バッジが表示されるようになった。

2009年12月14日月曜日

Windows Live Writer で編集中のブログテーマ (テンプレート) を CSS で カスタマイズ

1. ブログを書くとき、実際のデザインと同じ状態を表示させたい

ブログを書くときは、できるだけ実際に表示される状態を見ながら書きたい。

Windows Live Writer は、編集モードにおいて、

  • メニューより「表示 > 使用中のテーマを編集

にチェックを入れると、実際のブログで使用している CSS に基いて表示される。

(ショートカートキー: Ctrl + F11 により、チェック状態をトグルできる。)

この機能を利用するには、予めブログのテーマをダウンロードする必要がある。また、ブログのテーマを変更するごとに再設定が必要。

ブログ テーマを更新

メニューより「ブログ > ブログ設定の編集」を選択。

091214-014.png

「編集」のブログテーマにおいて、「テーマの更新」ボタンを押す。

091214-013.png

 

2. ブログテーマの表示をカスタマイズ

ブログのデザインによっては、ブログのテーマで表示させると見にくくなる。

自分のブログは、左にサイドバーを配置し、メインコンテンツは右という構成。

091214-016.png

この場合、Windows Live Write でブログのテーマの更新をすると、サイドバーが表示される。ブログを書くとき、この領域は不必要。サイドバーが表示されないようにしたい。

091214-015.png

ブログ テーマの保存場所

ブログのテーマは、以下のディレクトリに保存される。

Windows XP の場合

  • C:\Documents and Settings\ユーザ名\Application Data\Windows Live Writer\blogtemplates

Windows Vista の場合

  • C:\Users\ユーザ名\AppData\Roaming\Windows Live Writer\blogtemplates\ランダムな文字列\blogtemplates

Windows 7 の場合

  • C:\Users\ユーザ名\AppData\Roaming\Windows Live Writer\blogtemplates\ランダムな文字列

blogtemplates 以下にあるフォルダの名称は、ランダムな文字列。

何度かブログテーマの更新を行った場合、複数のフォルダが保存される。フォルダの更新日時を見て、最新のものを選ぶ必要がある。フォルダ中から、表示に対応している CSS の記述を探し、カスタマイズして保存する。

 

CSS をカスタマイズ

予め、実際のブログを見ながら、Firebug を使い、サイドバーの辺りを

  • 右クリック > 「要素を調査」

して、CSS を確認しておく。

自分の場合、index.html ファイルにおける CSS の記述中の

  • div#main

の以下の属性を削除することによって、サイドバーを消すことができた。

float:right;
width:66%;

2009年9月20日日曜日

JavaScript で外部サイトのフィードを取得 - Google AJAX Feed API を利用

0. 目次

  1. 公式 HP と、外部ブログを組み合わせる事例が多い
  2. ユーザが HP を更新したいなら、CMS を利用するのがいい
  3. 外部ブログのフィードを取得する方法
  4. Google AJAX API
  5. Google AJAX Feed API
  6. フィードを取得するためのソースコード

 

1. 公式 HP と、外部ブログを組み合わせる事例が多い

見かけよりも、サイトの内容が大事

090918-006企業サイトを見ていると、公式 HP とは別に、ブログは外部サービスを利用している例を見かける。

「金かけてるのに、自社の紹介とブログが別って、何で?」

CMS を使って、一体感のあるデザインにした方がいいと思うけれど、別々の例をいくつか見ていたら、次第に慣れてきた。

「それでも、まぁいいかぁ~」

という気になる。

Flash を中心に構築しているサイトであれば、ブログを組み込むのは手間がかかるだろう。

Twitter の興隆っぷりを見ていると、発信する媒体の統一性など、受信してくれる価値に比べたら微々たるもの。情報が文脈から切り離され、情報としてのみ価値を有し、デザインは二の次というのは潔い。RSS フィードを受信することが習慣化するにつれ、ますますそういう意識に陥る。見かけよりも中身が大事。

 

されど見かけも重要

しかし、デザインに全体的な統一感があると、サイトをはじめて見る人にしてみれば、内容の理解がしやすい。まとまって見える分記憶に残りやすい。

「ちゃんとしたところだな」

という感じを演出できる。

以前、それほど PC に詳しくない人から、

「ブログはホームページではないですよね?」

と言われたことがある。最初、その意味がわからなかった。できあいのシステムを利用したブログと、所謂 HP 作成用のソフトで作ったものとは、別のものだと認識しているようだ。感覚として、そこに境界を感じるらしい。

そういう認識を持つ人にとって、ブログでサイトを作って

「これホームページにしておきませんか?」

というのは通じない。体面が大事な企業の HP が、Blogger で何のカスタマイズもされていなかったら、

「ここ大丈夫か?」

と思ってしまう感覚は理解できる。人は、見かけで判断することもあると。

追記 (2010.5.3) : ダダ漏れ東京女子流 のインタビューが配信されているのを見た。そのグループのサイトを見たら、一目で色々なサービスを利用していることがわかるデザインだった。公式サイトは看板で、個別の内容は各々のサービスを参照という形が、最近益々不自然でない印象を受ける。

 

2. ユーザが HP を更新したいなら、CMS を利用するのがいい

年間少しのお金を出せば、ドメインとサーバスペースを取得できる。できあいのブログが嫌なら、CMS をインストールすれば、快適な環境が得らえる。

しかし、既にプロバイダーと契約していると、容量が少ないながら無料でホームページ用のスペースを持っていることが多い。既にその場に HP を作っている場合、

「アドレスを変えたくないし、無料のスペースがあるのでこれ以上はお金をかけたくない。」

と考える人がいる。そういう心情も理解できなくはない。しかし、加えて

「でも、ブログのように自分で HP の内容を更新したい。」

となると、ちょっと悩んでしまう。 (+_+) 

サーバの仕様によっては CGI が使えるので、CMS で置き換えることもできる。しかし、無料の場合、制約が多くて無理なことも多い。もし、Perl が使えるなら、シンプルで軽そうな blosxom は良さげ。これでも処理が重たく感じられるようなサーバなら、別の手を考えるしかない。

 

3. 外部ブログのフィードを取得する方法

HP にとって、アドレスは昔ほど意味を持たなくなっている。単語を検索して、辿りつくのが普通。

であるなら、既存の HP は潰して、別の URL へリダイレクトさせるだけの役割を持たせればいい。しかし、今あるものは、それはそれで活用したい場合、どうしよう?

苦肉の策として、日々更新したい内容は、外部のブログで更新。そのフィードを、スクレイピングして既存のホームページに表示する。

しかし、制約があって、サーバに RSS を取得するライブラリをインストールして利用する方法がわからなかったら、どうしよう?

JavaScript: 外部RSS読み込み by “Google Ajax Feeds API” | t.p.fields - web+tech info  によると、

とあるお仕事でJavaScriptを用いて外部RSSを読み込む作業をすることになった。…

JavaScriptでのクロスドメイン処理は難しいので、”Google Ajax Feeds API“を使わせてもらうことにした。

“Google Ajax Feeds API”は、かの有名なGoogleが提供してくれる、RSS/Atomなどの各種フィードを取得するためのJavaScript API。

なるほど、これを使って外部ブログのフィードを読み込み HP に表示すればいい訳か。

そこで、以下の図のような構成を想定。

  1. HP には、トップページに日々更新した内容を表示。
  2. レイアウトは 2段組で、左側にはブログのタイトルの一覧を表示し、右側にはその内容を配置。
  3. ブログの内容は、外部ブログからまるごと取得して表示。
  4. 内容の右下の「前の投稿」のリンクは、トップページに表示した記事よりも前の投稿へのリンク。このリンクにより外部ブログへ飛ぶ。

090918-005

これで、既存の HP はそのままで、ブログを使ってユーザが更新できる。ブラウザの JavaScript が有効であれば、見かけそのままで、HP のアドレスを変更する必要もない。かなり強引な方法だけれど。。 ^^;

 

4. Google AJAX API

Home Page - Google AJAX API によると、

Google AJAX API では、リッチでダイナミックなウェブサイトを JavaScript と HTML だけで実装できます。JavaScript コードを数行追加するだけで、自分のサイトに地図動的な検索ボックスを追加したり、フィードをダウンロードできます。

この中に Google AJAX Feed API がある。

デベロッパー ガイド - Google AJAX API もチェック。共通の枠組みについて説明がされている。

 

5. Google AJAX Feed API

Google AJAX Feed API によると、

AJAX Feed API を使用すると、JavaScript だけを使用して、公開されている Atom フィードや RSS フィードをダウンロードできるので、自分のコンテンツや Google Maps API などの他の API に、フィードを簡単にマッシュアップできます。

早速利用方法から見ていく。

AJAX API キーの使用 によると、

この API を使用するためにキーは必要ありません。アプリケーションやサイトでキーを使用するかどうかは、完全に任意です

今回は AJAX API キーは利用しない。

この API が扱いやすそうなのは、JSON 形式と XML 形式の結果 によると、

AJAX Feed API の JSON 形式は、オリジナルのフィードを簡素化し、標準化したものです。これにより Atom および RSS の titledescriptionsummary などの属性が共通の JSON プロパティにマッピングされるので、Atom フィードにも RSS フィードも統一的に利用できます。

必要な情報は JSON 形式の結果 を見ればよい。

予め承知しておくことは、

AJAX Feed API は Feedfetcher を使用しているため、API から提供されるフィードのデータが最新ではない場合もあります。Google のフィード クローラ (Feedfetcher) がフィードを取得する頻度は、ほとんどのサイトでは 1 時間に 1 回を超えることはありません。一部の頻繁にアップデートされるサイトに対しては、更新の頻度が高くなります。

(フィードのクロール頻度 より)

外部ブログの投稿がリアルタイムに HP の方に更新されることはない。pubsubhubbub でリアルタイムになるといいのだけれどなぁ。

 

6. フィードを取得するためのソースコード

表示

index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <head>
  <link rel="stylesheet" type="text/css" href ="gajax.css"></link>
  <script type="text/javascript" src="blog.js"></script>
  <script type="text/javascript" src="http://www.google.com/jsapi"></script>
  <script type="text/javascript" src="gajax.js"></script>
 </head>
 <body>
  <!-- フィードのタイトル一覧 -->
  <div id="feedTitle"></div>
  
  <div id="main">
   <!-- フィードの内容 -->
   <div id="feed"></div>
   <!--前の投稿へのリンク -->
   <div id="nextLink"></div>
  </div>
 </body>
</html>

 

gajax.css

基礎編1 フロートを使ってみる を参考に CSS で段組。

#feedTitle { 
 font-size: small;
 float:left;
 padding: 10px;
 width: 30%;
}
#main {
 float:left;
 width: 67%;
}
#nextLink {
 text-align: right;
}
.title { font-size: x-large; }
.content { padding: 20px; }

 

Google AJAX Feed API の利用

gajax.js

はじめての Google AJAX Feed API を元に作成。先ほどのデベロッパー ガイド - Google AJAX API も参考に。

以下のコードは、冒頭の blog オブジェクトで、対象の外部ブログのフィード URL と、1 ページに表示する投稿数、外部ブログの URL を指定。

その他以下を参照。

ブログのエントリーの公開日時の扱いは、Date オブジェクトを生成してから使うことに気をつける。

publishedDate

エントリが公開された日付の、「13 Apr 2007 12:40:07 -0700」という形式の文字列。new Date(entry.date) を使って日付を解析することができます。

(JSON 形式の結果 より)

var blog = { 
 feedurl: "http://jutememo.blogspot.com/feeds/posts/default",
 numOfPost: 7, // 1 ページに表示する投稿数
 url: "http://jutememo.blogspot.com/"
}

// エントリーのタイトルをリンク付きにして div 要素に入れて返す。
function createTitleWithLink(entry, idx){
 var div = document.createElement("div");
 var anchor = document.createElement("a");
 anchor.href = entry.link;
 anchor.setAttribute("name", idx);
 anchor.appendChild(document.createTextNode(entry.title));
 div.className = "title";
 div.appendChild(anchor);
 return div;
}
// エントリーの内容を div 要素に入れて返す。
function createContent(entry){
 var div = document.createElement("div");
 div.innerHTML = entry.content;
 div.className = "content";
 return div;
}
// エントリーのタイトルへのアンカーを作成し、div 要素に入れて返す。
function createFeedTitle(entry, idx){
 var anchor = document.createElement("a");
 var div = document.createElement("div");
 anchor.setAttribute("href", 
  location.protocol + "//" + location.hostname + location.pathname + "#" + idx);
 anchor.appendChild(document.createTextNode(entry.title));
 div.appendChild(anchor);
 return div;
}
// 「前の投稿」を生成
// createURL 関数は blog.js で定義。
function createNextLink(entry){
 var anchor = document.createElement("a");
 anchor.href = createURL(blog.url, blog.numOfPost, new Date(entry.publishedDate));
 anchor.appendChild(document.createTextNode("前の投稿"));
 return anchor;
}
google.load("feeds", "1");
function initialize() {
 var feed = new google.feeds.Feed(blog.feedurl);
 feed.setNumEntries(blog.numOfPost)
 feed.load(function(result) {
  if (!result.error) {
   var divFeedTitle = document.getElementById("feedTitle");
   var divFeed = document.getElementById("feed");
   var divNextLink = document.getElementById("nextLink");
   for (var i = 0; i < result.feed.entries.length; i++) {
    var entry = result.feed.entries[i];
    // フィードのタイトル一覧を生成
    divFeedTitle.appendChild(createFeedTitle(entry, i));
    // フィードのタイトルを生成
    divFeed.appendChild(createTitleWithLink(entry, i));
    // フィードの内容を生成
    divFeed.appendChild(createContent(entry));
   }
   // 前の投稿へのリンクを生成
   divNextLink.appendChild(createNextLink(result.feed.entries[blog.numOfPost-1]));
  }
  });
}
google.setOnLoadCallback(initialize);

 

Blogger における「前の投稿」へのリンク

blog.js

JavaScript で Blogger の「前の投稿」へのリンクを生成 を参照。

// Blogger の場合

// num が一桁の数字のとき先頭に 0 を加えて二桁にする
function padzero(num){
 return ("" + num).length == 1 ? "0" + num : num;
}
function format(date){
 return date.getFullYear() + "-" + 
  padzero(date.getMonth()+1) + "-" + 
  padzero(date.getDate()) +
  encodeURIComponent("T" + padzero(date.getHours()) + ":" + 
   date.getMinutes() + ":" + 
   padzero(date.getSeconds()) + "+") +
  "09:00";
}
function createURL(url, numOfPost, date){
 return url + "search?updated-max=" + format(date) + "&max-results=" + numOfPost;
}