Calico 入手指南

Calico 可以根據預設的規(guī)則妇蛀,通過一個模板和一個資料庫固惯,生成一個靜態(tài) Web 站點所需的 Html 文件洲守。Calico 會假裝自己是一個動態(tài)服務器涡驮。對 Calico 的規(guī)則和模板都是通過假裝 Calico 是動態(tài)服務器來確立的魄缚。

Calico 的工作原理

具體來說宝与,當 Calico 收到一個 Request,它會解析 Request 的 URL冶匹,并通過路由規(guī)則匹配到一個模板 View习劫。并通過模板 View 構造 html 頁面。模板 View 中可以嵌套用 JavaScript 寫成的小腳本徙硅,這些小腳本會通過 Request 的參數(從 URL 解析得來)來獲取對應的資源榜聂,這些資源可以是其他 html 頁面,也可以是 markdown 文件嗓蘑,甚至是 json 文件须肆。讀取的資源會通過小腳本嵌套再模板 View 最終渲染出的 html 頁面中。最終桩皿,這個 html 頁面作為一個 Response 被返回豌汇。

但 Calico 終究不是一個動態(tài) Web 服務器。實際上泄隔,Calico 僅僅只能一次性生成一個 Web 站點所需的所有 html 文件拒贱。它是這樣工作的。

首先,Calico 會挑選一組種子地址逻澳,默認是 “/” 這個根地址闸天。之后,請求這些種子地址斜做,并渲染出 html 頁面苞氮。之后在 html 頁面中尋找所有指向站內的 URL,再以這些 URL 發(fā)起請求渲染更多的 html 頁面瓤逼。這個過程會遞歸地進行下去笼吟,直到找不到更多的指向站內的 URL 地址為止。

這一過程的原理類似爬蟲霸旗。這樣便可保證 Calico 生成的那一堆 html 文件贷帮,里面的任何一個指向站內的 URL 都是可以打開的。之后诱告,我們只需要把 Calico 生成的所有文件發(fā)布到某個靜態(tài) Web 站點即可撵枢。

安裝

Calico 目前只支持 Unix/Linux/macOS 平臺。
請確保安裝了 git蔬啡、ant诲侮、JDK1.8。

首先箱蟆,你需要挑選一個 Calico 所安裝的目標文件夾沟绪,用 Terminal 切換到該文件夾下。然后運行下面這兩行命令的任意一行空猜,來 clone 整個項目绽慈。

  • git clone git@github.com:Moskize91/Calico.git
  • git clone https://github.com/Moskize91/Calico.git

之后,輸入 cd Calico辈毯。

進入項目文件夾之后坝疼,請輸入 ./build 來構造整個項目。當你看到……

BUILD SUCCESSFUL
Total time: 2 seconds

的字樣谆沃,說明 Calico 構造成功钝凶。否則,請確認你已經安裝了 ant 和 JDK1.8唁影。

之后耕陷,輸入 ./install 安裝 Calico。

其中可能需要你輸入 sudo 密碼据沈,輸入即可哟沫。看到

Success.

的字樣锌介,說明 Calico 安裝成功嗜诀。

第一個 Calico 模板

對于 Calico 而言猾警,模板+資源=站點。
我們先寫一個最簡單的的隆敢,不需要任何資源就可以使用的模板吧发皿。

mkdir example
cd example

新建一個名為 example 的空文件夾,作為我們的模板文件夾拂蝎。然后……

mkdir view

這個名為 view 的文件夾是專門存放模板 View 的雳窟。之后……

vim ./view/main.html

然后按下 i 輸入……

<html>
     <body>hello world.</body>
 </html>

然后按下 ESC 再輸入 :wq 并回車保存退出。
確保此時你處于 example 這個文件夾之中匣屡。

最后,輸入如下命令以 service 模式啟動 Calico……

calico service

當你看到

Running! Point your browser to http://127.0.0.1:8080/ 

表明 Calico 啟動成功拇涤,此時捣作,使用瀏覽器訪問 127.0.0.1:8080,就可以看到我們的 hello world 頁面了鹅士。

service 模式

Calico 以這種模式運行時券躁,會在本地監(jiān)聽特定的端口(默認 8080 )。使用瀏覽器通過這個端口掉盅,可以直接與 Calico 交互也拜。此時 Calico 就像一個動態(tài) Web 服務器一樣,針對瀏覽器的每一次 Request 僅僅生成一個 Response趾痘。

在本地以這種模式執(zhí)行 Calico慢哈,有助于調試你的模板。你對模板中的 View 文件永票,或 JavaScript 腳本文件卵贱,或資源文件進行修改之后,只需要刷新一下瀏覽器侣集,便可立即看到修改之后的效果键俱。

按下 Ctrl + C 結束 Calico 的 service 模式。

之后世分,我們嘗試使用 build 模式執(zhí)行 Calico编振。

首先確保你處于 example 文件夾中,輸入 ls臭埋,此時你應該看到……

view

僅有一個 view 文件夾踪央,這就是我們剛才新建的。然后斋泄,輸入如下命令并執(zhí)行杯瞻。

calico build

看到……

Clean target directory: /Users/taozeyu/test/example/target
     delete file /Users/taozeyu/test/example/target

Copy resource files

Generate html pages.
    generate path /

表明執(zhí)行成功了,此時輸入 ls炫掐,可以看到……

target view

多出一個 target 文件夾魁莉,這是 Calico 生成的。

我們使用 ls target 查看這個文件夾里面的文件∑煅洌可以看到……

index.html

我們使用瀏覽器打開這個文件畦浓,可以看到瀏覽器中顯示……

hello world

這正是 Calico 使用我們的模板 View 生成的目標 html 文件。

build 模式

Calico 以這種模式執(zhí)行時检疫,會在從種子地址開始讶请,遞歸地生成所有的可能的 html 文件。每當它產生一個 html 文件屎媳,它便立即搜集這個 html 中每一個指向站內的 URL夺溢,并通過這些 URL 繼續(xù)生成更多的 html 文件。直到沒有更多的 html 文件可以生成為止烛谊。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末风响,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子丹禀,更是在濱河造成了極大的恐慌状勤,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件双泪,死亡現場離奇詭異持搜,居然都是意外死亡,警方通過查閱死者的電腦和手機焙矛,發(fā)現死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門葫盼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人村斟,你說我怎么就攤上這事剪返。” “怎么了邓梅?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵脱盲,是天一觀的道長。 經常有香客問我日缨,道長钱反,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任匣距,我火速辦了婚禮面哥,結果婚禮上,老公的妹妹穿的比我還像新娘毅待。我一直安慰自己尚卫,他們只是感情好,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布尸红。 她就那樣靜靜地躺著吱涉,像睡著了一般刹泄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怎爵,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天特石,我揣著相機與錄音,去河邊找鬼鳖链。 笑死姆蘸,一個胖子當著我的面吹牛,可吹牛的內容都是我干的芙委。 我是一名探鬼主播逞敷,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼灌侣!你這毒婦竟也來了兰粉?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤顶瞳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后愕秫,有當地人在樹林里發(fā)現了一具尸體慨菱,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年戴甩,在試婚紗的時候發(fā)現自己被綠了符喝。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡甜孤,死狀恐怖协饲,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情缴川,我是刑警寧澤茉稠,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站把夸,受9級特大地震影響而线,放射性物質發(fā)生泄漏。R本人自食惡果不足惜恋日,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一膀篮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧岂膳,春花似錦誓竿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涧偷。三九已至,卻和暖如春速蕊,著一層夾襖步出監(jiān)牢的瞬間嫂丙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工规哲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留跟啤,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓唉锌,卻偏偏與公主長得像隅肥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子袄简,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容