はてなの改行対策
はてなダイアリーでは、テキストの中の改行は、改行ではなく段落の区切りとなって表示されてしまう。気にせず書こうかと思ったんだけど、長い文章を書こうと思うとやっぱり気になる。最初に自分が取った対策は、「段落の区切りまで改行を打たない」だった。この場合、複数の文から成る長い段落を書いていると、異様に長い「一行」が出来上がることになる。けれども、Emacsの表示設定を右端で折り返すようにしておけば(自分は、はてなダイアリーの記事はemacsで書いてsimple-hatena-modeで投稿している)、一応画面の中に自分が書いた文章が表示されるので、問題無いかと思った。思いきや、長い段落の途中でC-aを押すと、カーソルがえらい遠くに上がっていってしまうことに気が付いた。
何とかならんかと思って、simple-hatena-modeの後ろで動いているはてダラのソースを見てみたら、投稿しようとしているファイルにフィルタをかけられる機能発見。そういえば、そんなことがHPに書いてあった気がする。
なので、適当にテキストの中の改行を除くスクリプトを書きましたよ、というお話。if, elseばっかで何だか残念なコードだ。。。
#!/usr/bin/env python import sys import re fname = sys.argv[1] f = open(fname, "r") out = "" verbatim = False for l in f: if not verbatim: temp = l.strip() if len(temp) == 0: out += "\n" elif temp[0] == "*": out += "\n" + temp + "\n" elif (temp[0] == "-" or temp[0] == "+"): if out[len(out) - 1] != "\n": out += "\n" out += temp + "\n" elif re.match("^>\|.*\|$", temp): verbatim = True out += "\n" + temp + "\n" else: out += temp else: out += l if re.match("^\|\|<$", l.strip()): verbatim = False print out