Metro アプリストアへの登録記念ということで(単に、登録をだけで、アプリの公開はまだですが)、
Windows Live Writer を外部から操作する tips ということで。
準備としては、以下にあるように
c# – Windows Live Writer Automation – Stack Overflow
http://stackoverflow.com/questions/8490977/windows-live-writer-automation
regsvr32 WindowsLiveWriter.Application.dll
をレジストリ登録。こうしないと、IWindowsLiveWriterApplication2 へのキャストでエラーになります。何故かわからんけど、そういうものみたい。
これで作ったのが以下なコードです。
[img 20120927_01]
の形式で画像を貼りつけることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | namespace LiveWriterPost { class Program { static void Main( string [] args) { if (args.Length == 0) { Console.WriteLine( "LiveWriterPost [path]" ); return ; } string path = args[0]; var lw = new LiveWriter(); lw.NewPost(path); } } public class LiveWriter { public void NewPost( string path) { // ファイルコードは UTF-8 で var sr = File.OpenText(path); // 最初の行はタイトル string title = sr.ReadLine(); // 残りは本文 string html = sr.ReadToEnd(); NewPost( title, html ); } public void NewPost( string title, string body ) { string imgdir = @"file://D:\work\blog\image\" ; body = Regex.Replace( body, @"\r\n\[img ([^]]+)\]" , "\r\n\<img src='" +imgdir+ "'$1.jpg" />"); // 先頭行を削除 body = Regex.Replace(body, "^\r\n ", " "); // 改行を変更 body = Regex.Replace( body, "\r\n" , " \r\n" ); var _app = new WindowsLiveWriterApplication(); var app = (IWindowsLiveWriterApplication2)_app; app.BlogThisHtml(title, body ); } } } |
ここのコードの部分は、wordpress 上で [/code] を使って書き直しています。なので、要検討。
あと、リンクの自動設定のところも。