2010年10月30日土曜日

Bloggerでソースコードの色づけ

追記:

この記事は説明不足だった。検索で出てくると迷惑なので追記しておく。 Syntax HighlighterのBloggerへの導入は Blogger に Syntax Highlighter ガジェットを追加する方法を参照すればOK。さらに注意として、私のブラウザ環境の場合、ダウンロードしたblogger.htmlファイルはInternet Exprolerで開かなければAdd to Bloggerボタンが表示されなかった(ChromeとFirefox 4.0ではエラーになる)。

本文:

  • google-code-prettify 
  • Syntax Highlighter
の二つがある。

google-code-prettifyは、クリボウの Blogger Tips: コードをハイライトする「Code Prettify」ウィジェットを参照。

Syntax Highlighterは、クリボウの Blogger Tips: コードをハイライトする「Blogger Syntax Highlighter」ウィジェット を参照。

この二つは共にJavascriptで書かれたクライアントサイドから汎用的に使うことが出来るライブラリ(google-code-prettify - Project Hosting on Google CodeSyntaxHighlighter)で、Bloggerウィジェット/WordPressプラグインなどはこのライブラリをそのまま利用して機能を実現する形となっている。

以下、Blogger Syntax Highligherウィジェットによるコード色づけ例。こちらの方が表示が綺麗なので、こちらを採用。後でウィジェット内のCSS設定してキーワード・構文毎の色づけとかもっと細かくできるようにしたい。

class Foo (object):
  def __init__(self, bar):
    self.bar = bar

  def egg(self):
    print("egg")

foo = Foo()
foo.egg()

2010年10月29日金曜日

IPython 0.11.alpha1.git

このIPython最新版では、設定ファイルの書式がかなり変更されているようだ。
以下に最新のチュートリアルが用意されている。
IPython Documentation

Windows上でipython-qtconsoleを使う

とりあえずのメモ。QtコンソールからIPythonシェルが使えると、リッチなUIでかつWindows上のreadlineの問題を考えなくてすむようになるので、是非とも誰もが導入できるようにしておきたい。

まず基本となるIPythonの取得先。
`ipython`コマンドで通常起動するだけならこれだけでOK。`ipython-qtconsole`コマンドでQtコンソールを起動したい場合には追加ライブラリのインストールが必要となる。必要なライブラリと取得先は以下。 IPython/PyQt4はWindowsインストーラで導入できる。zmqはVisual Studioでビルドしなければならないので少し手間がかかる。pyzmqは先にビルドしたzmqのヘッダーファイル・ライブラリファイルの位置をsetup.cfgで設定する必要があるので注意。

追記:

例のこのサイトからzmqライブラリのバイナリが付属したpyzmqのWindowsインストーラを持ってくることが出来るようだ。これを使えば導入も簡単だと思われる。

Windows上にreadline/IPythonを導入する

以下、まだ書きかけ、とりあえずメモ。

自分でパッチ当てする箇所があったりして何かと手間取ったのでメモ&改変コード公開しておく。

pyreadline

PyReadline/Intro - IPython
インストールは、リポジトリからbzrでソースコードを取得して`python setup.py install`するのがお勧め。
bzr branch lp:pyreadline 
面倒な場合は、Windowsインストーラも配布されているのでこれを使えばOK。
pyreadline - a python replacement of readline in Launchpad

2010年10月28日木曜日

BloggerでJavascriptコード埋め込み

Javascriptコード埋め込みのテストとして、ボタン+クリックカウンタ。

ブログエントリ内にscriptも含めてHTMLのタグは全て入れ放題となっている。XSSなどのセキュリティ上の危険は全て自己責任で、ということみたいだ。