2012-01-05 57 views
4

我一直在這個論壇上潛伏很久,我發現它是最有用的。這是我的第一個問題,所以如果沒有正確表達,請原諒我。我正在尋找一個簡單的nawk(服務器不屬於我,所以即使我想要我也不能安裝gawk)CMS或收集shell/awk腳本來幫助我管理日益增長的純XHTML 1.0/CSS文件集代表我的個人網站。我在個人電腦上試過TinyTimBlis。除了不可移植(很抱歉,Bash和gawk不是標準的Unix工具),我發現它們不能完全實用。任何人都可以提出其他解決方案嗎?我有我自己越來越多的快速腳本,但我需要更強大的功能。我願意考慮簡單的基於Perl的解決方案。 Python將會是一個延伸,但我真的很喜歡這門語言,並且我每天都在使用它進行科學計算,所以我至少願意瞭解這個選項。awk powered CMS

+1

AWK中的CMS?我無法想象你會怎麼做。 – Gabe 2012-01-05 03:17:10

回答

3

一個有趣的問題!但這不是一個傳統的答案。我有很多意見不適合S.O.評論的格式,所以請原諒這種違反禮儀。

就像我喜歡* awk,我可以看到幾個障礙。

1.我不知道任何使用nawk創建的CMS工具。我對awk提供了各種各樣的體驗,正如你發現的那樣,有幾個(TinyTim和Blis),但是它們基於bash/gawk,而且它們不像你那麼全面。要求。

當我去到awk的母艦(www.awk.info)時,我得到了明顯的印象,即該網站已被黑客入侵。我確實發現A tiny CMS in awk,但假設它是一個基於gawk的系統。這兩個網站都有相關的作者,所以我擔心它可能會被黑客入侵。謹防!

2.這聽起來像你正在考慮傳統的awk命令行和基於shell腳本的系統。如果是這樣,我對CMS系統的有限經驗是,它們是基於GUI的系統,用於內容創建和管理,因此是GUI頁面的創建者,然後是一個類似於傳統unix存儲庫/ SCCS系統的GUI包裝。歡迎CMS專家列舉不同之處。

那麼,爲什麼不圍繞CVS或類似的方式製作一些包裝腳本,以便您可以根據需要控制存儲庫?

3.系統有效性I:使用CVS作爲CMS系統的存儲庫端的佔位符,認爲源代碼有多大,並且它是用'C'編寫的,它提供了更好的訪問並控制與文件所有權和安全問題(以及其他許多問題)相關的子系統,而不是您可以在nawk或任何shell中訪問的子系統。 (編譯的C執行速度更快,當然,但在這一天3GHz的+處理器,它不是一個絕對的要求,堅持遵守代碼)

4.系統效能II:你說你想存儲大多XHTML 1.0/CSS類型文件。這是您的項目的主要後盾,awk是基於reg-ex的語言,不能有效地解析XML類數據。你有足夠的潛力在這裏讀parse xml in bashcomplex conversions

當然,我真的找的帖子,我找不到!搜索諸如「朋友不讓朋友在sed/awk/bash中執行XML」的短語;-)!

5. Re TinyTim and Blis:重新考慮你對gawk/bash的反對意見:這兩種優秀語言是nawk和ksh(88)的超集。根據腳本對gawk/bash特定功能的依賴程度,很簡單,您可能只需要將文件頂部的'she-bang'更改爲#!/ bin/nawk,#!/ bin/ksh或者更真實一點,做出這個改變,然後爲nawk/ksh重寫一些代碼。最糟糕的情況是,gawk和bash代碼嚴重依賴於特定的「品牌」特性,這些特性實際上是不可重寫的。值得一看。

要完成圖片,還請參閱gawkxml。 顯然是一個gawk系統,但我做了一些代碼更改的nawk轉換。它的工作對我的需要,但我沒有嘗試修復代碼的自動檢驗方面,沒有工作;-(

編輯

6.最後的情況下,在經典着作「Awk編程語言」,第4章報告和數據庫,「關係數據庫系統」和第6章小語言中查看原始awk創建者的系統範圍。沒有預焙CMS不過;-)


因此,鑑於pe rl和python都有通過導入模塊內置的好到極好的XML處理,我認爲你必須認真考慮它們或者安裝像xmlstarlet這樣的東西(根據S.O.上面的鏈接),並編寫你的shell系統包裝來處理它。

我希望這會有所幫助。

+0

嗅聞...你讓我想起了我在學校裏從來沒有過的老師! +1 – 2012-01-05 05:06:28

+0

哈哈!不是一半;-)但感謝好的想法。你最近發佈了一些非常好的答案,並很快超過了我的代表。保持良好的工作!祝你們好運。 – shellter 2012-01-05 05:08:01

+0

謝謝Shellter ...與您在這裏共享的豐富知識相比,rep-points沒有任何意義,所以謝謝! :) – 2012-01-05 05:20:46

2

嘗試化身:

http://jekyllrb.com/

你只要使用一些簡單的,直觀的語法寫了一些文本文件。然後當你運行Jekyll時,它會生成一個完整的純文件夾,準備上傳。

該代碼可以使用增加額外功能的Ruby插件進行擴展。

它在GitHub Pages上受支持:如果您上傳了一個完整的Markdown文件庫,GitHub會自動運行Jekyll並將其託管在您的個人子域中。

還有Hyde這是用Python編寫的,但我還沒有嘗試過。

谷歌搜索「靜態網站生成器」將產生數以百萬計的結果。嘗試一下,選擇你喜歡的東西!

+0

是的,我決定採用CVS,實際上是剩下的。請參閱我上面的評論。我需要能夠快速生成/更新靜態網頁的內容。目前我正在使用Markdown語言進行實驗,因爲它比純XHTML更容易編寫。我沒有看過Jekyll,因爲我不熟悉Ruby,但之前我有過Google。正如您所觀察到的,Google會返回百萬次測試結果,您通常可以在10分鐘的測試後忽略這些結果。我需要有人像你們一樣清除我的思想。 – 2012-01-05 14:29:47

4

我寫了一個使用awk和sh的靜態站點生成器,名爲Zodiac。它支持Markdown和純HTML,主站點佈局,元數據及其用POSIX awk和sh編寫的代碼。這可能是您正在尋找的基於awk的內容管理系統。

+0

感謝您發佈您的答案!請務必仔細閱讀[自助推廣常見問題](http://stackoverflow.com/faq#promotion)。另請注意,每次鏈接到您自己的網站/產品時,您都必須*發佈免責聲明。 – 2012-05-11 02:50:34

+0

評論已更新。 – 2012-06-04 19:58:41