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

Cevap