告别wordpress,拥抱jekyll

2024-01-08 17:38
文章标签 wordpress 告别 拥抱 jekyll

本文主要是介绍告别wordpress,拥抱jekyll,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

jekyll是近些年来比较流行的轻量级博客系统,它也是一个强大的静态网站生成系统。本文简要介绍了从wordpress迁移到jekyll的一些注意事项。

主要特点

  • 直接使用Markdown文件作为默认模版语言。
  • 支持通过git跟踪所有内容。
  • 有大量的知名程序员在使用,并且有大量的模版。
  • 支持自动生成静态网站。

安装

很简单,

gem install jekyll

如果不需要用默认的模版Maruku,想使用RDiscount,则请安装:

gem install RDiscount

更多细节可以参考官网

有好事者做了一个比较,Maruku是纯ruby的Markdown模版解释器;RDiscount则是c写的模版解释器,两者的效率显然不同:

* BlueCloth: 13.029987s total time, 00.130300s average
* Maruku: 08.424132s total time, 00.084241s average
* RDiscount: 00.082019s total time, 00.000820s average

使用

安装完jekyll的gem之后,然后运行它,生成一个自己的网站。然后进入自己的jekyll目录,首先配置以下_config.yml文件,指定未来生成的网站的路径以及其他参数。然后运行:

jekyll --server

关于jekyll的用法与配置官方解释很详细,请自行阅读。

用习惯jekyll的人会觉得很舒服,它一贯地继承了Mac下的软件的特点:简洁;漂亮,同时还很有rails约定大于配置的精神,通过目录等默认文件即可构成一个强大的网站系统。

如果默认模版是使用rdiscount,则请修改_config.yml文件:

markdown: rdiscount

导入wordpress数据

导入其他博客系统的文章,可以参考官网。导入wordpress的主要步骤如下:

  • 找到jekyll gem库下的migrate文件夹下面的文件wordpress。rb,具体路径可以通过 gem environment命令找到你当前所在的gemset环境之下。也可以按照官方教程,安装一个open_gem的插件。
  • 在自己的jekyll实例站点,新建一个_import目录,将wordpress.rb文件复制到此。
  • 安装两个读取mysql数据库的插件,

    gem install sequel mysqlplus

  • 默认的文件不支持utf8,请修改:

      #修改之前:db = Sequel.mysql(dbname, :user => user, :password => pass, :host => host)  db = Sequel.mysql(dbname, :user => user, :password => pass, :host => host, :encoding => 'utf8') #修改之后
    
  • 然后在Shell进入_import目录中,运行以下命令,请将相应的路径,wordpress的数据库的名字,连接数据库的用户名与密码修改为自己对应的。

      export LC_ALL=en_US.UTF-8export LANG=en_US.UTF-8export DB=xingfukenet      #请修改为自己的wordpress数据库名字export USER=root           #请修改为自己的wordpress数据库用户名export PASS=               #请修改为自己的wordpress数据库密码ruby -r 'wordpress.rb' -e 'Jekyll::WordPress.process( "#{ENV["DB"]}", "#{ENV["USER"]}", "#{ENV["PASS"]}")'
    

如果需要对导入的细节进行定制,可以修改wordpressrb.rb文件中的语句,比如,只导入某个作者的文章:

QUERY = "select post_title, post_name, post_date, post_content, post_excerpt, ID, guid from wp_posts where post_status = 'publish' and post_type = 'post' and post_author=12"

YAML格式的问题

YAML格式默认是:参数+:+空格,如果忘记写空格描绘编译报错。jekyll用的最频繁的几个参数如下所示,更多参数可参考官网wiki。

title: 如何学习ruby and rails杂谈
excerpt: 如果希望享受编程的乐趣,ruby与rails或许是比c#与asp.net等更好的选择。
layout: tech-post

请注意冒号之后的空格。如果少了空格,编译通不过。另外,请注意ruby的to_yaml函数默认会使用ruby内置的对中文字符处理方式,会将string输出为

title: !binary |44CQ5bm456aP6K++44CR5oiR5Lus55yf55qE6ZyA6KaB44CK572R57uc5oiQ55i+6K+K5pat5qCH5YeG44CL5ZCX77yf

这种格式。这是由于ruby默认的yaml库对utf8的支持导致的。我们需要对其做处理。一种办法是调用require 'yaml/encoding',而更安全的办法则是:require 'ya2yaml',修改之后的wordpress.rb如下所示:

$KCODE = 'UTF8' unless RUBY_VERSION >= '1.9'
require 'rubygems'
require 'sequel'
require 'fileutils'
require 'yaml'
require 'ya2yaml'
。。。
。。。# Get the relevant fields as a hash, delete empty fields and convert
# to YAML for the headerdata={'layout' => 'psy-post','title' => title,'excerpt' => post[:post_excerpt],'wordpress_id' => post[:ID],'wordpress_url' => post[:guid]}.delete_if { |k,v| v.nil? || v == ''}.ya2yaml(:syck_compatible => true)
。。。
。。。

如果需要对原来的wordpress的html代码进行过滤,可以如此处理:

    require 'rubygems'require 'hpricot'  require 'hpricot_scrub'...content = post[:post_content].scrub(:allow_tags => ['table', 'tbody','tr','td','div','a','blockquote','img'])  #table,tbody等标签保留下来。...

导入到github pages

首先在本地测试通过,注意目前github pages使用的jekyll为:0.7.0, 运行:

jekyll --pygments --safe --server

然后在自己的github库中创建一个username.github.com的库。

将自己的jekyll实例复制到本地的该库中,然后推送即可。

git remote add username ...
git push username

推送成功之后,可以使用http://username.github.com/浏览自己的个人网站。如果希望自定义域名,也很简单,创建一个CNAME文件,内容为你的域名即可。

更多说明,可以参考:

http://pages.github.com/

享受云计算时代的快乐

在一切都向云计算迈步的今天,jekyll本身是不带评论系统的,一般是使用disqus的云评论服务。安装很简单,去官网自行注册一个免费帐号,然后按照提示,一步一步往下走就可以了。到了需要导入评论的时候,则请参照disqus的开放api与相关工具。这样以后,你的个人博客的评论随身携带,不用担心随着博客系统迁移而丢失。

不仅是评论可以在云中,写作的所有进程也可以托管在云中。与wordpress的版本跟踪相比较,必须使用wordpress后台来写的时候才能版本跟踪,你可以将自己的jekyll实例托管到github上去。如果对github不熟悉,或许有必要了解一下关于git的基础知识。熟悉的朋友则很好办了,直接进入jekyll实例目录,然后分别执行git的常规操作,就可以拥有一份由github保管的备份。可以非常详细地记录你一切写作的进程,而不用担心版本丢失。由于git的强大,使得你能将在任何离线环境之下,对自己的文章、代码等进行的操作,都可以在联机之后,推送到服务器上。jekyll与git以及Markdown的先天结合,可以随时随地进行版本跟踪,也许这点是极客们日益喜欢它最重要的原因。

这篇关于告别wordpress,拥抱jekyll的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/584271

相关文章

WordPress开发中常用的工具或api文档

http://php.net/ http://httpd.apache.org/ https://wordpress.org/ https://cn.wordpress.org/ https://core.svn.wordpress.org/ zh-cn:开发者文档: https://codex.wordpress.org/zh-cn:%E5%BC%80%E5%8F%91%E8%80%

windows下php+nginx的wordpress配置教程和问题解决

介绍: 我在windows下安装wordrpress 环境:windows10php8mysql8nginx1.26 受启发于,在此基础上修改整理:https://www.cnblogs.com/hanzohuang/p/18067525 教程: 1、安装对应的win平台的环境安装包(免安装版) php-8.3.11-Win32-vs16-x64 mysql8 nginx1

告别慢启动,电脑性能优化全攻略

在当今数字化的时代,电脑已经成为我们生活和工作中不可或缺的工具。然而,随着使用时间的推移,许多人都会遇到电脑启动速度逐渐变慢的困扰。这不仅会影响工作效率,还会在使用电脑时感到烦躁和无奈。但别担心,其实有多种有效的方法可以帮助我们提升电脑的启动速度,让它重新焕发活力。小A就给大家提供以下几种方法来处理: 软件方面的优化 (一)减少开机自启动程序 随着电脑的使用,安装的软件越来越多,

告别平庸!这个计算机毕业设计选题让你脱颖而出

🎓亲爱的同学们,你是否正在为计算机毕业设计选题而犯愁?今天,我要给大家推荐一个既实用又有趣的选题!这个项目不仅能让你在毕业设计中脱颖而出,还能让你对旅游行业有更深入的了解。 🚩毕设中如何选题?🍑  对于项目设计中如何选题、让题目的难度在可控范围,以及如何在选题过程以及整个毕设过程中如何与老师沟通,有疑问不清晰的可以联系我,免费提供咨询答疑; 🚭毕设项目快速熟悉?🍑这个问题可能会困扰

【MVVM】Data Binding代码实践(告别findViewById)(四)

Data Binding实战(一)  Data Binding语法解析(二)  Data Binding高级用法(三)  好了,继前三篇学习了Data Binding之后,我们可以发现它的强大之处有这么几点: 1、使用MVVM模式,让整个项目结构清晰明了  2、通过ViewModel连接View和Model,使得View与Model层解耦,分层后各司其职,维护方便  3、易于项目的测试

告别恶心的CGRect设置

FrameAccessor https://github.com/AlexDenisov/FrameAccessor   Manual Install(手动安装) All you need to do is drop FrameAccessor files into your project, and add #include "FrameAccessor.h" to the t

WordPress MIP 插件:WordPress MIP 独立域名绑定及支持熊掌号

WordPress MIP 主题的同名插件,WordPress MIP 之 WordPress MIP 插件,用于支持发布的所有收费 MIP 主题,支持绑定独立 MIP 域名及熊掌号的快速接入,就是为了让更多的 WordPress 同学更快更方便的引入百度 MIP,享受百度 MIP 带来的流量、权重或者是快感。为了继承 WordPress MIP 主题的免费思想,所以 WordPress MIP

WordPressMIP主题下载,WordPress MIP与百度熊掌号改造接入(V3.4.1)

WordPressMIP主题,是基于熊掌号最新移动端主题,根据百度MIP开发规范升级改造而成,移除冗余代码,完美符合百度MIP规范的一款WordPress移动端主题。   WordPress快速引入百度MIP其实也挺简单,懂代码的人可以直接根据百度MIP官网的规范和验证提示进行原有移动端的改造,不过需要说一点的就是,那些使用自适应的网站引入MIP估计是有点繁琐,甚至基本不太可能,与其改造原

WordPress图片水印插件

WordPress图片水印插件 强调图片版权,防止懒人直接盗图,给图片加上水印还是很必要的。图像处理熟手,对上传到主机的图片都会进行一些修饰,顺便加上水印,是很简单的事,但大部分童鞋还是喜欢能自动给图片加上水印,WordPress有强大的插件能为我们提供方便。 WordPress插件安装页面,输入“watermark ”关键词并搜索,会找到众多的图片加水印插件,比如: Easy Waterm

wordpress免插件添加禁止某些用户登录的方法

wordpress免插件添加禁止某些用户登录的方法 在一些情况下,比如某些用户损害了网站的利益,有不方便直接删除账号的,你可能就需要禁止他们登录网站,今天咱们就来介绍下wordpress如何添加禁止用户登录。 咱们只需要在“ functions.php”中加入以下代码即可。 /*** WordPress 禁止某些用户登录*zzzjtd.com 志在指尖*///在资料页面添加选项fun