9

怠け者なので、次の 2 つのコマンドをチェーンして、1 つの単純な bash エイリアスで動作するようにしたいと思います。

jekyll -w serve

jekyll インスタンスの開発サーバーを起動します。

open "http://localhost:4000"

デフォルトのブラウザで jekyll アプリケーションを起動します。

コマンド ラインに単純なエイリアスを 1 つ入力してサービスを提供し、起動できるようにするにはどうすればよいでしょうか?

ノート

  • が stdout で永続的な Webrick プロセスを起動するため、&&または;を使用して連鎖するjekyll -w serveと機能しないことに注意してください。これは、最初のプロセス (webrick) が「完了」しなかったため、2 番目のコマンドが実行されないことを意味します。open "http://localhost:4000"jekyll -w serveopen "http://localhost:4000"

  • 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
4

6 に答える 6

12

v3.70の時点で、これらのハックは不要になりました。LiveReloadjekyll serve機能が追加され、-o, --open-urlオプションを使用してデフォルトのブラウザが自動的に起動されます。この-l, --livereloadオプションは、変更時にブラウザを自動的に再構築および更新します。

bundle exec jekyll serve -l -o
于 2018-06-25T00:03:14.620 に答える
1
function jek {
    jekyll -w serve & open "http://localhost:4000" 
}

問題を解決します。シングル&

于 2013-09-08T11:37:27.607 に答える
-1

現在、次のオプションが表示されます。

  • expectからの出力の特定の行に応じて、ブラウザでjekyll以降を起動するために使用しjekyllます。これは、ブラウザを今すぐ起動しても安全であることを示しています。

  • port への接続を順次試行する小さなプログラムを作成します4000。所定の時間内に接続を確立できれば、ブラウザを起動できます。もちろん、wget または curl を使用して、順番に index.html を読み込もうとすることもできます。

  • jekyll特定のファイルの存在に基づいて準備ができていることがわかる場合があります。そのようなファイルが作成されたinotifywait、ブラウザを起動するために何かをコーディングできます。(しかし、私にはわかりません。これが本当にオプションであるかどうかはわかりません)jekyll

于 2013-09-08T10:26:52.137 に答える