はてなダイアリーのログインシークエンスの変更により、SSL通信が単体で難しいnScriptでは動作させるのが困難になりました。
よって、対応の目処が立つまで、以下は放置します。
悪しからずご了承下さいます様お願いいたします。
あれこれ苦心しながらはてなダイアリーライターのnScript版を作りました。
SigmarionIIIで動かそうと思うと、Win32版では動作するのにWinCE版で想定した動作をしなかったりして大変でした(^^;
ひとまず何とかやりくりして、SigmarionIIIでの動作が可能な段階までやったけど、やりくりの方法が自分でも納得できてないんです(^^;
とはいえ、一応動きますので、ドキュメントが間に合ってませんけど、リリースしちゃいます。
*ダウンロード
- hw_ns_0.0.6.zip (最新)
- hw_ns_0.0.5.zip
- hw_ns_0.0.4.zip
- hw_ns_0.0.3.zip
- hw_ns_0.0.2.zip
- hw_ns_0.0.1.zip
使い方については続きをご覧ください。
*開発の動機
結城浩さんの「はてなダイアリーライター」がライブラリの有無*1なども関係して、いろいろがんばったんですがCE版のPerl上で動きませんでした。それなら該当部分をCE上でも動くもの*2に置き換えようかとも考えたのですが、そもそもCE版のPerlはWindows向けのActivePerlなどに比べ、インストール手順が面倒くさく*3万人向けとは考えられませんでした。
そこで目を付けたのが以前から興味があったnakkaさんが開発されたnScriptの勉強がてら、移植しようと考えました。
nScriptを選んだ理由は以下の通りです。
- 通常のWindowsとWindowsCE(以下、CE)・PocketPC(以下、PPC)とで同じスクリプトで動作する。
- 実行環境をインストールしやすい。
- ドキュメントが日本語である*4
- 正規表現に対応している
ぶっちゃけた話、Pythonとかでもよかったのかもしれません。というかCE版のRubyがあればそっちのほうが良かった(苦笑)
まぁこのように勉強がてらの取り組みなので、パフォーマンスはもとより動作にも問題をきたすかもしれません。その辺をあらかじめご了承の元、モバイルはてダラ生活の一助にしていただければ幸いです。
*nScriptインストール方法
まずは実行環境となるnScriptをインストールします。
すでにインストール済の向きはスキップしてください。
nScriptのサイト (http://www.nakka.com/soft/ns/) にアクセスし、動作させるものにあわせてダウンロードします。
ここではSigmarionIIIということでご説明いたしますが、どの端末でもたいがい同じです。
- CE2.11以降版をダウンロードする。(ns003ce211.lzh)
- zipファイルを解凍し、binフォルダ内のarmフォルダを開く。
- (母艦上で解凍した場合)ActiveSyncでSig3に接続する。
- 適当なフォルダ(例:\nScript)を作り、そこにns.exeをコピーする。
- Sig3上のns.exeを実行し、ウィンドウが立ち上がればOK。ファイルメニュー→終了で閉じる。
PPC版はCPUごとにCABファイルが分かれているので、該当するCPUのものを母艦上にコピーし、インストールすればOK……のはずです。
*はてなダイアリー for nScriptのインストール
配布ページ(http://hsj.jp/works/archives/000838.html)から最新版のアーカイブをダウンロードしてください。
解凍して出てくるファイルを適当なフォルダ(例:\hw)にActiveSyncなど*5でコピーします。
*実行方法
nScriptにhw.nsファイルを読み込ませて実行します。
ns.exeを実行し、ファイルメニューの「開く」からhw.nsを開いていただいてもかまいません。
以下がコマンドラインでの実行例です。
ns.exe "\hw\hw.ns" -u hogehoge -c
*対応している機能
指定ははてなダイアリーライター:http://www.hyuki.com/techinfo/hatena_diary_writer.html]]本家と同様にコマンドラインオプションと設定ファイルによりおこないます。
現状対応できている機能を以下に列挙します。
- ユーザID指定(未指定時はプロンプトでの入力)
- パスワード指定(未指定時はプロンプトでの入力)
- テキスト設置フォルダ指定
- 単一ファイル指定機能(-f filenameオプション)
- デバッグモード起動(-dオプション)
- Proxyサーバ指定機能
- ファイル名指定(touch.txt,config.txt,cookie.txt)
- Cookieファイルによるログイン維持機能(-cオプション)
- 「ちょっとした更新」機能(-tオプション)
- エントリの削除機能(deleteタイトル)
- *t*によるタイムスタンプ展開。
- 見出しタイムスタンプの置換禁止(-M)
- ユーザエージェントの指定(-a)
対応できていない機能は以下の通りです。
- タイムアウト時間の指定(-T)
- はてなグループ対応(UTF-8対応できないため)
- filter機能
- clientEncoding
- serverEncoding
- ファイルアップロード
*独自に対応している機能(1) TOMBOモード
WindowsCEユーザのみならず、Windowsユーザにも愛用者が少なからずいらっしゃるであろうテキストエディタTOMBOでエントリーの原稿を書くためのモードです。
というのもTOMBOにおいてデフォルトで一行目の内容がファイル名になる*6という特徴があるため、タイトル=日付となってしまいます。
そのため、一行目は日付のみの記述としてファイル名としてだけ機能させ、タイトルは二行目、本文は三行目以降とするという風にするのが、このTOMBOモードです。
指定方法はコマンドラインオプションで-tomboを追加すればOKです。
ns.exe "\hw\hw.ns" -tombo
*独自に対応している機能(2) PukiWiki風入力モード
拙作のMovableType用プラグインmt-sukeroku-plusで対応しているPukiWiki風フォーマットなんですが、普段使っている関係でやはりこれではてなダイアリーを更新したいという欲求にかられましたので、実装しました(もっとやるべきところはあるだろうに)。
まず手順としては設定ファイルに
pukiwiki:on
の記述を追加するか、コマンドラインオプションで
ns.exe "\hw\hw.ns" -pukiwiki
で実行するかのいずれかでPukiWiki風入力モードを受け付けることが可能になります。
各エントリー単位でPukiWiki風フォーマットであるかどうかを判断することになるのですが、タイトルにあたる1行目(TOMBOモード有効時は2行目)に「pukiwiki:」ではじまるタイトルを記述することで、そのエントリーをPukiWiki風フォーマットからはてなダイアリーのフォーマットに変換します。
pukiwiki:タイトル行
もちろん「pukiwiki:」の部分はカットされて上記例では「タイトル行」というのがはてなダイアリー上のタイトルとなります。
さて、PukiWikiというのもかなり膨大な標準仕様にプラグインによる拡張もあり、すべてを対応することはまずできません。
そのため、本スクリプトでも機能を限定して変換をしております。最低限かどうかという点では微妙なので、この辺は今後のバージョンアップでの対応を視野に入れております。
対応しているフォーマットは以下のとおりです。
- ブロック書式
- 引用文(論理行頭が>)
- 整形済テキスト(論理行頭が空白)
- 見出し(論理行頭が*)
- リスト(論理行頭が-)
- 番号リスト(論理行頭が+)
- 定義リスト(論理行頭が:)
- 水平線(論理行頭が----)
- 左寄せ・右寄せ・中央寄せ(論理行頭がLEFT:,CENTER:,RIGHT:のいずれか)
- コメント(論理行頭が//)
- インライン書式
- 太字(''太字'')
- 斜体('''斜体''')
- 取消(%%取消%%)
- 追加(%%%追加%%%)
- リンク
- 行末改行(~)
- 行内改行(&br;)
- ルビ(&ruby(天衣紛上野初花){くもにまごううえののはつはな};)