考虑从WordPress转移到Jekyll:什么在哪里?

Chr*_*ris 2 mercurial jekyll

我正在试图弄清楚将当前博客从WordPress转移到Jekyll需要什么,因为MySQL在这一点上真的太复杂了.我已经在GitHub上阅读了有关配置,用法等的文档,但安装不太清楚.

我假设由于帖子,布局和其他文件都保存在本地,所以必需的Ruby宝石也是如此?与此同时,我看到其他人谈论安装到网络主机(在我的情况下是Dreamhost),这将是理想的,但我仍然不确定.

此外,我使用Mercurial代替Git for SCM,所以我可能需要确保我可以使用像Hg-Git这样的东西来帮助部署东西.任何帮助将不胜感激!

Ala*_*ith 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
Run Code Online (Sandbox Code Playgroud)

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

设置使用Jekyll

在机器上安装Jekyll后,获得基本的站点设置相对简单.在空目录中创建以下结构:

目录:

  • _layouts
  • _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
    
    Run Code Online (Sandbox Code Playgroud)

    这是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>
    
    Run Code Online (Sandbox Code Playgroud)

    {{ 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
    
    Run Code Online (Sandbox Code Playgroud)
  • index.md

    ---
    layout: default
    ---
    
    # My Jekyll site
    
    This is the content from index.md
    
    Run Code Online (Sandbox Code Playgroud)

值得指出的是,您可以使用.html或.textile文件而不是.md版本.只要有YAML Front Matter,它是由破折号和"layout:default"组成的前三行,它们将由Jekyll处理.

使用Jekyll生成静态文件

既然已经设置了启动文件和目录结构,只需打开命令提示符,转到创建index.md文件的目录并运行命令jekyll.假设一切顺利,你应该看到一个简短的过程日志,你现在将有两个HTML文件:

_site/index.html
and
_site/2011/07/29/my-first-jekyll-post.html
Run Code Online (Sandbox Code Playgroud)

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

传输/部署文件.

这种方法的最后一步就是使用FTP或rsync将文件推送到Web服务器的根目录并与全世界共享.由于它们是平坦的HTML,它应该快速而轻松,几乎任何托管都可以为它们提供服务.

(在您的问题中,您提到了Git和Mercurial.您可以使用版本控制和/或部署原始文件以及Jekyll生成的静态HTML文件,但Jekyll既不需要运行也不需要传输文件.这都是关于如何设置部署过程的.)

第2部分 - 从WordPress迁移数据

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

基本的想法是,您将您的帖子和页面移动到Jekyll目录中的相应位置,并让它从那里接管.我将在Jekyll Blog Migrations页面上开始您对该主题的研究.

(就个人而言,我第一次尝试WordPress迁移并没有开箱即用.我没有机会跳回去实现它,但我致力于让它发挥作用.更简单的静态站点,减少潜在的安全问题,加载更快,更容易维护是完全值得为我处理迁移.)