Thread overview
December 09, 2009

Şöylesine bir baktım ama anlamadım. Sanırım iki dosyadan oluşuyor. Biri '.ddoc' diğeri '.d' adlı iki dosya. Birinde '$(P paragraftaki metinler) 'diyerek kullanıyoruz, diğerinde ise 'P = $a' şeklinde P'nin ne olduğunu tanımlıyoruz. Ama hangisinde hangisini yapıyoruz anlamadım.

Ve en önemlisi ve sanırım yanlış yaptığım şey dmd'ye derlemek için verdiğim kod.

Bunu anlatmak için sanırım en iyisi $(P sse) gibi bir örnek vermektir.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 09, 2009

Derlemede takıldım :

ddoc_deneme.d(3): no identifier for declarator Ddoc
ddoc_deneme.d(3): semicolon expected, not '$'
ddoc_deneme.d(3): Declaration expected, not '$'
ddoc_deneme.d(25): unrecognized declaration

Diye hata alıyorum. Daha önceki denemelerimde de almıştım.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 09, 2009

Alıntı (acehreli):

>

D açıklama satırları da eklenemiyor. Denedim; var olmayan bir makroyu açıklama satırı gibi kullanabiliyorsun:

$(AÇIKLAMA Benim açıklamam)

Anladığım kadarıyla /** */ satırını kullanamıyoruz. Yada direk açıklama satırı yerine $(AÇIKLAMA açıklama satırı) diyoruz. Açıkcası benim için bir sorun değil :-) D kodunu da çok güzel renklendiriyor.

Şimdi aklımda kalan tek şey nasıl pdf sayfası üretileceği ? Sayfasında da sadece pdf üretilebilir diyor. Nasıl üretileceği yazmıyor. Örnek olarak ilk verdiğiniz örneği pdf olarak çıktı alabilir miyiz ?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 09, 2009

Öncelikle, eğer belge hazırlamak için düşünüyorsan bana ddili'ne başladıktan sonra Markdown önerilmişti:

http://en.wikipedia.org/wiki/Markdown

veya Emacs Muse:

http://mwolson.org/projects/MuseQuickStart.html

Bir kere ddoc'la başlamış olduğum için değiştirmeye üşenmiştim.

Benim anladığım, .ddoc dosyalarında makroların tanımları bulunuyor. .d dosyası da o makroları kullanıyor. Ama, .d'nin başına bile 'Ddoc' belirteci yazınca onun da aslında ddoc dosyası olduğu söyleniyor.

ddoc tamamen bir makro açılımı düzeneği. HTML tanımları, içinde hazır geliyor. Şu sayfada "Predefined Macros" başlığı altında görülüyorlar:

http://www.digitalmars.com/d/2.0/ddoc.html

Önce onlarla bir örnek. Şu kodu 'ddoc_deneme.d' ismiyle kaydet:

Ddoc

$(P
Merhaba $(B ddoc)!
)

$(P
Bir paragraf.
)

$(P
Bir liste:
)

$(UL
$(LI $(RED kırmızı))
$(LI $(BLUE mavi))
$(LI $(GREEN yeşil))
)

$(P
D kaynak kodları en az üç tirelik satırlar arasına yazılıyor:
)

---
struct GününSaati
{
   int saat;
   int dakika;
}
---

Ondan sonra şöyle derle:

dmd ddoc_deneme.d -Dfddoc_deneme.html

Sonuçta 'ddoc_deneme.html' isminde bir dosya oluşacak. Onu tarayıcıda açabilirsin...

Kendi makrolarını tanımlayabileceğin gibi, mevcut makroları da değiştirebiliyorsun. Yukarıdaki "Predefined Macros" bölümüne bakarsan, DDOC makrosunun bütün sonuç belgenin temeli olduğu gösteriliyor. BODY onun içine yerleştiriliyor. (Belgeler eksik :( TITLE bir makro olarak listelenmemiş ama DDOC içinde kullanıldığını görüyoruz.)

Şimdi kendi makro dosyasını kullanan bir örnek. Şu kodu da 'makrolar.ddoc' ismiyle kaydet:

RED = <span style="color:#ff4400">$0</span>
MOR = <span style="color:#8800ff">$0</span>

D_KEYWORD = $(MOR $0)

Sonra şöyle oluştur:

dmd makrolar.ddoc ddoc_deneme.d -Dfddoc_deneme.html

Hatta, eğer HTML yapacaksan herhalde DDOC'u mutlaka kendin yazmalısın. Benim 'ddili.ddoc' dosyam şöyle:

DDOC =<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="tr">

 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <meta http-equiv="content-language" content="tr" />
   <meta name="language" content="turkish" />
   <meta name="description" content="$(DESCRIPTION)" />
   <meta name="keywords" content="türkçe $(KEYWORDS)" />
   <title>$(MAIN_TITLE) - $(SUBTITLE)</title>
   <link href="$(ROOT_DIR)/style.css" rel="stylesheet" type="text/css" />
   <link rel="icon" type="image/png" href="/image/favicon.png" />
   <link rel="alternate" type="application/rss+xml" href="http://ddili.org/rss.xml" title="D Programlama Dili RSS Beslemesi" />
 </head>

 <body>

   <div id="$(CONTAINER_ID)">

     <div id="$(HEADER_ID)">
       <div id="$(HEADER1_ID)">
         $(MAIN_TITLE)
         <span style="font-size:.4em">$(I $(SUB_MAIN_TITLE))</span>
       </div>

       $(HEADER_SECONDARY_DIV)
     </div>

     $(VERTINAV_DIV)

     <div id="content">
       $(BREADCRUMBS_DIV)

       $(DERS_NAV)
       $(BODY)
       $(DERS_NAV)

     </div>

   </div>

 </body>

</html>

Orada ismi geçen makrolar başka dosyalarda tanımlanıyorlar ve komut satırı da make marifetiyle örneğin şöyle oluyor (evet, yapılar dersini yazıyorum ;) ):

dmd ddili.ddoc  common.ddoc dusey_navigasyon.ddoc sozluk_body.ddoc  ders.ddoc sozluk.ddoc  ders/d/yapilar.d.macros.ddoc test.ddoc ders/d/breadcrumbs.ddoc ders/d/yapilar.d -Df../public_html_test/ders/d/yapilar.html

$0 makroya verilen bütün bilgi anlamına geliyor. Örneğin '$(B Bütün bu koyu olacak)' yazıldığında "Bütün bu koyu olacak" kısmı $0 yerine geliyor.

$1, $2, vs. de makronun o numaralı parametresi oluyor. '$(PARAMETRELI_MAKRO birinci, ikinci, üçüncü)'.

$+, ilk virgülden sonra verilenler oluyor (sonraki virgüllerde aynı parametrenin parçası oluyorlar). Örneğin LINK2 şöyle tanımlanmış (ddoc sayfasından):

LINK2 =	<a href="$1">$+</a>

O makroyu metin içinde şöyle yazıyorum: '$(LINK2 /ders/d/assert.html, $(C assert) dersinde)' sonuçta HTML dosyasında şu bulunuyor:

<a href="/ders/d/assert.html"><code class="d_inline">assert</code> dersinde</a>

Yani verdiğim bağlantı href'in değeri olmuş. Onun oluşabilmesi için ayrıca şunun tanımlı olduğunu da söylemem gerek:

  C = <code class="d_inline">$0</code>

Özet: Çok basit bir makro açılım düzeneği... Tabii HTML belgesinin güzel olarak açılabilmesi için yanında uygun bir 'style.css' dosyası da gelmeli.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 09, 2009

Anladım: Ddoc'un ilk satırda olması gerekiyor.

D açıklama satırları da eklenemiyor. Denedim; var olmayan bir makroyu açıklama satırı gibi kullanabiliyorsun:

$(AÇIKLAMA Benim açıklamam)

Saçma tabii ama öyle... :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 09, 2009

Alıntı (canalpay):

>

direk açıklama satırı yerine $(AÇIKLAMA açıklama satırı) diyoruz. Açıkcası benim için bir sorun değil :-)

Evet, böyle bir belgede açıklamaya fazla gerek olmuyor. İlerisi için hatırlatma amaçlı notlar bırakmaya çalıştığımda gerekmişti ama önemli değil.

Alıntı:

>

Şimdi aklımda kalan tek şey nasıl pdf sayfası üretileceği ?

Makroların çıktıda pdf düzenini oluşturan kodlar haline gelmeleri gerekiyor. pdf standardını şu anda ücretsiz olarak bulamıyorum. Daha önce belki de eski bir standardını bulmuştum; oldukça külfetliydi... Bir sürü olanağı var. :)

Başka bir yolunu hatırladım: Linux'ta yazıcı seçeneği olarak "dosyaya yazdır" gibi bir şey de var. Onu kullanarak da HTML'den (veya her dosyadan) pdf oluşturulabilir ama tam bir çözüm değil.

Ya da en iyisi pdf üreten bir program veya kütüphane satın almak ve kurtulmak. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 10, 2009

Yanıtlarınız için teşekkürler. Bir kaç sorum daha var. (Pek saçma ama olsun.)

  1. DDOC hala geliştiriliyor mu ?

  2. İşaretlemeli dil yapımı zor olur mu(Niyetim belli oldu :-D ) ?

  3. D.ershane yazılarının ham şekli var mı ? Varsa paylaşabilir misiniz ? Yoksa ama DDOC'lu hali varsa onu paylaşabilir misiniz ?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

December 10, 2009

DDOC düzeninin geliştirilip geliştirilmediğini bilmiyorum ama dmd bug listesinde onunla ilgili kayıtlar var. En azından zaman bulurlarsa düzeltilecektir.

İşaretlemeli dil ile "markup language" mı demek istiyorsun? Zor olmamalı. Sonuçta bir dönüşüm yapılıyor. Makrolar ekleyebiliyor olmak karmaşıklık getirebilir.

D.ershane'yi tamamen DDOC olarak yazıyorum. Elim değince bir proje sitesine koyacağım. Şimdilik sana özel göndereyim.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]