Ritim İstanbul A5 Blok No:46, D:112, 34846 Maltepe/İstanbul

Highlight.js ile otomatik kod biçimlendirme ve renklendirme işlemi nasıl yapılır?

Highlight.js, web uygulamalarında kaynak kodunun biçimlendirilip renklendirilmesi için popüler bir JavaScript kütüphanesidir. Bu kütüphane, birçok farklı programlama dilini destekler ve kullanıcıya web sayfalarında kodu daha okunabilir hale getirme olanağı sunar. Bu yazıda, Highlight.js’in temel kullanımını ve kodlarımızı nasıl renklendirip biçimlendireceğimizi göreceğiz.

kod biçimlendirme ve kod renklendirme

Otomatik kod biçimlendirme ve renklendirme neden bu kadar önemli?

Kod yazmak, bir programcı için yalnızca fonksiyonel bir ihtiyaç değil, aynı zamanda bir sanattır. Ancak, kodun estetik ve anlaşılırlığı, genellikle göz ardı edilen bir yönüdür. İşte otomatik kod biçimlendirme ve renklendirmenin önemini vurgulayan bazı sebepler:

- ADT Çözümleri -
Yönetilen Hizmetler Görseli
Advanced Dynamics Teknoloji'de işletmeler için dış kaynaktan hizmet modeliyle Yönetilen Hizmetler çözümleri sunuyoruz.
  1. Okunabilirlik: Otomatik renklendirme, farklı kod bileşenlerini ayırt etmeyi kolaylaştırır. Fonksiyonlar, değişkenler, anahtar kelimeler vb. farklı renklerle vurgulanarak, gözün hızla ayırt edebilmesine yardımcı olur. Bu, özellikle karmaşık kod yapılarında hızlı bir şekilde oryantasyon sağlar.
  2. Hızlı Hata Tespiti: Renklendirme, özellikle kodun hatalı veya eksik olduğunda dikkat çekici olabilir. Örneğin; bir string’in ya da yorum satırının kapatılmamış olması durumunda bu, renkler sayesinde kolayca fark edilebilir.
  3. Kod Standartlarına Uyumluluk: Otomatik biçimlendirme, kodun belirli bir standartta yazılmasını sağlar. Bu, ekip içinde çalışırken bütünlüğün korunmasına yardımcı olur.
  4. Zaman Tasarrufu: Kodun manuel olarak biçimlendirilmesi zaman alıcı bir işlemdir. Otomatik biçimlendirme, bu süreci hızlandırarak geliştiricinin asıl işlevsellikle ilgilenmesine olanak tanır.
  5. Eğitim ve Öğrenme: Başlangıç seviyesindeki geliştiriciler için renkli ve düzenli kod, öğrenme sürecini destekler. Öğrenciler veya yeni başlayanlar, renklendirilmiş kodun farklı bileşenlerini daha kolay anlayabilirler.
  6. Profesyonellik: Blog yazıları, dokümantasyonlar ya da sunumlar için kod gömme ihtiyacı olduğunda, renklendirilmiş ve düzenli kod, profesyonelliği yansıtır. Okuyucunun dikkatini çeker ve içeriğin daha etkili bir şekilde sunulmasına yardımcı olur.

Sonuç olarak, otomatik kod biçimlendirme ve renklendirmenin avantajları, kodun sadece işlevselliğini değil, aynı zamanda sunumunu ve etkileşimini de optimize eder. Bu nedenle, modern web geliştirme ve programlama pratiklerinde bu tür araçların kullanımı giderek daha yaygın hale gelmektedir. Highlight.js gibi kütüphaneler, bu ihtiyaçları karşılamak için mükemmel çözümler sunar.

Kütüphaneyi Dahil Etme

Öncelikle, Highlight.js kütüphanesini web sayfamıza dahil etmeliyiz. Bunun için aşağıdaki iki satırı HTML dosyanızın <head> bölümüne ekleyin:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/styles/vs2015.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/highlight.min.js"></script>

Bu satırlar, Highlight.js’in stil ve işlevsellik dosyalarını projemize ekler.

Kodun Biçimlendirilmesi

Verdiğiniz kod parçası, her bir kod satırının başına satır numarası ekleyen bir işlem gerçekleştiriyor. Bu işlem şu adımlardan oluşuyor:

  1. HTML içindeki <pre> elementi seçilir.
  2. Bu <pre> elementi içindeki tüm <code> elementleri seçilir.
  3. Her bir <code> elementi içerisindeki kod satırlarına sırasıyla numara eklenir.
  4. Numaralandırılmış satırlar, <code> elementine geri yazılır.

Kod Renklendirmesi

Highlight.js’in renklendirme işlevini başlatmak için aşağıdaki satırı kullanıyoruz:

hljs.initHighlightingOnLoad();

Bu fonksiyon, sayfa yüklendiğinde otomatik olarak çalışır ve tüm kod parçalarını renklendirir.

    <!-- Highlight.js kütüphanesi -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/styles/vs2015.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/highlight.min.js"></script>
    <script>
        // <pre> elementini seç
var pre = document.querySelector("pre");

// <pre> elementinin içindeki tüm <code> elementlerini seç
var codes = pre.querySelectorAll("code");

// Her bir <code> elementi için
for (var i = 0; i < codes.length; i++) {
  // <code> elementinin içindeki HTML'i al
  var code = codes[i].innerHTML;

  // Yeni satır karakterleri ile böl
  var lines = code.split("\n");

  // Her bir dizeye sayı ekle
  for (var j = 0; j < lines.length; j++) {
    lines[j] = (j + 1) + ". " + lines[j];
  }

  // Dizeleri yeniden birleştir
  code = lines.join("\n");

  // <code> elementinin içeriğini güncelle
  codes[i].innerHTML = code;
}

// Kod renklendirmesini etkinleştir
hljs.initHighlightingOnLoad();

// <pre> elementinin HTML’i olarak ayarla (bu satır döngünün dışında olmalı)
pre.innerHTML = pre.innerHTML;

Bu kod parçası, Highlight.js kütüphanesini kullanarak web sayfasında kod biçimlendirmesi ve renklendirmesi yapmayı hedefliyor. İşte kodun adım adım açıklaması:

  1. Highlight.js Kütüphanesinin Dahil Edilmesi:
    • İlk olarak, Highlight.js kütüphanesine ait stil dosyası (CSS) ve işlevsellik dosyası (JavaScript) web sayfasına dahil ediliyor.
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/styles/vs2015.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/highlight.min.js"></script>
  2. Element Seçimi:
    • Sayfadan ilk <pre> elementi seçilir. Bu, genellikle kod bloklarını içermek için kullanılır.
    var pre = document.querySelector("pre");
    • Daha sonra bu <pre> elementi içerisindeki tüm <code> elementleri seçilir. Bu elementler genellikle kod parçalarını içerir.
    var codes = pre.querySelectorAll("code");
  3. Satır Numaralandırması:
    • Her bir <code> elementi için bir döngü başlatılır.
    • İlgili <code> elementinin içerdiği HTML kodu alınır ve her satır yeni satır karakterleri (\n) ile ayrılır.
    • Her bir satıra sırasıyla bir sayı eklenir. Bu, satır numaralandırması için yapılır.
    • Sayılandırılmış satırlar yeniden birleştirilir ve bu bilgi <code> elementine geri yazılır.
  4. Kod Renklendirmesi:
    • Highlight.js’in otomatik kod renklendirme fonksiyonu, sayfa yüklendiğinde çalıştırılır. Böylece kod parçaları renklendirilir.
    hljs.initHighlightingOnLoad();
  5. Elementini Güncelleme:
    • Son olarak, <pre> elementinin içeriği güncellenir. Bu, satır numaralandırmasının düzgün çalışabilmesi için gereklidir.
      javascript pre.innerHTML = pre.innerHTML;

Bu kod parçası, kodun renklendirilmesinin yanı sıra satır numaralandırması gibi ek bir özellik sunar. Bu, özellikle uzun kod bloklarında hangi satırda hangi kodun olduğunu görmeyi kolaylaştırır ve kodun daha okunabilir olmasını sağlar.

Sonuç

Yukarıdaki kodlar sayesinde, web sayfanızda yer alan kod parçaları hem renklendirilmiş hem de satır numaralarıyla biçimlendirilmiş olacaktır. Highlight.js, web geliştiricileri için kaynak kodunun anlaşılırlığını artırmada büyük bir yardımcıdır. Siz de bu kütüphaneyi kullanarak kodlarınızı daha estetik ve okunabilir hale getirebilirsiniz.

Moment.js nedir ve nasıl kullanılır?

JavaScript kütüphaneleri programlama sektöründe sıklıkla karşılaşılan sorunları çözmek ve otomatikleştirmek için geliştirilir. Popüler JavaScript kütüphanelerinden biri de Moment.js'tir. Peki Moment.js nedir ve programlama dünyasında...

JavaScript’te değişkenler ve aralarındaki farklar: var, let & const

JavaScript, web geliştirmenin temel taşlarından biri olarak, dinamik ve etkileşimli web siteleri oluşturmanın anahtarıdır. Bu güçlü programlama dilinin en temel yönlerinden biri, veri saklama...

Fiyat takip yazılımları nasıl çalışır?

E-ticaret dünyası her geçen gün daha rekabetçi bir hal alıyor. Bu ortamda, işletmelerin rakiplerini ve pazar trendlerini yakından takip etmeleri hayati önem taşıyor. İşte...

HTML div elementi ve kullanım senaryoları

Her gün milyonlarca web sayfasını ziyaret ediyor, okuyor veya üzerlerinde işlem yapıyoruz. Peki, son kullanıcılar için görsel olarak renderlanan bu sayfaların arkasındaki kodlarda kullanılan...

React ‘hook’ nedir ve ne için kullanılır?

React hook, React JavaScript kitaplığındaki bir özelliktir. Hook'lar, sınıf bileşenlerine ihtiyaç duymadan, fonksiyon bileşenlerinde durum (state) ve diğer React özelliklerini kullanmaya olanak tanır. İlk...

IPv4 ve IPv6 nedir? Aralarındaki farklar nelerdir?

Her gün internete bağlanıyoruz, ancak teknik olarak internete nasıl bağlandığımızla ilgili bir fikriniz var mı? İnternet, modern yaşamın ayrılmaz bir parçası haline geldi ve...

Daha fazla blog içerik

Moment.js nedir ve nasıl kullanılır?

JavaScript kütüphaneleri programlama sektöründe sıklıkla karşılaşılan sorunları çözmek ve otomatikleştirmek için geliştirilir. Popüler JavaScript kütüphanelerinden biri de Moment.js'tir. Peki Moment.js nedir ve programlama dünyasında...

JavaScript’te değişkenler ve aralarındaki farklar: var, let & const

JavaScript, web geliştirmenin temel taşlarından biri olarak, dinamik ve etkileşimli web siteleri oluşturmanın anahtarıdır. Bu güçlü programlama dilinin en temel yönlerinden biri, veri saklama...

Fiyat takip yazılımları nasıl çalışır?

E-ticaret dünyası her geçen gün daha rekabetçi bir hal alıyor. Bu ortamda, işletmelerin rakiplerini ve pazar trendlerini yakından takip etmeleri hayati önem taşıyor. İşte...

HTML div elementi ve kullanım senaryoları

Her gün milyonlarca web sayfasını ziyaret ediyor, okuyor veya üzerlerinde işlem yapıyoruz. Peki, son kullanıcılar için görsel olarak renderlanan bu sayfaların arkasındaki kodlarda kullanılan...