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

2010年2月28日日曜日

Sphinx の Blogger 原稿用拡張を作ってみました

Bloggerの原稿をいちいち手で書くのが面倒だったので(特にリストとかpreとか)、Sphinxを使ってBloggerの原稿を書く拡張を作ってみることにしました。
参考にしたページはこちら。
http://sphinx.shibu.jp/


■サンプルとダウンロード

githubにアップしてみましたので、こちらからご利用いただけます。
http://github.com/akisute/sphinx_rst2blogger

実際に変換させてみたサンプルをこちらに用意してみました。
http://gist.github.com/317478


■設定

完全に私の個人使用向けになっているので、そのままではたぶん使いにくいと思います。まずはMakefileの以下の部分をご自身の環境に合わせて書き換えてください。
blogger:
$(SPHINXBUILD) -b blogger $(ALLSPHINXOPTS) $(BUILDDIR)/blogger
mate $(BUILDDIR)/blogger/draft.txt
@echo
@echo "Build finished. The draft pages are in $(BUILDDIR)/blogger."
今私は mate コマンドを使って結果をTextMateに表示するようにしていますが、これはTextMateがないと使えないので適当に消すなり pbcopy に書き直すなりすると幸せになれます。

また、Blogger側の以下の設定を有効にしてください。



■実際に使ってみる

使用方法はとっても簡単です。以下のコマンドをシェルから実行してください。
make blogger
make.batは全く操作していないのでWindowsの人はごめんなさい。たぶん使えません><

また、100%完璧な変換はできておらず、主にpreとかtitleの箇所で手動微調整が必要になります。まぁおおよそ上手くやってくれればいいや、という考えです。


■おまけ:Sphinxの拡張機能でカスタムのビルダーを作る方法

拡張機能の作り方自体は以下のページのやり方に沿えば楽勝です。
http://sphinx.shibu.jp/extensions.html
ですが、肝心のビルダーを作るのはかなり苦労しました。

ビルダーの作り方ですが、一から手で書くと挫折するので、もともとSphinxに付いているビルダーをまるごとコピーしてそれを修正するようにすると比較的楽でした。リファレンスとかドキュメントとかないので、ソース見て、 visit_hogehoge とか depart_hogehoge とか書いてあるところを適当に修正してみたら動いた、って感じです。 TextBuilder を元にすると書きやすかったです。 HTMLBuilder はdocutilの機能を拡張しているためdocutilがわからないとさっぱり分かりません。

Sphinx を用いて、 reST の文章を Blogger の原稿に変換する

改良版@2010/02/28 18:08

BPStudy #30 にてSphinx講座があったので、早速それを生かしてreSTでBlogger向けの原稿を作ってみることにします。


■見出しのテスト

Hello world!
foo bar
改行のテスト

段落のテスト

それではインラインマークアップのテストをしてみましょう。 強調強い強調code sample(): print sample 。いかがかな?

リンクのテスト リンクの末尾には必ず_を付ける必要があります。


■さらにもう一つ見出し
  • ul 1
  • ul 2
  • ul 3
    ul 3 continues
  1. ol 1
    1. ol 1-1
    2. ol 1-2
  2. ol 2
    ol 2 continues
    ol 2 continues again
  3. ol 3
番号リストの後に普通のパラグラフを入れてみるとどうなるか
定義リスト
定義リストをつくるにはインデントを頭に付けるなんか定義リストの作り方がおかしいって怒られた
どうすればいい?
しらんがな
どうするもこうするも
/** This is the pre message*/
def pre(self, message):
print 'this is the pre message'
だいたいうまくいっているようです。 okay fine.

2010年1月3日日曜日

Google Code Prettify のテスト

■Python(自動判別)
abesi='abesi'
hidebu=3
print abesi+hidebu
def tawaba(n=0):
result = 0
for i in range(n):
result = result + i
return result
きちんと自動判別してくれているみたいです

■Python(言語指定)
abesi='abesi'
hidebu=3
print abesi+hidebu
def tawaba(n=0):
result = 0
for i in range(n):
result = result + i
return result
lang-pyを指定してみました

■Objective-C(自動判別)
NSString *abesi = @"abesi";
int hidebu = 3;
NSLog(@"%@%d", abesi, hidebu);
@synthesize anProperty;
#pragma mark -
#pragma mark Functions
int tawaba(int n) {
int result = 0;
for (int i=0; i<n; i++) {
result += i;
}
return result;
}
こちらも判別に成功。

■JavaScript(自動判別)
var abesi = 'abesi';
var hidebu = 3;
console.log("%s%d", abesi, hidebu);
// 日本語コメントのテスト
/**
* 日本語コメントのテスト
*/
function tawaba(n) {
var result = 0;
for (var i=0; i<n; i++) {
result += i;
}
return result;
}
日本語コメントのテストなど。

いまいち配色が気に入りませんが、svnのtrunkに直リンクしていてこちらでは修正できないのでまぁ仕方ないかなと思います。それからActionScript3に未対応なのがかなり不満です。外部CSSとJavaScriptが増えて重くなるしonloadのタイミングで実行しなくちゃいけないし・・・Googleらしからぬイマイチさ。

2008年10月12日日曜日

一通りレイアウト調整完了

  • ストレッチデザインになって横に長い日でも安心、IE7でも綺麗
  • タグクラウドはNew Blogger Tag Cloud / Label Cloud様からお借りしました
  • フォントが気に入らないのでそこは直すかも
  • 上に表示されるBloggerバーがいまいち
無事レイアウト調整が終わりましたので、今後はこちらをメインに使っていこうかと思います。
preタグをいちいち自分で入れなくてはいけないのが相変わらずですが、デザインがシンプルで横に長く、ソースコードを沢山入れることが出来そうです。行間がきちんと取られているのも読みやすくて素敵ですね。

欠点として、画像がPicasaサーバーに置かれるようになったのがちょっと迷惑です。あと上に表示されるバーを消したいです(ちょっと邪魔・・・)。

エディタはなかなか使いやすいです。下書きの自動保存が何より一番嬉しい。

テスト投稿

  • Bloggerの機能を試してみる
  • ソースコードはどれぐらい入れられるのか
  • クロスブラウザ対応は?
普通のテキスト 太字 斜体 文字色

左揃え
中央
右揃え
両端揃え・・・はうまくいかないな
  1. 番号リスト
  2. リスト
  3. リスト
引用
これがうまくいくとすごく助かる
if __name__ == '__main__':
sys.path = EXTRA_PATHS + sys.path
script_name = os.path.basename(__file__)
script_name = SCRIPT_EXCEPTIONS.get(script_name, script_name)
script_path = os.path.join(SCRIPT_DIR, script_name)
execfile(script_path, globals())

画像を追加してみたい


ちょっと大きいかな
引用はうまくいかないのでpreタグを試してみる
if __name__ == '__main__':
sys.path = EXTRA_PATHS + sys.path
script_name = os.path.basename(__file__)
script_name = SCRIPT_EXCEPTIONS.get(script_name, script_name)
script_path = os.path.join(SCRIPT_DIR, script_name)
execfile(script_path, globals())

A-Liaison BLOG on Blogger

  • Bloggerに試験的にBlogを移設しました
  • レイアウト等はこれから修正します
  • タグクラウドが使えるようにします
Bloggerアカウントが取れましたので、試しにBloggerに記事をおいてみます。こちらの方が使い勝手がよいということになれば、完全に乗り換えることになると思います。

調べてみたところXML-RPCにも対応しており、Movable Typeから投稿が出来るみたいですね。
このMovable Typeとやらを使えば、iPhoneアプリから記事投稿が出来たりするんでしょうか。未調査。


以前のBlogはこちらから。
http://akisute.blog.shinobi.jp/