把用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) |