ruby - Jekyll 私有(private)部署?

标签 ruby jekyll github-pages jekyll-bootstrap

我已经创建了 jekyll 站点。关于部署,我不想在 github 页面上托管。要托管私有(private)域,我从文档中了解到要复制 _site 文件夹中的所有文件。这一切都是邪恶的。

问题:

  1. 每次我添加新博文时,我都会运行 cmd>jekyll build,然后将新创建的 html 复制到托管域。有什么不用每次都编译的简单更新方法吗?

  2. 我问的原因是因为它会由非技术人员更新

感谢您的帮助!

最佳答案

如果您不想使用 GitHub Pages,据我所知,除了在每次进行更改时编译您的网站之外别无他法。

当然,您可以尽可能地编写脚本/自动化。
这也是我对自己的博客所做的。我将它托管在我自己的网站空间而不是 GitHub Pages 上,因此我需要为每次更新执行以下步骤:

  1. 在本地机器上编译
  2. 通过FTP上传

我只需单击一次(好吧,一次双击)即可完成此操作。


注意:我使用的是 Windows,因此以下解决方案适用于 Windows。
但是,如果您使用的是 Linux/MacOS/其他软件,您当然可以使用那里提供的工具来构建类似的东西。


我正在使用 batch file (Windows 相当于 shell script ) 编译我的站点,然后调用 WinSCP ,一个免费的命令行 FTP 客户端。

WinSCP 允许我 store session configurations , 所以我在那里保存了一次与我的服务器的连接。
因此,我不想将 WinSCP 提交到我的(public) 存储库,因此我的脚本需要父文件夹中的 WinSCP。

批处理文件如下所示:

call jekyll build

echo If the build succeeded, press RETURN to upload!

pause

set uploadpath=%~dp0\_site
%~dp0\..\winscp.com /script=build-upload.txt /xmllog=build-upload.log

pause

WinSCP 调用中的第一个参数 (/script=build-upload.txt) 指定了 script file which contains the actual WinSCP commands

这是在脚本文件中:

option batch abort
option confirm off

open blog
synchronize remote -delete "%uploadpath%"

close
exit

一些解释:

  1. %~dp0 (in the batch file)是当前批处理文件所在的文件夹
  2. set uploadpath=...(在批处理文件中) 将生成站点的完整路径保存到 environment variable 中。
  3. open blog(在脚本文件中) 打开与pre-saved session configuration 的连接(我将其命名为 blog)
  4. synchronize remote ...(在脚本文件中) 使用synchronize command从本地文件夹(保存在 %uploadpath%,第 2 步中的环境变量) 同步到服务器。

IMO 这个解决方案也适用于非技术人员。
如果您的技术人员不知道如何使用源代码控制,您甚至可以编写脚本提交和推送。

关于ruby - Jekyll 私有(private)部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19960031/

相关文章:

Jekyll 链接集合中的文档?

ruby - Jekyll 的所有功能都不再起作用

html - Github Pages 显示不同于 VS Code 实时服务器

github - 将现有存储库添加为 GitHub Pages 上的页面

jekyll/css 不适用于 github 页面,但它适用于本地主机 :3000

ruby-on-rails - rails : Grape API - NameError: uninitialized constant API

Ruby 等同于 C#'s ' yield' 关键字,或者,在不预分配内存的情况下创建序列

ruby-on-rails - rake 数据库:migrate error with mysql2 gem - Library not loaded: libssl. 1.0.0.dylib

arrays - 获取 N 项数组的所有 K 项组合的最短代码,其中 K <= N

ruby-on-rails - 如何从 Ruby 调用 Jekyll 命令