同步octopress文章到支持MetaWeblog的博客

  • 获得插件
  • 修改插件
  • 配置配置文件
  • 安装相关的组件
  • 同步博文
  • 其它参考:

同步octopress文章到支持MetaWeblog的博客需要用到一个插件。可能由于版本的问题,安装和配置需要做一些调整,否则如果按插件的说明来安装配置虽然能实现功能,但总有些不太合适的地方。

获得插件

从github上获得插件中plugins中的5个ruby文件,分别实现同步全部博客,同步最后一篇博客,同步指定时间之后的博客,同步指定标题的博客等(有一个公共调用文件)。对这些文件要单独建一个目录存放,比如在octopress的根目录下建一个syncmeta目录。然后将插件放入此目录。

这样做是因为目前版本的octopress中的rake generate操作(实际执行的是jekyll build)时,会把plugins中的所有ruby文件执行一遍,这样做一次rake generate操作,就会做一次同步全部博客,同步最后一篇博客……

修改插件

在所有插件中找到:

1
require ‘./plugins/sync_post.rb‘

改为:

1
require ‘./syncmeta/sync_post.rb‘

配置配置文件

Rakefile的配置完全按github上的说明,_config.yml中的MetaWeblog_url一项,需要使用最新的博客离线编辑的插件URL,如cnblog上我的博客的url就是http://rpc.cnblogs.com/metaweblog/maoxiong ,而不是插件说明中的那样。

安装相关的组件

在Gemfile中加入:

gem ‘metaweblog‘, ‘~> 0.1.0‘
gem ‘nokogiri‘, ‘~> 1.5.9‘

然后执行bundle install进行安装。

安装中会报一些与库文件相关的错误,可以安装相关库文件:

sudo apt-get install libxml2-dev libxslt-dev

同步博文

  • 同步最后一篇博文:rake sync_latest_post[“PASSWD”]

命令中只能输入一个密码,如果有多个博客要同步,要把它们的密码设置成一样的,下同。

在命令中输入密码时,密码最好不要有通常用于转义用的特殊字符,否则可能有问题。

如果不输入密码,则会在执行过程中要求输入每个博客的密码。此时密码中的特殊字符不影响使用。

  • 同步全部博文:sync_all_posts[“PASSWD”]
  • 同步某一时间之后的博文:rake sync_posts_after_date[“date”,”PASSWD”]

date类似于”2013-01-01” 、 “2013/01/01” 、 “Jan 1 2013”。如果更改了Octopress生成Blog的目录结构,会报类似“sync_post.rb: 权限不够”之类的错误。实际原因是插件中查找目录的部分使用的代码是按默认的目录结构设计的。这部分代码在sync_post.rb的第51行:

1
postDate = Date.parse(path[/\d{4}\/\d{2}\/\d{2}/])

需要对它进行修改以适应定制后的目录结构。

不清楚是不是与改过目录结构有关,按时间同步的速度非常慢。

  • 同步指定标题的博文:rake sync_post_by_title[“title”,”PASSWD”]

此处的title是博客标题,不是文件名。中文的标题在Octopress中会被替换成拼音。空格也会被替换成“-”。所以博客标题和文件名并不对应。

其它参考:

解决安装gem中的报错,并从中获得了修改日期目录结构的灵感:

http://fzyz999.github.io/blog/2013/05/06/ru-he-shi-yong-octopresscha-jian-tong-bu-bo-wen-dao-oschinashang/

原文链接地址:
http://pangyi.github.io/blog/20150103/tong-bu-octopresswen-zhang-dao-zhi-chi-metaweblogde-bo-ke/

written by PangYi
?posted at http://pangyi.github.io

时间: 2024-12-28 23:59:45

同步octopress文章到支持MetaWeblog的博客的相关文章

(背包)剪辑的别人写的背包文章,转到自己博客上供以后学习使用

背包问题——“完全背包”详解及实现(包含背包具体物品的求解) 分类: 背包问题2011-11-26 16:23 5820人阅读 评论(3) 收藏 举报 pathtable算法c优化delete -----Edit by ZhuSenlin HDU 完全背包是在N种物品中选取若干件(同一种物品可多次选取)放在空间为V的背包里,每种物品的体积为C1,C2,…,Cn,与之相对应的价值为W1,W2,…,Wn.求解怎么装物品可使背包里物品总价值最大. 动态规划(DP): 1) 子问题定义:F[i][j]表

让Emeditor支持markdown编辑博客

让Emeditor支持markdown编辑博客 1. 关于高亮显示 2.生成HTML文件并预览 用惯了Emeditor,最近又开始学习用markdown写博客,怎么让Emeditor支持markdown呢? 1. 关于高亮显示 参见:中药铺子——胖大海说胡话 点这里下载EmEditor的MarkDown语法文件. 选择”工具“菜单下的“选择配置”. 在列表的底部,单击“定义配置”. 点击“新建”按钮,选择使用”默认配置”,然后单击“确定”. 输入一个描述性的名称,并单击Enter键. 点击“属性

基于Laravel支持markdown的博客VienBlog

# laravel-blogVien Blog - 一款基于laravel5.8开发的,支持markdown编辑以及图片拖拽上传的博客系统.SEO友好 ## 廉价域名 [Namesilo](https://viencoding.com/article/187) 超级便宜,不到6刀一年,续费也便宜,比国内某些注册商便宜好多呢. ## 廉价服务器 [Bandwagon](https://viencoding.com/bandwagonhost) 优惠码每天更新 [Vultr](https://vie

给博客园的博客文章设置行高,让博客文字不再拥挤

若使用博客园模板的默认样式,文字是相当拥挤的.如下图: 解决办法: [1]点击导航下的[管理] [2]进入后台界面后,点击[设置] [3]进入设置界面后,找到[页面定制CSS代码],并进行如下输入: #cnblogs_post_body p { line-height: 2; } [4]代码输入完成后,在页尾处找到[保存],并点击 [5]处理之后,文字终于有了行高. [6]当然,还可以通过控制台查看标签,进行进一步的样式设置. 但如果仅要求增加文章行高的话,就是以上操作……

H5支持所有浏览器-博客园老牛大讲堂

只需要使用下面的模板就好了. 提醒:其中的注释一定不要删除. 1 <!DOCTYPE html> 2 <html lang="zh-CN"> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 6 <!-- IE=ed

MetaWeblog 同时管理51cto,csdn,sina,163,oschina,cnblogs等博客

我们技术人一般都会有自己的一个博客,用于记录一些技术笔记,也期望自己的笔记文章可以让更多人知道. 如何让更多人知道自己的博客? 搜索引擎收录,用户通过关键词搜索可能会进入 内容运营,但是一般技术人为了文章做运营的人应该没有几个 通过大流量同类型网站导流量 我是使用 方法一 和 方法三,方法一就不说了,互联网人都知道了,但是小网站效果不会太好了.方法三就是充当复读机:复制 和 粘贴  到其他技术网站 "复制 和 粘贴  到其他技术网站" 收起来容易,这TM就是个体力活呀,谁愿意自己写了一

告示:CSDN博客通道支持Windows Live Writer写blog离线好友

尊敬的各位CSDN用户: 您好! 为了更好的服务客户.CSDN已经支持Windows Live Writer离线写博客啦.Windows Live Writer于2014年5月29日正式上线啦!欢迎大家抢先体验! 有了WLW .如今您能够随时随地撰写博客.不用登录就可以编辑和发表博客啦.WLW 能够直接打开不论什么之前已经公布的日志.改动并又一次公布.确保您在脱机时所作的改动与您公布的内容同步. 下面是安装WLW 和相关设置: 1. 下载安装WLW (步骤略,可自行下载.官方下载地址:id=86

使用metaweblog API实现通用博客发布 之 API测试

使用metaweblog API实现通用博客发布 之 API测试 使用博客比较少,一则是文笔有限,怕写出的东西狗屁不通,有碍观瞻, 二则是懒,很讨厌要登录到网站上写东西,也没有那么多时间(借口).个人最喜欢用于记录的工具是Zim https://zim-wiki.org/ ,记录东西超级方便,可惜只支持PC版本, 记录的东西可以到处为MarkDown 格式,非常方便(你现在看到的这篇就是用Zim写的). 无意间看到Vs Code上有博客园的插件,作为程序员,顺手google/百度了一下,原来通用

Flask之十——博客文章

1. 提交和显示博客文章 app/models.py: 博客文章模型 class Post(db.Model): __tablename__ = 'posts' id = db.Column(db.Integer, primary_key=True) body = db.Column(db.Text) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) author_id = db.Column(db.I