Herkese Merhaba, Yaklaşık 1, 1.5 aydır bir wiki yapma gayreti içindeydim ve bugün ASDF ile yüklenebilir bir prototip oluşturmayı başardım. Adını "A Lisp in Wonderland" koyduğum wiki'nin özellikleri şu şekilde:
1. DTD dosyası ile belirlenmiş, kendine ait bir sözdizimine sahip. Sayfadaki başlıklar (H1, H2, H3) için içerik (TOC) menüsü oluşturmaktan, sayfadaki dış bağlantıları (<link type="external" ...) listelemeye kadar (EXTERNAL-LINKS), markup ile sunduğumuz makrolar da oldukça leziz. 2. Ulaşılacak olan path'ler, ayrı bir mekanizma ile saklanıyor. Şöyle ki, istemci tarafından girilen her bir URI, WIKI-PATH sınıflarına çözümleniyor, bu WIKI-PATH sınıfları da birden fazla biçimde saklanabilip, bu biçimler arası dönüşüm yapılabiliyor. Örneğin: (wiki-path-from :uri "/page/Documents/Installation") (wiki-path-from :label "page:Documents/Installation") (wiki-path-from-to :label "page:Foo/Bar/Baz" :uri) Ve daha 3-5 biçim daha var. Bu WIKI-PATH olgusu wiki'yi kullanacak kişi açısından bir anlam ifade etmese de, wiki'yi geliştirmek için programcıya oldukça kullanışlı bir API sunuyor. (Aslında bir çok işlem (her şey?) API aracılığı ile yapılıyor. Programcı, sayfanın içeriği hangi klasörde, ne biçimde saklanıyor, vs... ve daha bir çok şeyi bilmek zorunda değil.) 3. Her bir URI'in kendine ait bir wiki-path değeri var. Şu an sadece :account ve :page path'leri desteklenmesine rağmen, 1-2 hafta içinde :file ve :image path tiplerini de ekleyeceğim. (Epey bir XmlHttpRequest çalışması gerekecek.) 4. Gelişmiş history, raw source, editing, previewing, diffing arayüzleri. (Bakın _gelişmiş_ diyorum!) 5. Şu an için account:Create sayfasını oluşturmadım. (Çünkü bunu nasıl yapacağıma tam karar veremediğim gibi, burada zaman kaybetmek de istemedim. Kullanıcıdan e-posta yoluyla onaylama mı bekleyelim, yoksa direk sorgusuz sualsiz kayıt mı edelim?) Ama tüm veri düz metin/lisp dosyaları halinde tutulduğundan, şimdilik kullanıcı hesaplarını elle oluşturmak çok kolay: shell$ echo '(:PASSWORD "48F93C6A0ED7177E316BFB493AC6198A" :EMAIL "[EMAIL PROTECTED]")' >/accounts/VolkanYAZICI Bir çırpıda, bahsetmek istediğim önemli noktalar bunlar. Gruptan asıl ricam, bana SVN/CVS/Darcs ve lisp sunucusu için yardımcı olabilecek birilerinin olup olmadığı. Unutmadan, deneme sürüşü için http://www.students.itu.edu.tr/~yazicivo/aliw.tar.gz adresinden paketi çekip ASDF ile kurduktan sonra (in-package :aliw) (defparameter *site* (start-server :port 8080 :address "127.0.0.1")) komutu ile sunucuyu çalıştırıp, internet tarayıcınız ile deneme sürüşüne çıkabilirsiniz. (`test' kullanıcısı ile SignIn olabilirsiniz. Şifre `test'.) İyi çalışmalar. _______________________________________________ cs-lisp mailing list cs-lisp@cs.bilgi.edu.tr http://church.cs.bilgi.edu.tr/lcg http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp