ana sayfa > Python, Yazılım > Sphinx Tabanlı Python 3.x Bölümü Yayımlandı

Sphinx Tabanlı Python 3.x Bölümü Yayımlandı

Cumartesi, 29 Ağu 2009

Dün de söylediğim gibi, Sphinx adlı bir yazılım yardımıyla reST biçimli belgelerden otomatik olarak html ve pdf gibi formatlarda belgeler oluşturabiliyoruz. Python programlama dili ile yazılmış bir uygulama olan Sphinx, programcıların ve belgelendirme faaliyetleriyle uğraşanların hayatını bir hayli kolaylaştıran bir araçtır. Sphinx hakkında geniş bilgiye http://sphinx.pocoo.org/ adresinden; reST hakkında geniş bilgiye ise http://docutils.sourceforge.net/rst.html adresinden ulaşabilirsiniz.

istihza.com’daki belge sayısının sürekli olarak artması nedeniyle ben de Sphinx benzeri bir uygulamaya uzun süredir ihtiyaç duyuyordum. Başka alternatifler arasından Sphinx’i seçmemin en önemli nedeni, Python’un resmi sitesi olan http://www.python.org adresindeki belgelendirme çalışmalarının da Sphinx yardımıyla yürütülüyor olmasıdır. http://docs.python.org/ adresinde gördüğünüz belgelerin tamamı Sphinx kullanılarak hazırlanıyor.

Sphinx üzerinde ilk kez çalışmaya başladığımda, bu yazılımın esasen İngilizce yazılmış belgelerin üretiminde kullanılmaya uygun olduğunu görmek beni biraz endişelendirmişti.

Sphinx’in desteklediği diller arasında Türkçe bulunmuyor. Dolayısıyla ilk iş olarak Sphinx’in arayüzünü Türkçe’ye çevirmem gerekti. Bu sorunu hallettikten sonra, Python 3.x bölümündeki belgeleri HTML biçiminden reST biçimine dönüştürmeye başladım. Burada da karşıma renklendirme sorunu çıktı… Sphinx’in kod renklendirmesinde kullandığı Pygments modülü Türkçe karakterleri renklendirirken olmadık yerlerde sorun çıkarabiliyor. Bu yüzden Python 3.x içindeki bazı kodları yeniden düzenlemem gerekti. Python’un 3.x sürümünde değişkenlere Türkçe karakter içeren adlar verebiliyoruz, ama ne yazık ki Pygments modülü bu Türkçe karakterli adları renklendirmekte zorlanıyor… Bu yüzden bazı yerlerde Türkçe karakterli değişken adlarını değiştirmem gerekti… Bu sorunu da hallettikten sonra usul usul ilerlerken daha büyük bir problemle karşı karşıya olduğumu farkettim. Sphinx’in ürettiği html dosyalarının url adreslerindeki kalıcı bağlantılar Türkçe karakterlerin yerine “-” işareti koyuyordu. Yani mesela “kullanıcıyla-iletişim-input-fonksiyonu” gibi bir başlık, Sphinx’le üretilen html belgesinde “kullan-c-yla-ileti-im-input-fonksiyonu” şeklinde görünüyordu… En mantıklı yol, Sphinx’in bu kalıcı bağlantıyı “kullaniciyla-iletisim-input-fonksiyonu” şeklinde üretmesini sağlamak olacaktı. Epey uğraştıktan sonra sorunun aslında Docutils modülünden kaynaklandığını farkettim. Sorunu çözebilmek için kendi sistemimde bulunan Docutils içindeki “nodes.py” dosyasında değişiklik yapmam gerekti. Bu noktada açık kaynak ve özgür yazılım denen şeyin ne kadar büyük bir nimet olduğunu bir kez daha anladım. Eğer Sphinx ve Docutils yazılımları kapalı kaynaklı olsaydı, ben bunların kaynak kodlarını inceleme fırsatına sahip olmayacağımdan, sorunun nerede olduğunu bilemeyecek ve gerekli düzeltmeyi yapamayacaktım… Bu vesileyle özgür yazılımın babası Richard Stallman’ı bir kez daha saygıyla selamlıyorum…

Şu anda Sphinx ve html belgeleriyle ilgili herhangi bir problem yok. Çözemediğim tek problem LaTex yazılımının, pdf belgelerine Türkçe başlıklar koyamaması… Bu yüzden Sphinx ile oluşturduğum PDF belgelerinde “Contents”, “Documentation” ve “Section” gibi kelimeleri Türkçe’ye çevirmedim. Çok büyük bir sorun değil, ama eğer bununla ilgili çözüm önerisi olan varsa dinlemekten memnuniyet duyarım.

istihza.com’daki, Sphinx ile hazırlanmış yeni Python 3.x bölümüne ulaşmak için http://www.istihza.com/py3/icindekiler_python.html adresini ziyaret edebilirsiniz. Bu belgeleri PDF biçiminde bilgisayarınıza indirmek için ise http://www.istihza.com/py3/pdf/Python3x.pdf adresine tıklayabilirsiniz.

Belgeler arasında daha rahat gezinmeyi de sağlaması açısından Sphinx yazılımı kullanıcıya da önemli kolaylıklar sağlıyor. istihza.com’daki bu değişikliği beğeneceğinizi umuyorum.

Python, Yazılım , , ,

  1. Cumartesi, 29 Ağu 2009 zamanında 04:54 | #1

    Türkçe yereller konusunda yaptığın ‘hack’ faliyetlerinden uygulamanın geliştiricilerinin haberi var mı? Hata kayıt sistemlerini bi dürtsen iyi olur sanki :)

  2. Cumartesi, 29 Ağu 2009 zamanında 05:03 | #2

    Utanırım söylemeye!… :) Şaka bir yana, o değişiklikleri, özellikle çeviriyi, biraz daha düzeltip uygulamaların geliştiricilerine göndereceğim.

  3. Cumartesi, 29 Ağu 2009 zamanında 05:20 | #3

    korkma arkanda biz varız dağ gibi :) Kolay gele…

  4. Cumartesi, 29 Ağu 2009 zamanında 19:58 | #4

    Merhabalar,

    3.x Dökümasyonu çok iyi olmuş, tebrik ederim. Bu arada domain içinde sponsor buldum. Alan adı “codelancer.org” olarak değişti. İstihza.com ile kardeş bir proje olması, dileğiyle…

    Saygılarımla;
    Aras, Samet.

  5. Cumartesi, 29 Ağu 2009 zamanında 22:19 | #5

    @Samet, teşekkür ederim. Bu arada siteye sponsor bulmana sevindim. Peki ne zaman yayına geçiyorsun?

  6. Pazar, 30 Ağu 2009 zamanında 00:31 | #6

    Merhabalar,

    Araya haftasonunun girmesi kötü oldu. Sanırım önümüzde pazartesi yayında olacağız. Şuradan beta sürümüne bakabilirsiniz:

    http://wikibilge.org/ahmet/

    Saygılarımla;
    Aras, Samet.

  7. Pazar, 30 Ağu 2009 zamanında 00:36 | #7

    Hayırlı olsun… Umarım iyi işler başarırsınız. Sonradan tekrar yenilemek gerekir mi bilmiyorum, ama ben şimdi üye oldum. :)

  8. Pazar, 30 Ağu 2009 zamanında 04:06 | #8

    Bu site Python üzerine bir forum çalışması mı olacak?

  9. Pazar, 30 Ağu 2009 zamanında 19:00 | #9

    Merhabalar,

    Python ve Ruby ağırlıklı bir bağımsız yazılımcı forumu olacak.

    Saygılarımla;
    Aras, Samet.

  1. şimdilik geri bağlantı yok