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

            低調(diào)做技術(shù)__歡迎移步我的獨(dú)立博客 codemaro.com 微博 kevinlynx

            用Lisp開(kāi)發(fā)博客系統(tǒng)(WordPress馬甲)

            4月份的時(shí)候基于nuclblog寫(xiě)過(guò)一個(gè)簡(jiǎn)單的博客系統(tǒng),但是因?yàn)閷?xiě)得丑,代碼耦合度高,又有很多硬編碼。當(dāng)然nuclblog本身就寫(xiě)得不怎么樣,所以6月分的時(shí)候就用Lisp寫(xiě)了新版的ext-blog。支持自定義主題,套個(gè)馬甲上去像模像樣。

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

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

            關(guān)于主題開(kāi)發(fā)

            ext-blog主要有幾個(gè)頁(yè)面派發(fā),對(duì)每個(gè)頁(yè)面都派發(fā)給具體的主題模塊,讓其完成渲染。編寫(xiě)一個(gè)主題本質(zhì)上就是生成html頁(yè)面。在Lisp的世界中有很多庫(kù)可以生成html。ext-blog的主題也不限制你使用哪一個(gè)html生成庫(kù)。目前我自己移植的2個(gè)WordPress主題,使用的都是google的closure-template的Lisp移植版本,即cl-closure-template。closure-template會(huì)從模板產(chǎn)生出 Lisp函數(shù),這一點(diǎn)是比同類(lèi)庫(kù)中的html-template方便一點(diǎn)。當(dāng)然,作為一個(gè)模板語(yǔ)言,內(nèi)置判斷、循環(huán)則是必須的。

            關(guān)于網(wǎng)絡(luò)框架

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

            關(guān)于后臺(tái)管理

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

            關(guān)于開(kāi)源

            ext-blog是完全有理由發(fā)布到common-lisp.net上的,甚至還可以加入到quicklisp的庫(kù)列表里。但前提是排除盡可能多的 bug,寫(xiě)一系列英文文檔,以及最重要的,對(duì)其進(jìn)行長(zhǎng)期維護(hù)。不幸的是我目前沒(méi)有這個(gè)時(shí)間和精力。所以,只能暫時(shí)在這里發(fā)布下了。


            要圍觀(guān)效果的請(qǐng)移步至我的獨(dú)立博客:http://codemacro.com。關(guān)于ext-blog更正式的介紹請(qǐng)移步此篇:http://codemacro.com/view/8

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


            posted on 2011-08-05 16:43 Kevin Lynx 閱讀(5393) 評(píng)論(4)  編輯 收藏 引用 所屬分類(lèi): lisp

            評(píng)論

            # re: 用Lisp開(kāi)發(fā)博客系統(tǒng)(WordPress馬甲) 2011-08-06 00:01 飯中淹

            good!  回復(fù)  更多評(píng)論   

            # re: 用Lisp開(kāi)發(fā)博客系統(tǒng)(WordPress馬甲) 2011-08-06 09:37 kroody

            不的不承認(rèn)我受你影響 想嘗試學(xué)習(xí)一下LISP這個(gè)古老而又高級(jí)的家伙  回復(fù)  更多評(píng)論   

            # re: 用Lisp開(kāi)發(fā)博客系統(tǒng)(WordPress馬甲) 2011-08-08 16:14 他她女鞋

            不錯(cuò),學(xué)習(xí)一下。  回復(fù)  更多評(píng)論   

            # re: 用Lisp開(kāi)發(fā)博客系統(tǒng)(WordPress馬甲) 2012-11-08 06:17 象道

            很棒的程序!俺用racket寫(xiě)了個(gè),模仿另一個(gè)用git做持久存貯的網(wǎng)志程序,直接序列化和反序列化結(jié)構(gòu)數(shù)據(jù),沒(méi)用任何sql,支持perl正則表達(dá)查詢(xún)。唯一不足的是響應(yīng)線(xiàn)程經(jīng)常退不掉,:-),暫時(shí)沒(méi)法解決。  回復(fù)  更多評(píng)論   

            亚洲精品久久久www| 久久精品国产精品国产精品污| 亚洲欧美国产日韩综合久久| 久久国产成人| 久久国产欧美日韩精品| 国产亚洲美女精品久久久2020| 国产亚洲精品美女久久久| 久久婷婷五月综合97色直播| 亚洲精品午夜国产VA久久成人| 精品久久无码中文字幕| 一本伊大人香蕉久久网手机| 亚洲国产精品无码久久久蜜芽| 久久青青草原精品影院| 久久不见久久见免费视频7| 国产成年无码久久久免费| 久久99精品久久久久久久久久| 久久成人18免费网站| 少妇久久久久久被弄高潮| 久久精品国产一区二区| 久久综合综合久久97色| 久久婷婷五月综合成人D啪| 久久精品国产72国产精福利| jizzjizz国产精品久久| 亚洲综合日韩久久成人AV| 久久精品成人免费国产片小草| 亚洲AV日韩AV永久无码久久| 伊人久久一区二区三区无码| 91久久香蕉国产熟女线看| 国内精品九九久久久精品| 亚洲AV无码久久| 色欲综合久久中文字幕网| 久久久久精品国产亚洲AV无码| 久久久久久国产精品无码下载| 久久久久国产精品| 久久精品国产精品国产精品污| A狠狠久久蜜臀婷色中文网| 久久久久久亚洲精品成人| 久久久婷婷五月亚洲97号色| 亚洲va久久久噜噜噜久久男同 | 久久人人爽人人爽人人片AV高清| 久久99精品国产99久久6|