Carbone, dinamik PDF raporları oluşturmak için güçlü bir araçtır. Bu kapsamlı rehberde, Carbone’un temelden ileri seviyeye tüm özelliklerini, adım adım örneklerle ve pratik ipuçlarıyla keşfedin. Zaman kazandıran Carbone hileleri ve optimizasyon stratejileriyle raporlama süreçlerinizi hızlandırın.
Günümüz iş dünyasında, verileri anlamlı ve okunabilir raporlara dönüştürmek, stratejik kararlar almak için hayati önem taşır. Ancak manuel rapor oluşturma süreçleri, özellikle büyük hacimli verilerle çalışırken zaman alıcı, hataya açık ve maliyetli olabilir. Peki, bu karmaşık süreci nasıl otomatikleştirebilir ve raporlarınızı daha hızlı, daha doğru ve daha tutarlı hale getirebilirsiniz? İşte tam bu noktada Carbone devreye giriyor.
Carbone, açık kaynaklı ve güçlü bir belge oluşturma motorudur. DOCX, ODT gibi şablon dosyalarını JSON verileriyle birleştirerek dinamik PDF, DOCX, XLSX ve HTML gibi çeşitli formatlarda çıktılar üretmenizi sağlar. Basit bir API çağrısı ile, karmaşık faturalardan sözleşmelere, performans raporlarından özelleştirilmiş pazarlama materyallerine kadar her türlü belgeyi saniyeler içinde oluşturabilirsiniz. Temelinde yatan mantık oldukça basittir: Siz bir şablon hazırlarsınız (örneğin Word belgesi), bu şablona değişkenleri eklersiniz ve Carbone’a bu şablonu hangi verilerle doldurmasını istediğinizi söylersiniz. Sonuç olarak, tamamen özelleştirilmiş ve profesyonel görünümlü bir belge elde edersiniz.
Carbone’un bu kadar önemli olmasının birkaç temel nedeni vardır. İlk olarak, otomasyon yeteneği sayesinde insan hatasını minimuma indirir ve zaman tasarrufu sağlar. Özellikle e-ticaret platformlarında, finansal kurumlarda veya insan kaynakları departmanlarında her gün binlerce belge oluşturulması gerekebilir. Carbone, bu süreci tamamen otomatikleştirerek çalışanların daha katma değerli işlere odaklanmasına olanak tanır. İkinci olarak, esneklik ve özelleştirilebilirlik sunar. Geniş şablon desteği ve zengin veri bağlama seçenekleri ile istediğiniz formatta ve içerikte raporlar oluşturabilirsiniz. Koşullu mantık, döngüler ve hesaplamalar gibi özellikler sayesinde raporlarınızda dinamik kararlar alabilir, farklı senaryolara göre içerikleri değiştirebilirsiniz. Üçüncü olarak, API tabanlı yapısı, mevcut sistemlerinizle kolayca entegre olabilmesini sağlar. RESTful API’si sayesinde herhangi bir programlama dilinden Carbone’a istek gönderebilir ve çıktıları alabilirsiniz. Bu da onu mevcut altyapınıza kusursuz bir şekilde dahil edebileceğiniz anlamına gelir. Son olarak, açık kaynaklı olması sayesinde sürekli gelişen bir topluluğa sahip olması ve maliyet avantajı sunması da önemli artılarından biridir. Bu özellikleriyle Carbone, belge üretimi süreçlerini kökten değiştiren, verimliliği artıran ve hata oranını düşüren vazgeçilmez bir araç haline gelmiştir. Bu rehberde, Carbone’u adım adım nasıl kullanacağınızı, gelişmiş özelliklerini ve gerçek dünya senaryolarında nasıl uygulayabileceğinizi detaylı bir şekilde inceleyeceğiz.
Carbone ile İlk Raporunuzu Nasıl Oluşturursunuz: Adım Adım Rehber
Carbone ile rapor oluşturma süreci, temelde iki ana adımdan oluşur: Bir şablon hazırlamak ve bu şablonu verilerle doldurmak için Carbone API’sini kullanmak. Bu bölümde, bu süreci baştan sona uygulamalı örneklerle ele alacağız. Amacımız, en basit Carbone raporunu başarıyla oluşturabilmenizi sağlamaktır.
Carbone Şablonlarında Dinamik İçerik Yönetimi Nasıl Yapılır?
İlk adım, bir DOCX (Microsoft Word) veya ODT (OpenDocument Text) şablonu oluşturmaktır. Carbone, bu şablonlardaki özel etiketleri (placeholder’ları) sizin sağladığınız verilerle değiştirir. Temel bir şablon oluşturalım. Microsoft Word’ü açın ve yeni bir belge oluşturun. Şablonunuzda dinamik olarak değişmesini istediğiniz alanları belirtmek için Carbone’un özel etiketleme sistemini kullanmanız gerekecek. Örneğin, bir müşteri faturası hazırlıyorsak, müşterinin adı, fatura numarası ve ürün listesi gibi bilgilerin dinamik olması gerekir. Carbone, verilerinizi bu etiketlerle eşleştirmek için çift köşeli parantez {{}} kullanır. Basit bir “Merhaba Dünya” örneği ile başlayalım:
Şablon Dosyası (örneğin merhaba.docx):
Merhaba {{ad}}! Bu sizin ilk Carbone raporunuz.
Şimdi, bu şablonu Carbone sunucusuna göndermemiz ve bir çıktı almamız gerekiyor. Carbone'a göndereceğimiz JSON veri yapısı, şablondaki etiketlerle eşleşmelidir. Bu örnekte, ad etiketi için bir değer sağlayacağız. Genellikle bir web servis veya backend uygulamanızdan Carbone API'sine bir POST isteği gönderirsiniz. Aşağıda Node.js kullanarak bir örnek gösterilmiştir, ancak mantık herhangi bir programlama dilinde aynıdır:
const axios = require('axios');
const fs = require('fs');
async function generateReport() {
try {
const templateFile = fs.readFileSync('./merhaba.docx'); // Şablon dosyasını oku
const templateBase64 = Buffer.from(templateFile).toString('base64'); // Base64'e dönüştür
const response = await axios.post('http://localhost:8080/render', { // Carbone sunucusu URL'si
template: {
content: templateBase64,
// Or "id": "YOUR_TEMPLATE_ID_IF_UPLOADED"
},
data: {
ad: "Ziyaretçi"
},
convertTo: "pdf" // Çıktı formatı
}, {
responseType: 'arraybuffer' // Yanıtı ikili veri olarak al
});
fs.writeFileSync('merhaba_rapor.pdf', response.data); // PDF'i kaydet
console.log('Rapor başarıyla oluşturuldu: merhaba_rapor.pdf');
} catch (error) {
console.error('Rapor oluşturulurken bir hata oluştu:', error.message);
if (error.response) {
console.error('Carbone API yanıtı:', error.response.data.toString());
}
}
}
generateReport();
Bu kod bloğu, merhaba.docx dosyasını okur, içeriğini Base64'e dönüştürür ve Carbone'a gönderir. Carbone sunucusu, bu verileri şablonla birleştirerek bir PDF dosyası oluşturur ve geri döndürür. Son olarak, bu PDF dosyası merhaba_rapor.pdf adıyla kaydedilir. Bu basit örnek bile, Carbone'un ne kadar güçlü ve kullanımı kolay olduğunu göstermektedir.
Daha karmaşık şablonlar için Carbone, koşullu ifadeler ({% if ... %}), döngüler ({% for ... %}), alt şablonlar ve hatta dinamik olarak tablo veya liste oluşturma gibi özellikler sunar. Örneğin, bir ürün listesi oluşturmak için şablonunuzda şu yapıyı kullanabilirsiniz:
Şablon Dosyası (örneğin fatura.docx):
Fatura Numarası: {{faturaNo}}
Tarih: {{tarih}}
Müşteri: {{musteri.ad}} {{musteri.soyad}}
Adres: {{musteri.adres}}
Ürünler:
{% for urun in urunler %}
- {{urun.adi}} (Adet: {{urun.adet}}, Fiyat: {{urun.fiyat}} TL)
{% endfor %}
Toplam Tutar: {{toplamTutar}} TL
Ve bu şablona göndereceğiniz JSON veri yapısı:
{
"faturaNo": "INV-2023-001",
"tarih": "2023-10-27",
"musteri": {
"ad": "Ali",
"soyad": "Yılmaz",
"adres": "Örnek Sokak No: 1, Ankara"
},
"urunler": [
{ "adi": "Laptop", "adet": 1, "fiyat": 15000 },
{ "adi": "Klavye", "adet": 1, "fiyat": 750 },
{ "adi": "Mouse", "adet": 1, "fiyat": 250 }
],
"toplamTutar": 16000
}
Carbone'un mobil uyumluluk tarafına gelince, doğrudan rapor çıktısı olan PDF/DOCX mobil uyumlu bir HTML belgesi değildir. Ancak, eğer Carbone'u tetikleyen bir web arayüzünüz varsa veya oluşturduğunuz PDF'leri bir web sayfasında görüntülüyorsanız, bu web sayfasının mobil uyumlu olması kritik öneme sahiptir. Carbone'un kendisi, şablon içindeki görselleri ve tabloları belirli boyutlarda render edebilir, bu da çıktının farklı görüntüleme ortamlarında (örneğin mobil cihazlarda PDF okuyucular) daha iyi görünmesine yardımcı olabilir. Şablon tasarımında, metin boyutlarını, satır aralıklarını ve resim boyutlarını buna göre ayarlamak önemlidir. Web arayüzünüz için genel bir mobil uyumlu HTML örneği şu şekilde olabilir:
Uzman İpucu: Şablon tasarımında, her zaman çıktı formatının (PDF, DOCX) sınırlarını ve hedef kitlenizin bu raporları hangi cihazlarda okuyacağını göz önünde bulundurun. Özellikle çok sütunlu tablolar ve yüksek çözünürlüklü görseller mobil görüntülemede sorun yaratabilir. Minimalist ve temiz bir tasarım, farklı cihazlarda daha iyi bir kullanıcı deneyimi sunar.
Gördüğünüz gibi, Carbone dinamik belge oluşturma konusunda muazzam bir esneklik sunar. Doğru şablon tasarımı ve veri yapısı ile istediğiniz her türlü belgeyi kolayca otomatikleştirebilirsiniz. Gelecek bölümlerde, Carbone'un performans optimizasyonu ve daha ileri düzey kullanımlarına odaklanacağız.
Performans Optimizasyonu ve İleri Düzey Carbone Kullanımı İçin İpuçları
Carbone, varsayılan olarak bile oldukça hızlı çalışır, ancak yüksek hacimli raporlama ihtiyaçları veya karmaşık şablonlarla karşılaşıldığında performans optimizasyonu kritik hale gelebilir. Bu bölümde, Carbone'dan en iyi performansı almak için kullanabileceğiniz stratejileri ve deneyimli kullanıcılar için bazı ileri düzey ipuçlarını inceleyeceğiz.
Büyük Veri Setleri ile Çalışma: Carbone'a gönderdiğiniz JSON veri yükünün boyutu, rapor oluşturma süresini doğrudan etkiler. Eğer çok büyük veri setleriyle çalışmanız gerekiyorsa, bazı optimizasyonlar yapabilirsiniz. Öncelikle, şablonda gerçekten kullanılan verileri göndermeye odaklanın. Gereksiz veya kullanılmayan alanları veri yükünden çıkararak boyutu küçültün. İkinci olarak, verileri toplama ve hazırlama süreci ayrı bir görev olarak ele alınmalıdır; Carbone'a sadece işlenmiş ve son haliyle veriyi gönderin. Carbone sunucunuzun yeterli kaynaklara (CPU, RAM) sahip olduğundan emin olun. Çok sayıda eşzamanlı istek alıyorsanız, Carbone örneklerini yatayda ölçeklendirmeyi (birden fazla Carbone sunucusu çalıştırma) düşünebilirsiniz.
Önbellekleme Stratejileri: Carbone, sık kullanılan şablonlar için önbellekleme mekanizmaları sunar. Eğer aynı şablonu sürekli olarak farklı verilerle kullanıyorsanız, şablonu Carbone'a önceden yükleyerek performans kazanabilirsiniz. Şablonunuzu API aracılığıyla yüklediğinizde, Carbone size bir şablon kimliği (templateId) döner. Sonraki isteklerinizde, şablonun içeriğini göndermek yerine sadece bu templateId'yi belirterek sunucunun şablonu önbelleğinden almasını sağlayabilirsiniz. Bu, özellikle büyük şablon dosyaları için ağ trafiğini ve işleme süresini önemli ölçüde azaltır.
// Şablonu önceden yükleme (bir kerelik)
async function uploadTemplate() {
const templateFile = fs.readFileSync('./büyük_fatura_sablonu.docx');
const templateBase64 = Buffer.from(templateFile).toString('base64');
const response = await axios.post('http://localhost:8080/template/render', {
template: {
content: templateBase64,
name: "Büyük Fatura Şablonu"
},
convertTo: "docx" // Şablonun orijinal formatı
});
console.log('Şablon yüklendi, ID:', response.data.templateId); // Bu ID'yi saklayın
}
// Şablon ID'si ile rapor oluşturma (sonraki tüm istekler)
async function generateReportWithTemplateId(templateId, data) {
const response = await axios.post('http://localhost:8080/render', {
template: {
id: templateId // Sadece ID'yi gönderiyoruz
},
data: data,
convertTo: "pdf"
}, {
responseType: 'arraybuffer'
});
fs.writeFileSync('fatura_rapor.pdf', response.data);
console.log('Rapor ID ile oluşturuldu.');
}
Hata Yönetimi ve Güvenlik Hususları: Carbone entegrasyonlarınızda sağlam bir hata yönetimi stratejisi geliştirmek çok önemlidir. API çağrılarında oluşabilecek ağ sorunları, geçersiz şablon etiketleri veya eksik veri gibi durumları ele almanız gerekir. Carbone API'sinden gelen hata kodlarını ve mesajlarını yakalayarak kullanıcıya anlaşılır geri bildirimler sunmalısınız. Güvenlik açısından, Carbone'u güvenli bir ağ ortamında çalıştırmak ve API anahtarları veya kimlik doğrulama mekanizmaları kullanarak yetkisiz erişimi engellemek önemlidir. Carbone şablonlarınıza kötü amaçlı kod enjekte etme girişimlerine karşı dikkatli olun; şablonların güvenilir kaynaklardan geldiğinden emin olun ve potansiyel güvenlik açıklarını düzenli olarak kontrol edin.
Gerçek Dünya Senaryosu: Bir E-ticaret Platformunda Fatura Oluşturma Vaka Analizi
Bir e-ticaret platformunun, her sipariş için otomatik olarak fatura oluşturması gerektiğini varsayalım. Geleneksel yöntemlerle, bu faturaların her birini manuel olarak doldurmak, büyük bir zaman ve iş gücü kaybına yol açardı. Carbone, bu süreci tamamen otomatikleştirmek için ideal bir çözümdür.
Senaryo Tanıtımı: Müşteri "X" e-ticaret sitesinden bir sipariş verdi. Sipariş onaylandıktan hemen sonra, sistem otomatik olarak PDF formatında bir fatura oluşturup müşteriye e-posta ile göndermelidir. Fatura, müşteri bilgilerini, sipariş detaylarını, ürün listesini, kargo bilgilerini ve toplam tutarı içermelidir.
Carbone Entegrasyonu:
- Şablon Tasarımı: İlk olarak, e-ticaret platformunun marka kimliğine uygun, profesyonel bir fatura şablonu DOCX formatında tasarlanır. Bu şablona,
{{musteri.ad}},{{siparisNo}},{% for urun in urunler %}gibi Carbone etiketleri yerleştirilir. - Veri Hazırlığı: Müşteri siparişi veritabanına kaydedildikten sonra, siparişle ilgili tüm bilgiler (müşteri detayları, ürün listesi, fiyatlar, kargo ücreti, vergiler vb.) Carbone'un beklediği JSON formatına dönüştürülür.
- API Çağrısı: Siparişin tamamlanması olayını dinleyen bir arka uç servisi (örneğin bir Node.js, Python veya PHP uygulaması), hazırlanan JSON verisi ile Carbone API'sine bir POST isteği gönderir. Şablon daha önce Carbone'a yüklenmiş ve bir
templateIdalınmıştır.
// E-ticaret uygulamasından Carbone'a gönderilecek örnek veri
const orderData = {
"faturaNo": "EC-2023-12345",
"tarih": "2023-10-27",
"musteri": {
"ad": "Elif",
"soyad": "Demir",
"email": "elif.demir@example.com",
"adres": "Çiçek Sokak No: 5, İzmir"
},
"siparisNo": "ORDER-98765",
"urunler": [
{ "adi": "Akıllı Telefon", "sku": "SPH001", "adet": 1, "birimFiyat": 10000, "toplamFiyat": 10000 },
{ "adi": "Ekran Koruyucu", "sku": "PROT003", "adet": 2, "birimFiyat": 150, "toplamFiyat": 300 }
],
"araToplam": 10300,
"kargoUcreti": 50,
"vergi": 1854,
"toplamTutar": 12204,
"odemeYontemi": "Kredi Kartı"
};
// Bu verinin, Carbone API'sine şablon ID'si ile birlikte gönderilmesi
// (Yukarıdaki generateReportWithTemplateId fonksiyonuna benzer şekilde)
Örnek Çıktı: Carbone, bu verileri kullanarak saniyeler içinde müşterinin e-posta adresine gönderilmeye hazır, tüm detayları doğru ve eksiksiz içeren bir PDF fatura oluşturur. Bu otomasyon sayesinde, e-ticaret platformu hem zamandan hem de maliyetten tasarruf ederken, müşteri memnuniyetini de artırmış olur. Bu senaryo, Carbone'un belge oluşturma süreçlerini nasıl dönüştürebileceğinin güçlü bir örneğidir.
Carbone Entegrasyonunda Sıkça Karşılaşılan Sorunlar ve Çözümleri
Her güçlü araçta olduğu gibi, Carbone ile çalışırken de bazı yaygın sorunlarla karşılaşabilirsiniz. Bu bölümde, sıkça rastlanan problemlere ve bunları nasıl giderebileceğinize dair pratik çözümler sunacağız. Bu sayede, entegrasyon süreçlerinizi daha sorunsuz hale getirebilirsiniz.
- Geçersiz Şablon Etiketleri veya Eksik Veri:
- Sorun: Rapor çıktısında beklenmeyen boşluklar,
{{etiket}}şeklinde görünen metinler veya Carbone'un hata vermesi. - Çözüm: Şablonunuzdaki etiketlerin (
{{veri}},{% for item in items %}vb.) doğru yazıldığından emin olun. JSON veri yapınızdaki anahtarların şablon etiketleriyle birebir eşleştiğini kontrol edin. Carbone, büyük/küçük harf duyarlıdır. Ayrıca, şablonda kullanılan bir verinin JSON'da eksik olup olmadığını kontrol edin. Eksik veri durumunda, Carbone varsayılan olarak o alanı boş bırakabilir veya hata verebilir. Veri yapınızdaki her seviyenin doğru şekilde (örneğinmusteri.adiçin{"musteri": {"ad": "..."}}) eşleştiğinden emin olun.
- Sorun: Rapor çıktısında beklenmeyen boşluklar,
- Şablon Dosyası Okuma Hataları veya Format Sorunları:
- Sorun: Carbone'a gönderilen şablon dosyasının bozuk olduğu veya okunamadığı hatası.
- Çözüm: Şablonunuzun (DOCX, ODT) gerçekten geçerli bir belge olduğundan emin olun. Bazen elle yapılan küçük düzenlemeler dosya yapısını bozabilir. Şablonu tekrar farklı bir isimle kaydederek veya orijinal bir şablonla deneyerek sorunun dosya kaynaklı olup olmadığını kontrol edin. Ayrıca, Base64 dönüştürme işlemini doğru yaptığınızdan emin olun.
- Carbone Sunucusu Bağlantı Hataları:
- Sorun:
Connection refusedveyaTimeoutgibi hatalar. - Çözüm: Carbone sunucunuzun çalışır durumda olduğunu ve belirtilen portta (varsayılan 8080) dinlediğini doğrulayın. Sunucu loglarını kontrol edin. Güvenlik duvarınızın Carbone sunucusuna gelen bağlantıları engellemediğinden emin olun. Eğer Carbone sunucusu farklı bir makinede ise, ağ bağlantısını ve erişilebilirlik ayarlarını kontrol edin.
- Sorun:
- Bellek Sızıntıları veya Yüksek Bellek Tüketimi:
- Sorun: Özellikle büyük raporlar oluşturulduğunda Carbone sunucusunun belleğinin tükenmesi.
- Çözüm: Büyük ve karmaşık şablonlar, yüksek çözünürlüklü görseller veya çok büyük veri setleri bellek tüketimini artırabilir. Şablonunuzdaki gereksiz karmaşıklığı azaltın. Görsel boyutlarını optimize edin. Eğer mümkünse, tek bir istekte oluşturulan raporların boyutunu ve karmaşıklığını sınırlandırın. Carbone sunucunuza daha fazla RAM ayırın veya yatay ölçeklendirme ile birden fazla Carbone örneği çalıştırın.
- Zaman Aşımı Hataları:
- Sorun: Carbone API'sine yapılan isteklerin belirli bir sürede yanıt dönmemesi.
- Çözüm: Ağ gecikmeleri, büyük veri setleri veya karmaşık rapor oluşturma süreleri nedeniyle zaman aşımları yaşanabilir. Carbone sunucusunun yanıt süresini optimize etmeye çalışın (yukarıdaki performans ipuçlarına bakın). API isteğinizi yapan istemci tarafında zaman aşımı süresini artırabilirsiniz.
Debugging Teknikleri:
- Carbone Logları: Carbone sunucunuzun loglarını düzenli olarak kontrol edin. Hataların kök nedenini anlamak için en iyi başlangıç noktasıdır.
- Küçük Parçalar Halinde Test: Şablonunuzda bir sorun olduğundan şüpheleniyorsanız, şablonu en basit haline indirgeyerek (sadece bir etiket bırakarak) test edin. Daha sonra adım adım karmaşıklığı artırarak hatanın hangi kısımda oluştuğunu izole edin.
- Veri Doğrulama: Carbone'a göndermeden önce JSON verinizin beklenen yapıda ve türlerde olduğundan emin olmak için doğrulama (validation) adımları ekleyin.
- API Yanıtını İnceleme: Carbone API'sinden gelen hata yanıtlarını (
error.response.data) dikkatlice inceleyin. Genellikle hatanın nedenini açıklayan faydalı bilgiler içerirler.
Bu yaygın sorunları ve çözüm yaklaşımlarını bilmek, Carbone entegrasyon süreçlerinizi hızlandıracak ve daha az engelle karşılaşmanızı sağlayacaktır.
Sonuç: Carbone ile Raporlama Süreçlerinizi Dönüştürün
Bu kapsamlı rehberde, Carbone'un temellerinden ileri düzey kullanımına, performans optimizasyonlarından gerçek dünya vaka analizlerine kadar birçok yönünü ele aldık. Carbone'un, dinamik belge oluşturma süreçlerinizi otomatikleştirmek, verimliliği artırmak ve hata oranlarını düşürmek için ne kadar güçlü ve esnek bir araç olduğunu görmüş olduk. Şablon tabanlı yapısı ve kolay entegre edilebilir API'si sayesinde, işletmelerin manuel belge oluşturma yükünden kurtulmasına ve daha stratejik işlere odaklanmasına olanak tanır. İster basit bir fatura, ister karmaşık bir performans raporu olsun, Carbone size zamandan ve maliyetten tasarruf ettirerek belge üretim süreçlerinizi dönüştürme potansiyeli sunar. Doğru şablon tasarımı, veri yapısı ve optimizasyon teknikleri ile Carbone, kurumsal raporlama ihtiyaçlarınız için vazgeçilmez bir yardımcı haline gelecektir.
Sıkça Sorulan Sorular
- Carbone hangi şablon formatlarını destekler?
Carbone başlıca DOCX ve ODT formatlarını şablon olarak destekler. Bu sayede, Microsoft Word veya LibreOffice Writer gibi yaygın ofis programlarında şablonlarınızı kolayca tasarlayabilirsiniz.
- Carbone hangi çıktı formatlarını üretebilir?
Carbone, DOCX, ODT, PDF, HTML ve XLSX gibi çeşitli formatlarda çıktı üretebilir. Bu geniş format desteği, farklı kullanım senaryoları için esneklik sağlar.
- Carbone'u kendi sunucumda çalıştırabilir miyim?
Evet, Carbone bir Docker imajı olarak mevcuttur ve kendi sunucularınızda veya bulut ortamlarında kolayca dağıtılabilir. Bu, veri güvenliği ve performans üzerinde tam kontrol sahibi olmanızı sağlar.
- Carbone şablonlarında koşullu mantık veya döngüler kullanabilir miyim?
Kesinlikle! Carbone şablonları,
{% if ... %} {% endif %}gibi koşullu ifadeleri ve{% for ... in ... %} {% endfor %}gibi döngüleri destekler. Bu sayede, veriye dayalı dinamik içerikler oluşturabilirsiniz. - Carbone ücretli bir hizmet mi?
Hayır, Carbone açık kaynaklı bir projedir ve temel Carbone motorunu ücretsiz olarak kullanabilirsiniz. Ancak, geliştirme veya ticari kullanım için destek veya ek özellikler arıyorsanız, resmi web sitesinde sunulan ücretli destek seçeneklerini veya bulut tabanlı hizmetleri değerlendirebilirsiniz.