| 4 min read

Ghost 是一款 Node.js 上非常好用的的内容发布平台。

The professional publishing platform

由于博客是 15年暑假弄得,那个时候 Node 版本还比较低,而且那个时候 Ghost 还并非是一个特比出色的产品。不像现在非常强大,有很多的主题可以选择,更加人性化的后台管理。

升级到 1.x

由于我已经很多年没有升级了,这次升级需要先从 0.x 的版本升级到 1.x 的版本,然后再升级到 2.x 的版本保持和 Ghost 的产品线一致。

无论如何都先请备份好你的博客 JSON 数据 资源和图片(content/images) 这目录。

你可以在后台 labs 选项里看到 export 选项,然后选择导出即可获得博客的 JSON 数据资源。

而图片目录需要自己去服务器上进行拷贝。

安装 Ghost-cli

ghost-cli 是 Ghost 团队官方出品的一款方便大家进行博客创建和迁移的脚手架工具。我们升级前一定要安装这个工具。

$ sudo npm i -g ghost-cli@latest

如果你 Node 版本低于 8.x,请先升级 Node 版本到官方推荐的版本

安装完成之后,我们需要新建一个临时目录(如果你只用 1.x, 可以直接新建目标目录 )。进入目录后,需要我们重新初始化。

ghost install local --v1

安装完成后,我们需要恢复数据。

  • 将备份的 content/images 目录覆盖到我们新建的 ghost 目录对应的目录下.。
  • 启动博客后,进入后台 labs -> import 选择我们的 JSON 备份数据即可。

如果出现

The file you uploaded was larger than the maximum file size your server allows.
你需要自己配置下 Nginx

client_max_body_size 5m;

nginx.conf 里需要设置文件的大小。

升级到 2.x

进入刚刚创建的目录,然后进去可以直接通过

$ ghost update

进行升级。脚手架会自己进行主题和文件的检测。

如果你想单独创建一个 ghost 2.x 版本的目录,你也可以新建目录,然后进入目录输入

$ ghost install local --v2

来创建项目。

升级后,主要是可以享用一些非常方便的功能:

  • Public API 你可以更好的访问博客数据,无论是 AJAX 还是 模板渲染,你的自由度会更大。

比如获取文章相关内容的推荐

{{#get "posts" include="tags,authors" limit="3" filter="id:-{{id}}+tag:{{primary_tag.slug}}" as |related|}}
  <section class="related-posts">
    <h3 class="related-title">{{t "Recommended for you"}}</h3>
    {{#foreach related}}
      // post layout
      {{> post-card}}
    {{/foreach}}
  </section>
{{/get}}
  • Ghost-Cli 通过 新的 CLI 工具,你可以更好的管理博客升级,运行。
  • 后台管理界面,更加人性化,可以控制的配置更多了。

总之升级之后相比以前感觉界面清爽了。没感觉到性能丢失。

新的博客主题代码对外开源了 可以访问 ghost-theme 获取

扩展阅读

You Can Speak "Hi" to Me in Those Ways