我正在尝试找出将当前博客从WordPress迁移到Jekyll所需要的条件,因为MySQL在这一点上实在太复杂了。我已经阅读了GitHub上有关配置,用法等的文档,但是安装不太清楚。

我假设既然帖子,布局和其他文件都保存在本地,那么所需的Ruby gem也是吗?同时,我已经看到其他人谈论安装到Web主机(在我的情况下为Dreamhost),这是理想的选择,但是我仍然不确定。

另外,我在SCM中使用Mercurial而不是Git,因此可能需要确保可以使用Hg-Git之类的东西来帮助部署。任何帮助将不胜感激!

最佳答案

我认为可以从两个角度回答您的问题:1)如何启动和运行Jekyll,以及2)如何使您当前的Wordpress内容进入jekyll。以下是使您依次轮流学习的答案。

第1部分-启动和运行Jekyll

首先要意识到的是,Jekyll旨在生成一组静态HTML文件,这些文件基本上可以从任何Web服务器提供,而无需PHP,Ruby,Perl或任何其他动态服务器端处理。

当然,Jekyll使用Ruby,因此无论您在哪里生成文件,都必须运行它。尽管可以在提供文件的同一服务器上,但重要的一点是不必一定要这样做。例如,所有这些都是使用Jekyll发布的有效工作流程:


在您的个人计算机上创建原始文件,在此处运行Jekyll生成静态HTML文件,然后将其传输到远程Web服务器供全世界查看。
直接在您的服务器上运行Jekyll,进行所有原始文件的编辑和创建,让Jekyll处理这些文件,以由该计算机上的Web服务器软件提供服务。
在服务器计算机上运行Jekyll,但在准备发布时,在本地计算机上编辑原始文件并将其推送到服务器。 Jekyll引擎将获取原始文件,并在服务器本身上生成静态HTML文件。


人们还拥有更为复杂的设置,使他们可以从笔记本电脑,手机和服务器本身进行发布,并通过Dropbox全面同步所有内容。您可以随心所欲地发挥自己的创造力,但我认为最容易上手的是第一个。在本地编辑原始文件,在本地运行Jekyll,然后在准备好使它们生效时将生成的HTML文件传输到Web服务器。

在本地安装Jekyll

显然,您需要为此在本地计算机上安装Jekyll。可以在on the Github page中找到其说明。对于我自己来说,运行Mac OS X 10.6,可以通过以下命令进行设置。

sudo gem install rubygems-update
sudo update_rubygems

sudo gem update
sudo gem update --system

sudo gem install rails

sudo gem install maruku

sudo gem install jekyll


注意:我认为您实际上并不需要导轨,但是这些是我所经历的步骤,它们对我有用

设置使用Jekyll

将Jekyll安装在计算机上后,进行基本站点设置相对简单。在空目录中创建以下结构:

目录:


_布局
_帖子
_现场


文件及其内容:


_config.yml

safe:        false
auto:        false
server:      false
server_port: 4000
base-url:    /

source:      .
destination: ./_site
plugins:     ./_plugins

future:      true
lsi:         false
pygments:    false
markdown:    maruku
permalink:   date

maruku:
  use_tex:    false
  use_divs:   false
  png_engine: blahtex
  png_dir:    images/latex
  png_url:    /images/latex

rdiscount:
  extensions: []

kramdown:
  auto_ids: true,
  footnote_nr: 1
  entity_output: as_char
  toc_levels: 1..6
  use_coderay: false

  coderay:
    coderay_wrap: div
    coderay_line_numbers: inline
    coderay_line_numbers_start: 1
    coderay_tab_width: 4
    coderay_bold_every: 10
    coderay_css: style


这是Jekyll的默认配置设置。您可以不用此文件而逃脱,但是在进程运行时它会发出警告,提示找不到文件。因此,我将继续进行设置。这也使混乱变得更容易,而不是在命令行上将参数发送给jekyll。
_layouts / default.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>My Jekyll Site</title>
</head>
<body>

    <!-- This will be replaced with your content -->
    {{ content }}

    {{ site.posts }}

</body>
</html>


{{ content }}字符串将由下面列出的“ index.md”文件的已处理内容替换。 {{ site.posts }}字符串将由“ _posts”目录中的文件按时间倒序列出。 GitHub有一个full list of the template code snippets
_posts / 2011-07-29-my-first-jekyll-post.md

---
layout: default
---

# My first Jekyll post.

This is the content from 2011-07-29-my-first-jekyll-post.md

index.md

---
layout: default
---

# My Jekyll site

This is the content from index.md



值得指出的是,您可以使用.html或.textile文件而不是.md版本。只要具有YAML前端问题,即由破折号和“布局:默认值”组成的前三行,它们就会由Jekyll处理。

用Jekyll生成静态文件

既然您的起始文件和目录结构已经设置好,只需打开命令提示符,转到创建index.md文件的目录并运行命令jekyll。假设一切顺利,您应该会看到该过程的简短日志,并且下面有两个HTML文件:

_site/index.html
and
_site/2011/07/29/my-first-jekyll-post.html


值得指出原始文件源的Markdown(.md)文件。您也可以使用.textile或.html。

传输/部署文件。

使用此方法的最后一步就是简单地使用FTP或rsync将文件推送到Web服务器的根目录并与世界共享。由于它们是纯HTML格式,因此可以轻松快捷地获取几乎所有托管服务。

(在您的问题中,您提到了Git和Mercurial。您可以用来进行版本控制和/或部署原始文件以及Jekyll生成的静态HTML文件,但Jekyll不需要运行或传输它们。这与您要如何设置部署过程有关。)

第2部分-从WordPress迁移数据

以上所有内容都是关于从头开始有效使用Jekyll本身的。如果您一直在使用WordPress(或与此相关的任何其他引擎),并希望将您生成的页面和帖子保留在那里,则需要将它们从WordPress迁移到Jekyll。

基本思想是,您可以将帖子和页面移至Jekyll目录内的相应位置,然后从那里接管。我将在Jekyll Blog Migrations page上开始对该主题的研究。

(就个人而言,我第一次尝试进行WordPress迁移并没有开箱即用。我没有机会重新投入使用以实现它,但是我致力于使其正常工作。迁移到一个更简单的静态站点,以减少潜在的安全问题,更快地加载并且更易于维护,这对我来说完全值得处理。)

关于mercurial - 考虑从WordPress迁移到Jekyll:何去何从?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6875147/

10-14 13:13