懒惰,我想链接以下两个命令,以便它可以使用一个简单的bash别名.
jekyll -w serve
Run Code Online (Sandbox Code Playgroud)
为我的jekyll实例启动开发服务器.
open "http://localhost:4000"
Run Code Online (Sandbox Code Playgroud)
在我的默认浏览器中启动我的jekyll应用程序.
我如何将它们链接在一起,以便我可以在命令行中键入一个简单的别名来进行服务和启动?
笔记
注意:无论是使用&&或;以链jekyll -w serve和open "http://localhost:4000"将无法工作,因为jekyll -w serve在标准输出发射持久的WEBrick过程.这意味着第二个命令open "http://localhost:4000"将不会执行,因为第一个进程(webrick)从未执行过"完成".
当webrick开始时,我们可以看到如下典型输出: -
Run Code Online (Sandbox Code Playgroud)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
从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