为了增加外链等考虑,独立博客往往有将博文同步到其他博客社区的需求。自己人肉黏贴的方式笨拙、重复,对于程序猿而言,着实不可取。

我在 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 插件的结构很简单:

  • 安装nokogirimetaweblog两个 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的更多相关文章

  1. 【iOS】XcodeColors插件与CocoaLumberjack工具

    工欲善其事必先利其器,好的开发者一定是懂得利用工具来提高自己的效率的,Xcode有很多第三方插件可以使用,最近发现一个可以给控制台着色的工具XcodeColors,结合CocoaLumberjack一 ...

  2. 为什么选择使用 Dropbox 而不是其他品牌同步工具(不要加上多余的功能,要极致和专注)

    作者:吴锋链接:http://www.zhihu.com/question/19646859/answer/14707821来源:知乎著作权归作者所有,转载请联系作者获得授权. 窃以为楼主的问题,准确 ...

  3. 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 ...

  4. 愚公oracle数据库同步工具

    最近,利用一些时间对oracle数据库实时同步工具做了一些调研分析,主要关注了linkedin的databus和阿里的yugong两个中间件,其中databus需要在每个待同步的表上增加额外的列和触发 ...

  5. 【收藏】Web前端开发第三方插件大全

    收集整理了一些Web前端开发比较成熟的第三方插件,分享给大家. ******************************************************************** ...

  6. Firefox书签同步工具Xmarks

    Xmarks作为Firefox最受欢迎的社会化书签扩展之一,其前身为Foxmarks,并且显著的增加了它的功能.Xmarks已被LastPass(领先的密码和数据管理)收购. 之前一直是只使用火狐浏览 ...

  7. Fiddler抓包【7】_次要功能和第三方插件

    1.替换HTTP Request Host 应用场景:进行开发时,线上去测试跳转调试 替换命令:urlreplace news.baidu.com www.baidu.com: 清除命令:urlrep ...

  8. 【分享】Web前端开发第三方插件大全

    收集整理了一些Web前端开发比较成熟的第三方插件,分享给大家. ******************************************************************** ...

  9. Xamarin.Forms第三方XAML预览工具-LiveXAML简单体验

    截至目前,Xamarin官方的Xaml Previewer工具仍然处于测试阶段,使用中也发现了各种不便,例如各种莫名其妙的渲染失败,或者提示需要编译项目才能渲染等等,复杂项目基本不可用, 完全没有体现 ...

随机推荐

  1. Docker---(1)Docker 简介

    原文:Docker---(1)Docker 简介 版权声明:欢迎转载,请标明出处,如有问题,欢迎指正!谢谢!微信:w1186355422 https://blog.csdn.net/weixin_39 ...

  2. Hypervisor scheduler

    Techniques for configuring a hypervisor scheduler to make use of cache topology of processors and ph ...

  3. 关于LWIP断开网线后重连问题(热插拔问题)

    近期在弄STM32+LWIP协议.在网络拔掉网线情况下.无法又一次连接. 网上找了好多方法都没有实现,着实郁闷! 后来无意间看到了临时解决这一问题的方法.尽管不是那么完美,但最算能解决这个问题.分享给 ...

  4. 使用SystemC进行硬件仿真

    使用SystemC进行硬件仿真 环境 linux-x86-64 bash g++ 下载解压SystemC SystemC下载地址 解压下载的包 tar zxvf systemc-2.3.3.tar.g ...

  5. POJ 2363 Blocks (ZOJ 1910) 数学

    杨宗纬的歌"这一路走来" 还蛮好听的,这首歌静静的躺在我的音乐盒某个阴暗的角落里,今天随机播放才发现的,哈哈. 数学一直是硬伤...... -------------------- ...

  6. Chrome 临时目录

    mklink /J "C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\Cache" " ...

  7. 6、USB Video Class Specification

    关于USB Class 将设备归为既定的类别,并对相应类别的设备的在USB协议的应用级协议和接口作出规范,这样只要按照类设备的标准实现驱动程序和设备,则一套驱动可以驱动这一类的所有设备,而这一类设备可 ...

  8. mac 系统 突破百度网盘网速限制

    感谢https://blog.csdn.net/Deft_MKJing/article/details/82561564

  9. php 删除数组指定元素,下标还不乱

    $arr是目标数组 $offset是要删除的元素的key 1是指删除的长度 array_splice($arr, $offset, 1); 之前用的unset,但是比如删除的是第三个,那么下标的2就会 ...

  10. Android 从硬件到应用:一步一步向上爬 4 -- 使用 JNI 方法调硬件驱动

    Android下,java应用程序通过JNI方法调用硬件抽象层模块,在Android 从硬件到应用:一步一步向上爬 3 -- 硬件抽象层訪问硬件驱动 中我们已经编译好了硬件抽象层模块,以下就要開始为H ...