把用octopress最新发布的博文同步到提供metaweblog API的博客(例如博客园)上
最近逐渐开始用octopress在github pages上写博客,之前每次发完博客都用我自己写的那个windows live writer的markdown插件发布到博客园上,但是觉得很麻烦,今天就动手写了个小程序SyncPost自动把最近的一篇博文同步到博客园上,使用metaweblog API。
程序很简单,使用前请先配置SyncPost.exe.config,就把主博客域名,本地的octopress的_posts目录,需要同步到的博客metaweblog地址,用户名和密码。如果关心信息安全,可以不写密码,这样程序在运行时会要求输入密码。
代码很少,可以到Github上看看。
下面简单介绍一下。
读密码,在控制台提示用户输入密码,然后用*遮盖,同时支持退格键,代码如下: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
29private static string getPassword()
{
    string password = System.Configuration.ConfigurationManager.AppSettings["Password"];
    if (!string.IsNullOrEmpty(password))
    {
        return password;
    }
    Console.Write("Password: ");
    ConsoleKeyInfo key;
    do
    {
        key = Console.ReadKey(true);
        if (key.Key != ConsoleKey.Backspace && key.Key != ConsoleKey.Enter)
        {
            password += key.KeyChar;
            Console.Write("*");
        }
        else
        {
            if (key.Key == ConsoleKey.Backspace && password.Length > 0)
            {
                password = password.Substring(0, (password.Length - 1));
                Console.Write("\b \b");
            }
        }
    } while (key.Key != ConsoleKey.Enter);
    return password;
}
从markdown中提取博文标题,根据文件名生成博文地址。
| 1 | private static void getLastestBlog(out string title, out string body) | 
发布。
| 1 | private static void postLastestBlog(string password, string title, string body) | 

