• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            loop_in_codes

            低調做技術__歡迎移步我的獨立博客 codemaro.com 微博 kevinlynx

            用Lisp開發博客系統(WordPress馬甲)

            4月份的時候基于nuclblog寫過一個簡單的博客系統,但是因為寫得丑,代碼耦合度高,又有很多硬編碼。當然nuclblog本身就寫得不怎么樣,所以6月分的時候就用Lisp寫了新版的ext-blog。支持自定義主題,套個馬甲上去像模像樣。

            ext-blog是一個使用Common Lisp編寫的博客系統。基于之前基于nuclblog修改的經驗,新的ext-blog最大程度地將博客本身的邏輯與前臺渲染分離開,并且添加了對主題 (theme)的支持。制作新的主題可以隨便找一個WordPress的主題,然后將php代碼翻譯成Lisp代碼即可。

            ext-blog底層代碼非常少,其實基本的博客系統功能本來就不多。大部分功能都是在6月初完成。那個時候公司每天加班,下班回去后還寫點Lisp代碼。后來越整越累,就實在沒那完善它的心情,一拖就拖到7月底,功能都還不算完善(至少還得加個rss導出吧?)。

            關于主題開發

            ext-blog主要有幾個頁面派發,對每個頁面都派發給具體的主題模塊,讓其完成渲染。編寫一個主題本質上就是生成html頁面。在Lisp的世界中有很多庫可以生成html。ext-blog的主題也不限制你使用哪一個html生成庫。目前我自己移植的2個WordPress主題,使用的都是google的closure-template的Lisp移植版本,即cl-closure-template。closure-template會從模板產生出 Lisp函數,這一點是比同類庫中的html-template方便一點。當然,作為一個模板語言,內置判斷、循環則是必須的。

            關于網絡框架

            世界上很多流行的語言都有流行的Web開發框架。Lisp方面,我最開始選用的是Weblocks,我甚至用它為公司寫了個簡單的訂餐系統(這讓一個程序員頗有自豪感)。但終究覺得Weblocks太難用,復雜,但沒有實際功能。我甚至閱讀了它80%的源代碼,但依然獲取不到如何更好使用它的思想。然后恰好我看了些Rails例子,雖然我不懂Ruby語言(依然可以看到很多語言特性有Lisp的影子),但看懂例子還不是大問題。后來我決定自己寫個 Web框架,因為其實我主要需要的就是一個url派發(route),就像Rails那樣。我甚至為此做了些詳細設計,結果后來不幸發現Lisp里已經有一個類似的框架了,這就是Restas。ext-blog基于Restas。

            關于后臺管理

            后臺管理這東西其實可要可不要。就算沒有后臺管理,也可以通過增強RPC來實現。但并不是每個人都是Lisper,相信想了解ext-blog的人很大一部分都是想學習Lisp的人。綜合來看,擁有一個后臺管理功能,提供更友好的操作界面,也是非常有必要的。但我確實不擅長做前臺美化的工作。幸運地是我將渲染和邏輯分離開了,后臺管理也算是主題的一種。然后,我抄了emlog博客系統的后臺管理,如前所說,也就是把php代碼(雖然我也不懂php)翻譯成lisp代碼。

            關于開源

            ext-blog是完全有理由發布到common-lisp.net上的,甚至還可以加入到quicklisp的庫列表里。但前提是排除盡可能多的 bug,寫一系列英文文檔,以及最重要的,對其進行長期維護。不幸的是我目前沒有這個時間和精力。所以,只能暫時在這里發布下了。


            要圍觀效果的請移步至我的獨立博客:http://codemacro.com。關于ext-blog更正式的介紹請移步此篇:http://codemacro.com/view/8

            ps,之前訂閱我獨立博客的TX麻煩更換下rss地址:http://codemacro.com/feed,而博客主頁也最好換成http://codemacro.com


            posted on 2011-08-05 16:43 Kevin Lynx 閱讀(5385) 評論(4)  編輯 收藏 引用 所屬分類: lisp

            評論

            # re: 用Lisp開發博客系統(WordPress馬甲) 2011-08-06 00:01 飯中淹

            good!  回復  更多評論   

            # re: 用Lisp開發博客系統(WordPress馬甲) 2011-08-06 09:37 kroody

            不的不承認我受你影響 想嘗試學習一下LISP這個古老而又高級的家伙  回復  更多評論   

            # re: 用Lisp開發博客系統(WordPress馬甲) 2011-08-08 16:14 他她女鞋

            不錯,學習一下。  回復  更多評論   

            # re: 用Lisp開發博客系統(WordPress馬甲) 2012-11-08 06:17 象道

            很棒的程序!俺用racket寫了個,模仿另一個用git做持久存貯的網志程序,直接序列化和反序列化結構數據,沒用任何sql,支持perl正則表達查詢。唯一不足的是響應線程經常退不掉,:-),暫時沒法解決。  回復  更多評論   

            久久久久成人精品无码中文字幕| 亚洲va久久久噜噜噜久久天堂| 亚洲精品高清久久| 国产精品狼人久久久久影院| 久久久久久综合一区中文字幕| 国产国产成人久久精品| 欧美激情一区二区久久久| 久久精品人人做人人妻人人玩| 久久九九亚洲精品| 精品久久久久久久国产潘金莲| 久久久久久国产精品无码超碰| 久久久久久久久久久免费精品| 亚洲国产美女精品久久久久∴| 国产精品热久久毛片| 伊人久久大香线蕉综合影院首页| 精品精品国产自在久久高清| 久久亚洲国产最新网站| 久久精品国产久精国产思思| 国产—久久香蕉国产线看观看 | 久久99久久99小草精品免视看| 热RE99久久精品国产66热| 国产欧美久久一区二区| 久久久久人妻一区精品色| 久久九九免费高清视频| 久久精品国产免费| 国产精品99久久久久久人| 亚洲国产精品无码成人片久久| 国产精品成人99久久久久| 97久久精品人妻人人搡人人玩| 国产精品成人久久久| 亚洲精品无码久久久久AV麻豆| 亚洲狠狠久久综合一区77777| 久久99国产精一区二区三区| 国产成人精品白浆久久69| 久久久久国产精品熟女影院| 久久无码人妻一区二区三区| 人妻丰满AV无码久久不卡| 久久99精品久久久久久动态图| 国产精品一区二区久久国产| 人妻精品久久无码区| 国产精品久久午夜夜伦鲁鲁|