April 02, 2018

Kendi projemde tıpkı standart gibi güzel dökümantasyon yapmak istiyorum. Bu nedenle std.algorithm 'e falan bakıp bir şeyler yapmaya çalıyorum.

Örneğin std.algorithm.findAdjacent :

/**
Advances $(D r) until it finds the first two adjacent elements $(D a),
$(D b) that satisfy $(D pred(a, b)). Performs $(BIGOH r.length)
evaluations of $(D pred).

Params:
   pred = The predicate to satisfy.
   r = A $(REF_ALTTEXT forward range, isForwardRange, std,range,primitives) to
       search in.

Returns:
$(D r) advanced to the first occurrence of two adjacent elements that satisfy
the given predicate. If there are no such two elements, returns $(D r) advanced
until empty.

See_Also:
    $(HTTP sgi.com/tech/stl/adjacent_find.html, STL's adjacent_find)
*/
Range findAdjacent(alias pred = "a == b", Range)(Range r)

Daha önce doxygen ile dökümantasyon yazmış biri olarak bu biraz karışık geldi.

Acaba

bool GetOrderBook( string name, string txName, double level, out OrderBook orderBook );

Gibi olan fonksiyonumu açıklama, parametreler ve dönüş değerlerini nasıl dökümante edebilirim ?

Erdemdem .

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

April 02, 2018

D bu iş için Walter'ın geliştirdiği DDOC yöntemini kullanıyor. Bütün bilgi şurada:

https://dlang.org/spec/ddoc.html

Doxygen'den farklı ama bana daha karışık gelmiyor:

struct OrderBook{
}

/**
  Bu, dünyanın en güzel işlevidir.

  Buraya daha uzun bilgi eklenebilir. Buraya daha uzun bilgi
  eklenebilir. Buraya daha uzun bilgi eklenebilir. Buraya daha uzun bilgi
  eklenebilir. Buraya daha uzun bilgi eklenebilir. Buraya daha uzun bilgi
  eklenebilir. Buraya daha uzun bilgi eklenebilir. Buraya daha uzun bilgi
  eklenebilir. Buraya daha uzun bilgi eklenebilir. Buraya daha uzun bilgi
  eklenebilir.

  Açıklama arasında kod örneği:

---
OrderBook orderBook;
auto b = GetOrderBook("n", "t", 3.5, orderBook);
---

Params:
name = İsim
txName: Tx ismi
level: Düzey
orderBook: Sıralama kitabı (evet, uyduruyorum ;) )

Returns:
  Her zaman $(D_KEYWORD true) döndürür.
*/
bool GetOrderBook( string name, string txName, double level, out OrderBook orderBook ) {
   return true;
}

/// unittest bloğu otomatik olarak belgeye eklenir
unittest {
   OrderBook orderBook;
   auto b = GetOrderBook("n222", "t222", 3.5, orderBook);
}

'
dmd -D deneme.d
'
(-Dd ve -Df seçenekleri de var.) deneme.html dosyası oluşuyor.

Ancak, Çıktıyı ayarlamak için .ddoc dosyaları ve görüntü için .css dosyaları kullanmak çok iyi oluyor.

DDOC aslında genel amaçlı bir makro dili olduğundan ben kitapları da DDOC'un oluşturduğu HTML çıktı üzerinden oluşturuyorum. (DDOC seçmemin tek nedeni, D'ye başladığımda DDOC deneyimim de olsun diyeydi. Yoksa, kitap veya daha genel amaçlı belgelere uygun başka bir sürü markup dili var.)

Ali

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