前言:
話說,已經很久沒有在博客園更新博客了,之前寫的關於go語言的系列學習文章《讓我們一起Go》也由於種種原因一度中斷。但是,正如我之前在文章中所寫,可以慢慢來,但是對於Go語言的學習卻不會停止,當然不只是Go語言,對於.net技術還有其它等等等都不會停止。或許文章題目取得不太好(實在想不好名字了),因為題目中我特意強調了下是Go語言,不過我確實沒有想表達XX語言更好的意思哦(或許是我想多了^_^)。因為經常有人會挑起語言或者技術之爭,而且為了爭論XXX語言更好而爭的面紅耳赤甚至人生攻擊。如果只是單純的技術討論當然也是很好的,但是就是有些人會特別可怕,所以為了碼農界的和平,這里需要澄清下--這里強調Go語言只是之前博主一直在學,然后確實是用它搞了一個小玩意罷了。對於用起來怎么樣,因為雖然學很久,但是都是碎片時間學的,也算是新手,所以我也不說了,誰用誰知道嘛。而且對於像我這樣什么都喜歡搞搞的,才不在乎有沒有XXX有木有前途呢。正如剛來博客園時候,博主熱情的學習silverlight一樣,雖然現在它似乎不行了,但是我從來沒后悔過(因為當時玩得很開心,也學到了很多),如果你也和我一樣,喜歡玩玩這玩玩那,那我們或許是同一類人。很久沒寫東西,一上來就那么多廢話,請諒解啊,太就沒說話,太飢渴了。下面進入正題吧:
一 您是否知道Go語言?
這是第一步,如果您知道Go語言(這里的知道指的是可以用Go寫點小程序,可以看懂Go寫的程序代碼),那么您可以跳過這,直接下一環節吧。如果您還不知道或者不了解,那你可以Google下,或者看看這里 。當然實在沒有,也可以看看博主寫的《讓我們一起Go》(不過不建議看了,因為Go更新較快,有些內容可能過時了,而且寫的似乎不怎么好)。
二 我為什么要用Go語言自己搞一個小網站?
到這里,我有必要說明下為什么我要自己搞一個網站(博客)呢?因為我瞎折騰,哈哈。其實博客園挺好的,除了博客園還有其它一些博客也挺好。但是呢,我就是喜歡折騰,於是通過jekyll在github上搞了下博客,似乎沒什么難度。然后呢,不正學這Go語言嘛,就萌生了用Go試試看的想法,於是打算找個Go實現的類似東西,結果找到了一個叫hugo的項目,一看項目,我去,文件還挺多。但是對於我這樣愛鑽牛角尖的,用別人的東西,如果只是看下文檔使用,似乎滿足不了我,我必須得把它源碼全搞明白。而且之前計划春節前必須用Go做點小東西實踐下,於是乎我就開始糾結了,是重新造個破輪子呢還是用別人的?大概糾結了一天,我終於決定造個破輪子吧(^_^)。於是在接下來長達一個多的星期里,還是利用工作之余的時間完成了gosk 這個簡單的Go實現的靜態網站生成器(或許可以叫靜態博客引擎,但是我覺得目前功能太簡單,還是叫生成器比較適合)。相比前面提到的hugo,確實功能簡單了很多,當然代碼除去模版文件,代碼也是非常簡單和少的。雖然簡單,但是對於我自己來說,目前已經夠用了,當然需求總是會變的,以后還會繼續修改完善。目前已經使用它部署了自己的一個小站,如果你已經迫不及待想看看效果可以點擊這里 。博主最終決定,雖然是個破輪子,但是還是分享出來吧,對開源事業做點貢獻呀。如果您是高手或者對這種折騰的事情沒興趣,似乎可以不用往下看了,因為下面我主要會介紹gosk的一些使用方法而不會介紹如何去造一個這樣的輪子(因為這樣不夠一篇文章就能搞定的,或許以后博主學的再深入點會寫一些這樣的文章),同時非常抱歉浪費您那么多時間,一直從文章開頭讀到了這里:) 。如果你是新手,或者喜歡折騰,也想試試造輪子,可以隨便fork gosk的源碼並修改或者參考gosk的源碼造自己的輪子,因為gosk是采用MIT License的。接下來,將為新手提供一個簡單的使用教程。
三 使用gosk快速生成自己的博客
首先點這里 ,然后下載編譯好的可執行文件(這里只介紹直接使用編譯好的應用,而且在windows平台下,如果你想自己編譯或者要使用其它平台,請點這里查看詳細如何通過源碼編譯)。

如上圖所示,可以下載可執行文件。
下載到本地后。

可以看到如上圖的目錄結構, 其中root目錄下就是待生成的模版文件和各種資源文件,現在不用去管它。通過windows的命令提示行,進入到gosk.exe所在的目錄,然后
1.運行gosk build
該命令是一個編譯命令,如果一切順利,您將看到在當前目錄下會生成一個叫publish的目錄,里面就是根據root目錄中模板生成的html頁面。
2.運行gosk run
這個命令將運行gosk的一個本地測試服務器,用來在本地調樣式的時候,方便本地預覽。運行后,可以打開http://localhost/ 就可以瀏覽生成的站點了。如果要在其它端口運行靜態資源服務器,可以執行gosk run :8080 ,這里將會運行在8080端口。當然在真實環境不建議使用內置服務器(雖然博主的站點在使用),因為性能可能不夠高,建議使用nginx等更合適的服務器。
四 如何自定義自己的個性化網站
gosk提供了自定義主題的功能,可以方便的編寫自己的模板和主題。gosk默認提供了兩個主題(其實是一個,只是語言不同)。如果想使用更多主題可以訪問這里,這是一個gosk的輔助項目,主要用來提供主題的。里面有詳細介紹如何使用新的主題。如果您想編寫自己的主題,如果懂點Go語言和Css還要javascript,應該是很簡單的,由於時間原因,今天就不具體介紹如何定制自己的主題了。如果您有好的主題,歡迎提交到這里與大家分享哦。
好吧,你還想問如何可以像博主一樣將網站發布到公網,然后有自己的域名。這方法就很多了,可以用vps,可以用虛擬主機,甚至可以用樹莓派。對於喜歡折騰的你相信這點應該難不倒你,這里就不詳細說了(我怕dudu生氣,萬一我把用戶全搞出去了,博客園不是沒人了?其實博客園很好的,嘿嘿)。
五 總結
今天就介紹到這里了,行文倉促啊,可能很寫的很多不對的地方,沒辦法,因為馬上要春節了,這也算是完成了今年自己的一個任務,雖然是急急忙忙的,總算趕着春節前搞定了。----謹以此文獻給所有喜歡開源和喜歡折騰的小伙伴們,最后祝博客園越來越好,祝所有的園友們新年快樂!
