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

问题描述 投票:2回答:3

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

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

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

mercurial jekyll
3个回答
9
投票

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

Part 1 - Getting Jekyll Up and Running

首先要意识到的是,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。可以找到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

注意:我认为你实际上并不需要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 这是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 Front Matter,它是由破折号和“layout:default”组成的前三行,它们将由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既不需要运行也不需要传输文件。这都是关于如何设置部署过程的。)

Part 2 - Migrating Data From WordPress

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

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

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


1
投票

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


0
投票

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

我不认为有任何需要使用Git专门与Jekyll创建的网站 - 我相信即使FTP也没关系。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.