2009.08.10.

SyntaxHighlighter Evolved を使ってみる

WordPressに便利機能を追加してくれるのがプラグインです。
ちょっと前から使っているのが、ソースコードを見やすくしてくれて行番号もふってくれる「SyntaxHighlighter Evolved」です。
ウェブ上でソースコードを表示するときって、どうやって書くのが正解なのか正直言ってよくわかりません。preタグの中でさらにcode要素としてソースを書くのが一般的なようなので、このサイトでもそれに習っていました。ただソースコード部分は、そのままだとうまく表示されないので、実体参照変換してから貼り付けるとかいろいろと面倒。
そういうのを非常に楽ちんにしてくれるのが、「SyntaxHighlighter Evolved」なわけです。

こんなふうに表示してくれます。

SyntaxHighlighter Evolved のスクリーンショット

SyntaxHighlighter Evolved のスクリーンショット

ステキだ。記入時に実態参照変換も必要ありません。
使い方も簡単。ソースの内容を例えばcssならば、[ css ] cssソース [ /css ] というふうにソース内容に合わせて囲ってあげるだけ。

で、例によってウェブサイトデザインに合わせて外観イメージを少しいじってみます。こんな感じで

<div id="menu">
	<ul>
		<li>Home</li>
		<li>Themes</li>
		<li>About</li>
	</ul>
</div>

「SyntaxHighlighter Evolved」を組み込むと、pluginsフォルダの中のsyntaxhighlighterの中にさらにsyntaxhighlighterがあってその中にstylesフォルダががあります。中には、cssファイルがいろいろはいっています。
今回は、shThemeDefault.cssを元にして改変します。「SyntaxHighlighter Evolved」でDefault設定を使う場合参照しているのは、shCore.cssとshThemeDefault.cssのふたつなので、shThemeDefault.cssの後ろの方にshCore.cssの変更分も合わせて下記のcssを書き加えました。

/*shThemeDefault.css改変部分*/

.syntaxhighlighter
{
	background-color: #e7e5dc !important; /*行番号部分の色*/
}

/* Highlighed line number */
.syntaxhighlighter .line.highlighted .number
{
	background-color: #ffdc40 !important; /*ハイライトしたときの行番号色*/
	color: black !important; /*ハイライトしたときの行番号文字色*/
}

/* Highlighed line */
.syntaxhighlighter .line.highlighted.alt1 .content,
.syntaxhighlighter .line.highlighted.alt2 .content
{
	background-color: #ffdc40 !important; /*ハイライトしたときのコード行色*/
}

/* Add border to the lines */
.syntaxhighlighter .line .content
{
	border-left: 3px solid #fff !important; /*行番号とコードの境界*/
}

/* Second line */
.syntaxhighlighter .line.alt2 .content
{
	background-color: #f6f6f6 !important; /*偶数行の色*/
	border-right: 3px solid #fff !important; /*偶数行の右端にボーダー追加*/
}

.syntaxhighlighter .line .content .block
{
	background: url(wrapping.png) 0 1.5em no-repeat !important; /*改行アイコン 行間調整*/
}

.syntaxhighlighter .toolbar /*ツールバーのバックカラー消去*/
{
	background-color: transparent !important;
	border: none !important;
}

.syntaxhighlighter /*追加項目*/
{
	width: 90% !important;
	overflow: auto !important;
	margin: 18px auto 36px !important;
	border: 1px dotted #959aa1 !important;
}

.syntaxhighlighter:before /*タイトル部分追加*/
{
	display: block !important;
	content: "Source Code";
	color: #6f6e69 !important;
	background-color: #e7e5dc !important;
	height: 20px !important;
	width: auto !important;
	padding-left: 5px !important;
	border-bottom: 3px solid #fff !important;
}

/*shCore.css改変部分*/

.syntaxhighlighter,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter span
{
	line-height: 1.5em !important; /*行間調整*/
}

.syntaxhighlighter
{
	padding: 0px !important; /* 外周のpaddingは無し */
}

.syntaxhighlighter .toolbar
{
	padding: 2px 8px 2px 0 !important; /* ツールバー表示調整 */
}

お気に召したら、使ってみてください。

本当は、WordPressサイト管理画面の「SyntaxHighlighter Evolved」設定にある「Additional CSS Class(es)」という項目で、自分で作ったcssを読み込めるのかなと思ったんですが、使い方がよくわかりませんでした。英語のページもあさってみましたが、なにしろ英語は苦手なもんでチンプンカンプン。誰かこの設定の使い方わかった人がいたら、教えてください。
そんなわけで、ここでは単純にshThemeDefault.cssの後ろに書き足したというわけです。

わからないついでに、もうひとつ。
頭のところで「Source Code」と表示するようにしてありますが、できれば「CSS」とか「HTML」とかソースに合わせて表示したいところです。
前のバージョンでは、class名が”html”などとなっていたので、書き分けられましたが「Evolved」ではclass名が”brush: xml;”などとなっています。これってcssであつかうときは、どうしたらいいんだろう?よくわかりません。
「教えて、えらい人!」

詳しい導入方法、使い方などは、下記サイトをご覧になるとわかりやすいと思います。

2009.07.15.

ソーシャルブックマークのボタンをつくる

最近よく見かけるソーシャルブックマークのボタンを付けてみることにしました。
ブックマークするための複数のボタンをまとめて設置できるサービスは、ウェブ上にたくさんあります。コードを貼り付けるだけなので、設定も簡単・・・
簡単すぎておもしろくない。特にボタンの形状は、たいていブックマークサービスのアイコンを使用しているので、ボタンに見えるものもあるし、見えないものもある。並べてみても統一感がありません。

そんなわけで、当サイトに合わせてアイコンから作ってみました。

まずは、それぞれのアイコンを作成。サイトのイメージに合わせてあまり目立ちすぎない程度に色調を統一。サイズもそろえてボタンふうにアレンジ。通常のアイコンとマウスを重ねた時用の二種類用意します。それからマウスカーソルを重ねたときにボタン名を表示するようにフキダシふうタイトルも追加(ボタンのタイトルは、リンクタグにtitle属性を加えておけば一応表示するんだけど、ワンテンポ遅れるし、この手作り感がいいかなと思って)

次に、クリックしたときにブックマークサービスに飛んで、タイトルやurlを入れてくれるようにコードを設定します。
ここで使ったブックマークサービスは、上から順に
twitter、delicious、Yahoo!ブックマーク、Googleブックマーク、はてなブックマーク、livedoorクリップ。

<ul  class="social_bookmarks">
	<li class="twitter_icon"><a href="http://twitter.com/home?status=<?= urlencode(mb_convert_encoding(the_title("","",false),"UTF-8")) ?> <?php the_permalink() ?>"target="_blank"><img src = "保存したアイコンのURL" alt = "twitter" /><span>twitterでつぶやく</span></a>
	</li>

	<li class="delicious_icon"><a href="http://delicious/post?url=<?php the_permalink() ?>&amp;amp;amp;amp;amp;title=<?= urlencode(mb_convert_encoding(the_title("","",false),"UTF-8")) ?>" target="_blank"><img src = "保存したアイコンのURL" alt = "del.icio.us " /><span>delicious</span></a>
	</li>

	<li class="yahoo_icon"><?php echo '<a href="http://bookmarks.yahoo.co.jp/action/bookmark?t='.urlencode(the_title('','',false)).'&amp;amp;amp;amp;amp;u='.urlencode(get_permalink()).'" target="_blank"><img src = "保存したアイコンのURL" alt = "Yahoo!ブックマーク" /><span>Yahoo!ブックマーク</span></a>';?>
</li>

	<li class="google_icon"><a href="http://www.google.com/bookmarks/mark?op=edit&amp;amp;amp;amp;amp;bkmk=<?php the_permalink() ?>&amp;amp;amp;amp;amp;title=<?= urlencode(mb_convert_encoding(the_title("","",false),"UTF-8")) ?>" target="_blank"><img src = "保存したアイコンのURL" alt = "Googleブックマーク" /><span>Googleブックマーク</span></a>
	 </li>

	<li class="hatena_icon"><a href="http://b.hatena.ne.jp/append?<?php the_permalink() ?>" target="_blank"><img src = "保存したアイコンのURL" alt = "はてなブックマーク" /><span>はてなブックマーク</span></a>
	</li>

	<li class="livedoor_icon"><a href="http://clip.livedoor.com/redirect?link=<?php the_permalink() ?>&amp;amp;amp;amp;amp;title=<?php bloginfo("name"); ?>%20:%20<?= urlencode(mb_convert_encoding(the_title("","",false),"UTF-8")) ?>" target="_blank"><img src = "保存したアイコンのURL" alt = "livedoorクリップ" /><span>livedoorクリップ</span></a>
	</li>
</ul>

JavaScriptは使わないのと、WordPlessを前提にしてあります。
twitterはブックマークじゃないし、Googleはブックマークだけどソーシャルじゃないというのは、ちょっと置いておいて・・・

CSSはこんな感じ

ul.social_bookmarks a img {
	border: none;
}

ul.social_bookmarks {
	list-style: none;
	width: 145px; /*ボタンの数に合わせてサイズ調整*/
	margin: 1em 0 1em auto;/*右寄せ*/
	padding: 0px;
}

ul.social_bookmarks li { /*横並びに*/
	float: left;
	width: 16px;
	height: 16px;
	margin-left: 7px;
}

ul.social_bookmarks:after { /*floatの解除*/
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}

.social_bookmarks ul li.twitter_icon {
	background-image: url("マウスを重ねたときの画像URL") ;
	background-repeat: no-repeat;
}

.social_bookmarks ul li.delicious_icon {
	background-image: url("マウスを重ねたときの画像URL") ;
	background-repeat: no-repeat;
}

.social_bookmarks ul li.yahoo_icon {
	background-image: url("マウスを重ねたときの画像URL") ;
	background-repeat: no-repeat;
}

.social_bookmarks ul li.google_icon {
	background-image: url("マウスを重ねたときの画像URL") ;
	background-repeat: no-repeat;
}

.social_bookmarks ul li.hatena_icon {
	background-image: url("マウスを重ねたときの画像URL") ;
	background-repeat: no-repeat;
}

.social_bookmarks ul li.livedoor_icon {
	background-image: url("マウスを重ねたときの画像URL") ;
	background-repeat: no-repeat;
}

ul.social_bookmarks span {
	margin: 0;
	padding: 0;
	background-image: url("タイトル用フキダシ画像のURL");
	background-repeat: no-repeat;
	width: 116px;
	height: 34px;
	position:relative;
	top: -50px;
	left: -50px;
	text-align: center;
	font-size: 11px;
	line-height: 20px;
	color:black;
	display: none; /*ボタンタイトルを非表示に*/
}

ul.social_bookmarks a:hover span { /*マウスを重ねたときにボタンタイトル表示*/
	display: block;
}

ul.social_bookmarks a:hover { /*ボタンタイトルの下線消去*/
	text-decoration: none;
}

ul.social_bookmarks a:hover img { /*マウスを重ねたときボタン画像を非表示にしてバックグラウンド画像を表示*/
	visibility: hidden;
}

リストにしたソーシャルブックマークボタンを横並びに変えます。
ボタンのバックグランド画像(ボタン-02)を設定し、その上にボタンイメージ(ボタン-01)を重ねます。
ボタンにマウスカーソルを重ねたとき、ボタン-01を非表示にして、その下のボタン-02が現れるようにします。
同時に非表示にしてあったボタンタイトルを表示。

せっかく作ったので、フリーアイコンとして公開しておきます。気に入ったら使ってみてください。もしリクエストがあれば他のボタンも作ります(気長に待ってもらえればですが・・・)

social_bookmarks.zip(12kb)

わざわざこんな手間をかけるより簡単にソーシャルブックマークボタンを並べたい人は、ネット上を探してみて下さい。ブログに貼り付けるだけで設置できるのがいろいろ見つかります。

2009.05.19.

Picasa スライドショーのサイズを調整してサイドバーに入れる

よくブログでサイドバーにFlickrのブログパーツを表示しているのを見かけますが、Picasaでも似たようなのがないかなと探してみたら、Picasa内に「スライドショーを埋め込む」ボタンを見つけました。

Picasa ウェブアルバムのスライドショーにしたいアルバムを開いて、横にある「このアルバムへのリンク」をクリックすると、「スライドショーを埋め込む」という項目が出るので、クリック。プレビューとともにスライドショー作成の画面が出ます。
何種類かのサイズを選べるんだけど、サイドバーで使えそうなサイズは、「小144ピクセル」と「中288ピクセル」くらい。
ところがこのサイズは、まわりの黒い部分も含めた大きさです。

中288ピクセル「中288ピクセル」

中144ピクセル「小144ピクセル」

最近のブログでは、サイドバーもだんだん幅広タイプが増えているような気もしますが、普通は180〜200ピクセルくらいが多いのではないでしょうか。
288ピクセルは大きすぎるし、144ピクセルだと写真部分が小さすぎて見にくい。
そこで、サイドバーに入れやすいように大きさを調整してみました。
できれば縁の黒いのもやめて、自分で好きな形にしたいし。

まずは、Picasaの「スライドショーを埋め込む」の貼り付け用コードをコピーして、自分のブログのサイドバー部分にペースト。どれでもいいんだけど今回は「中288ピクセル」を選んでいます。
中身を見ると、width=”288″ height=”192″というのがあるのでwidth=”160″ height=”120″に変更。
それからスライドショー部分を適当なidを付けて囲ってやります。
< div id="picasa-slideshow"> スライドショーのコード </div>
こんな感じで。

次は、cssで微調整。

#picasa_slideshow {
width:160px;
height:120px;
margin:15px auto;
border: 1px solid #333333;
}

marginで上下の間隔調整とセンター配置。
細いボーダーも追加してます。

「中288ピクセル」の写真部分のサイズは200×150、「小144ピクセル」は72×54 になっています。
いろいろためしてみた結果、写真だけの表示にしてサイドバーで使えそうなサイズは、

  • 200×150
  • 160×120
  • 144×108
  • 72×54

こんなところです。サイドバーの横幅に合わせて使い分けてください。
あとは、cssで見せ方を工夫してやればOK。

実際に設置してみたのは、こちら「えぞりすノート