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]
の形式で画像を貼りつけることができます。
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] を使って書き直しています。なので、要検討。
あと、リンクの自動設定のところも。