杰基尔发球和发射

Cal*_*eng 7 bash jekyll

懒惰,我想链接以下两个命令,以便它可以使用一个简单的bash别名.

jekyll -w serve
Run Code Online (Sandbox Code Playgroud)

为我的jekyll实例启动开发服务器.

open "http://localhost:4000"
Run Code Online (Sandbox Code Playgroud)

在我的默认浏览器中启动我的jekyll应用程序.

我如何将它们链接在一起,以便我可以在命令行中键入一个简单的别名来进行服务和启动?

笔记

  • 注意:无论是使用&&;以链jekyll -w serveopen "http://localhost:4000"将无法工作,因为jekyll -w serve在标准输出发射持久的WEBrick过程.这意味着第二个命令open "http://localhost:4000"将不会执行,因为第一个进程(webrick)从未执行过"完成".

  • 当webrick开始时,我们可以看到如下典型输出: -

Configuration file: /Users/calvin/work/calviny/_config.yml
            Source: /Users/calvin/work/calviny
       Destination: /Users/calvin/work/calviny/_site
      Generating... done.
 Auto-regeneration: enabled
[2013-09-08 18:43:58] INFO  WEBrick 1.3.1
[2013-09-08 18:43:58] INFO  ruby 1.9.3 (2013-06-27) [x86_64-darwin11.4.2]
[2013-09-08 18:43:58] INFO  WEBrick::HTTPServer#start: pid=6183 port=4000
Run Code Online (Sandbox Code Playgroud)

Spe*_*ews 7

v3.70开始,不再需要这些技巧。现在jekyll serve具有LiveReload功能,并将自动生成带有该-o, --open-url选项的默认浏览器。该-l, --livereload选项将在更改后自动重建并刷新浏览器。

bundle exec jekyll serve -l -o
Run Code Online (Sandbox Code Playgroud)


hek*_*mgl -1

目前我看到以下选项:

  • 用于expect启动 jekyll 以及稍后在浏览器上,具体取决于输出的某一行,jekyll表明现在可以安全地启动浏览器。

  • 编写一个小程序,顺序尝试连接到 port 4000。如果可以在给定时间内建立连接,则可以启动浏览器。当然,您也可以使用wget或curl并依次尝试加载index.html。

  • jekyll根据某些文件的存在,您可能会意识到已经准备就绪。创建此类文件后,您可以编写一些代码inotifywait来启动浏览器。(但我不知道,我不确定这是否真的是一个选择)jekyll