octopress第三方插件:博文同步工具syncPost
为了增加外链等考虑,独立博客往往有将博文同步到其他博客社区的需求。自己人肉黏贴的方式笨拙、重复,对于程序猿而言,着实不可取。
我在 github 上找到了 syncPost 这个针对 octopress 的第三方工具,能够通过一些论坛提供的 metaWeblog 服务实现 octopress 最新一篇博文的同步提交。
这大概就是我要找的东西吧。不过,其中有些细节并不是我想要的:
- 1.在本地配置文件存储论坛账户的密码。虽然可以设置为 ignore 不提交到 git 代码库中,但这也并不安全。
- 2.只能同步最新的一篇博客,没有整体的博文搬家功能。
- 3.先比其他的 octopress 插件,原来版本的代码结构难于维护,比如有自己单独的配置文件,而不是使用全局的
_config.yml
(在那个版本中大概是为了不把明文密码提交到版本库中),比如 ruby 文件单独在一个_custom
文件夹下等
基于这些点,我 fork 了作者的代码,定制成了它现在的样子。
功能
通过 rake 的方式实现同步功能:
- 1.同步所有 octopress 的博文到目标博客。 (
rake sync_all_posts
) - 2.同步最新一篇博文到目标博客。(
rake sync_lates_post
)
开发
这个 octopress 插件的结构很简单:
- 安装
nokogiri
和metaweblog
两个 gem。前者实现对 octopress 生成的 html 页面的解析,找到对应的博文。提供了客户端发起 MetaWeblog 请求的功能。 - 在全局配置文件
_config.yml
中配置了目标博客 MetaWeblog 的服务地址、用户的账号信息。 - octopress/plugins/sync_*.rb 三个文件则是代码实现。其中 sync_post.rb 中包含了 post 类,是主要的逻辑代码所在,sync_all_posts.rb 和 sync_latest_post.rb 则是对前者的调用。
- 修改了 octopress 的 Rakefile,通过 rake 的方式实现功能。
下一步
希望能进一步完善这个插件,现在考虑到的有:
- 增加同步所有博文功能中,对目标博客中已有博文的查重功能。即对于已经同步过去的博客,不再发送请求,或者实现编辑功能的同步功能。由于站点的 MetaWeblog 服务大多对请求有时限控制,同步过程中可能出现中断,此时部分博文已经同步过去,而部分没有,这种情况下,暂时没有好的解决方式。
- 测试其他有 MetaWeblog 服务的博客站点(现在仅测试了 cnblog)。
- cnblog 的博文显示中,似乎不支持 octopress 的代码块样式。
欢迎感兴趣的朋友参与到这个 repo 中来:)
原文地址:http://biaobiaoqi.github.com/blog/2013/08/31/octopress-3rd-party-plugin-syncpost/
版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
octopress第三方插件:博文同步工具syncPost的更多相关文章
- 【iOS】XcodeColors插件与CocoaLumberjack工具
工欲善其事必先利其器,好的开发者一定是懂得利用工具来提高自己的效率的,Xcode有很多第三方插件可以使用,最近发现一个可以给控制台着色的工具XcodeColors,结合CocoaLumberjack一 ...
- 为什么选择使用 Dropbox 而不是其他品牌同步工具(不要加上多余的功能,要极致和专注)
作者:吴锋链接:http://www.zhihu.com/question/19646859/answer/14707821来源:知乎著作权归作者所有,转载请联系作者获得授权. 窃以为楼主的问题,准确 ...
- Red Gate系列之四 SQL Data Compare 10.2.0.885 Edition 数据比较同步工具 完全破解+使用教程
原文:Red Gate系列之四 SQL Data Compare 10.2.0.885 Edition 数据比较同步工具 完全破解+使用教程 Red Gate系列之四 SQL Data Compare ...
- 愚公oracle数据库同步工具
最近,利用一些时间对oracle数据库实时同步工具做了一些调研分析,主要关注了linkedin的databus和阿里的yugong两个中间件,其中databus需要在每个待同步的表上增加额外的列和触发 ...
- 【收藏】Web前端开发第三方插件大全
收集整理了一些Web前端开发比较成熟的第三方插件,分享给大家. ******************************************************************** ...
- Firefox书签同步工具Xmarks
Xmarks作为Firefox最受欢迎的社会化书签扩展之一,其前身为Foxmarks,并且显著的增加了它的功能.Xmarks已被LastPass(领先的密码和数据管理)收购. 之前一直是只使用火狐浏览 ...
- Fiddler抓包【7】_次要功能和第三方插件
1.替换HTTP Request Host 应用场景:进行开发时,线上去测试跳转调试 替换命令:urlreplace news.baidu.com www.baidu.com: 清除命令:urlrep ...
- 【分享】Web前端开发第三方插件大全
收集整理了一些Web前端开发比较成熟的第三方插件,分享给大家. ******************************************************************** ...
- Xamarin.Forms第三方XAML预览工具-LiveXAML简单体验
截至目前,Xamarin官方的Xaml Previewer工具仍然处于测试阶段,使用中也发现了各种不便,例如各种莫名其妙的渲染失败,或者提示需要编译项目才能渲染等等,复杂项目基本不可用, 完全没有体现 ...
随机推荐
- 【2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 G】Query on a string
[链接]h在这里写链接 [题意] 让你维护字符串的一段区间内T子串的个数. [题解] 因为t不大,所以. 暴力维护一下a[i]就好. a[i]表示的是S串从i位置开始,能和T串匹配几个字符. 用树状数 ...
- 修改IIS7并发连接数目限制
转自原文 修改IIS7并发连接数目限制 1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools > Ad ...
- 07_android入门_採用HttpClient的POST方式、GET方式分别实现登陆案例
1.简单介绍 HttpClient 是 Apache Jakarta Common 下的子项目,能够用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,而且它支持 HTTP 协议 ...
- JAVA中正則表達式总结(具体解释及用途)
很多语言,包含Perl.PHP.Python.JavaScript和JScript,都支持用正則表達式处理文本,一些文本编辑器用正則表達式实现高级"搜索-替换"功能.所以JAVA语 ...
- C API函数描写叙述(S-W)
25.2.3.59. mysql_select_db() int mysql_select_db(MYSQL *mysql, const char *db) 描写叙述 使由db指定的数据库成为由mys ...
- IL命令初学者要知道的事
在一个中间语言程序中,如果某一行以“.”开始,代表这是一个传输给汇编工具的指令:而不是以“.”开始的行是中间语言的代码.上图中.method是方法定义指令,定义了Main方法,参数在“()”中,IL代 ...
- FeatureLayer,FeatureDataset,FeatureClass,Feature的区别与联系总结
duckweeds原文 FeatureLayer,FeatureDataset,FeatureClass,Feature几个概念一点点总结,欢迎指教 刚学AE,其中很多概念都模糊不清.经过一段时间的摸 ...
- Android系统开发(1)——GCC编译器的编译和安装过程
GCC编译器介绍 GCC编译器(GNG C Compiler)是GNU项目中符合ANSI C标准的编译系统,能够编译C C++ Object C等语言编写的程序,同时GCC也是一个交叉编译器,特别 ...
- perl对比两个文件的行
perl对比两个文件的行 对比两个文件的各行,得到A与B相同的行/A与B不相同的行 主要功能 得到相同行 得到A中包含,B不包含的行 得到B中包含,A中不包含的行 具体执行情况 Perl代码 #!/u ...
- swift学习第一天:认识swift以及swift的常量和变量
一:认识swift // 1.导入框架 //#import <UIKit/UIKit.h> import UIKit // 2.定义一个标识符 // int a = 10; // swif ...