3

我试图弄清楚将我当前的博客从 WordPress 迁移到 Jekyll 需要什么,因为此时 MySQL 对我的口味来说实在是太复杂了。我已经阅读了 GitHub 上关于配置、使用等的文档,但安装不太清楚。

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

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

4

3 回答 3

9

我认为您的问题可以从两个角度来回答:1)如何让 Jekyll 启动并运行 2)如何将您当前的 Wordpress 内容放入 jekyll。以下是让您依次开始的答案。

第 1 部分 - 启动和运行 Jekyll

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

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

  1. 在您的个人计算机上创建原始文件,在那里运行 Jekyll 以生成静态 HTML 文件,然后将它们传输到您的远程 Web 服务器以供全世界查看。

  2. 直接在您的服务器上运行 Jekyll 进行所有原始文件的编辑和创建,让 Jekyll 处理它们以供该机器上的 Web 服务器软件提供服务。

  3. 在您的服务器机器上运行 Jekyll,但在您的本地机器上编辑原始文件并在您准备发布时将它们推送到服务器。Jekyll 引擎将获取原始文件并在服务器本身上生成静态 HTML 文件。

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

本地安装 Jekyll

显然,您需要在本地机器上安装 Jekyll。可以在 Github 页面上找到相关说明。对于我自己来说,运行 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,获得一个基本的站点设置就相对简单了。在空目录中创建以下结构:

目录:

  • _布局
  • _posts
  • _地点

文件及其内容:

  • _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 有完整的模板代码片段列表

  • _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
    
  • 索引.md

    ---
    layout: default
    ---
    
    # My Jekyll site
    
    This is the content from index.md
    

值得指出的是,您可以使用 .html 或 .textile 文件而不是 .md 版本。只要有 YAML Front Matter,即由破折号和“布局:默认”组成的前三行,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 博客迁移页面上开始您对该主题的研究。

就个人而言,我第一次尝试 WordPress 迁移并没有开箱即用。我还没有机会重新开始它,但我致力于让它发挥作用。移动到一个更简单的静态站点,它可以减少潜在的安全问题、加载速度更快且更易于维护,这对我来说完全值得处理迁移。

于 2011-07-30T01:47:35.867 回答
1

安装 jekyll 后,你可以试试这个 wordpress 插件https://github.com/benbalter/wordpress-to-jekyll-exporter

于 2012-10-07T11:35:20.220 回答
0

据我了解,Jekyll 生成静态 HTML 网站。当然 Jekyll 包含一些 Ruby 软件,但这是您可以在任何计算机上运行的东西(例如,您的家用计算机而不是 Web 服务器)。这样,您的网络托管需求可以通过Github Pages等简单的静态系统来满足。现在,Github 可以自动为您处理 Jekyll 调用,但总的来说,这个想法是将静态 HTML 上传到哑 Web 服务器。

我认为没有必要将 Git 专门用于 Jekyll 创建的站点——我相信即使是 FTP 也可以。

于 2011-07-29T15:15:04.360 回答