iT邦幫忙

DAY 16
4

快寫HTML靜態網頁系列 第 13

stasis 的即時更新功能

使用 stasis 產生靜態網頁,
除了每更新HAML檔後,
再執行編譯的方式之外,
也提供了即時監測更新的方式。
靜態網頁即時更新
靜態網頁與動態網頁的區別,
在於接受query時,
該頁是早就以檔案形式存在,
或者是即時才產生的頁面。

而在編輯HAML檔案時,
想看馬上編輯的成果,
又得再執行一次,
若編輯頻繁,又需要頻繁執行。
stasis可以有即時更新的模式,
只要原始檔案一有新增、編輯、刪除的時候,
馬上就會立即輸出成HTML檔。

更新方式
以現有的檔案為例:

$ tree
.
├── controller.rb
├── index.html.haml
├── js
│   ├── jquery.min.js
│   └── lorem.js
├── layout.html.haml
└── public
    ├── index.html
    └── js
        ├── jquery.min.js
        └── lorem.js

3 directories, 8 files

在專案的目錄裡執行:

$ stasis -d

Development mode enabled: /home/SITES/site1

[2013-10-01 08:55:41] Regenerating project...
WARN: tilt autoloading 'haml' in a non thread-safe way; explicit require 'haml' suggested.

[2013-10-01 08:55:41] Complete

表示正在監測/home/SITES/site1裡的檔案,
當有所新增、刪除、修改任何檔案之時,
例如,在新增一個about.html.haml就出現:

[2013-10-01 09:12:34] Regenerating project...

[2013-10-01 09:12:34] Complete

再觀察public裡自動就多了個 about.html 的檔案。

$ tree
.
├── about.html.haml
├── controller.rb
├── index.html.haml
├── js
│   ├── jquery.min.js
│   └── lorem.js
├── layout.html.haml
└── public
    ├── about.html
    ├── index.html
    └── js
        ├── jquery.min.js
        └── lorem.js

3 directories, 10 files

附加web server的功能
用 stasis -d 的指令,
會自動監測更新檔案,
若 stasis -d 4000 的指令,
或指定的port,
則會開啟一個 4000 或指定 port 的 web 網站服務。

這種監測更動的來源檔,
即時輸出成靜態網頁,
對於編寫修改網頁者是方便快速的維護。

系列文章列表


上一篇
除了假文,也要有假圖來快速充版面
下一篇
適用於個人blog到大企業網站的靜態網站產生器:nanoc
系列文
快寫HTML靜態網頁27

1 則留言

我要留言

立即登入留言