Sunucu yanıtını kontrol edin

Sunucu yanıtı
NS kayıtları
Whois alanı
Yanıt başlıkları
İstek başlıkları
Ham HTML kodu
308 Permanent Redirect - ockhs.com
HTTP Status: 308
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Content-Type: text/plain
Location: https://ockhs.com/
Refresh: 0;url=https://ockhs.com/
server: Vercel
age: 0
cache-control: public, max-age=0, must-revalidate
content-type: text/html; charset=utf-8
date: Fri, 23 May 2025 14:00:41 GMT
etag: W/"6ef8-cRslglVgsdeN1tX3Kr7zam9EDZ4"
server: Vercel
strict-transport-security: max-age=63072000
x-powered-by: Express
x-vercel-cache: MISS
x-vercel-id: arn1::iad1::tsq79-1748008840591-017a5f7daa61
content-length: 28408

HTTP Kodu 308 Kalıcı Yönlendirme

308 durum kodu, 301'den farklı olarak, istek yönteminin değişmeden kalmasını sağlayan kalıcı bir yönlendirmedir.

Kod 308 ne zaman kullanılır?

  • İstek yöntemi korunurken bir kaynak kalıcı olarak taşındığında
  • HTTPS'yi zorunlu kılarkenform gönderme davranışını değiştirmeden

Kod 308 kullanıcı için ne anlama geliyor?

Kullanıcı kalıcı olarak yeni URL'ye yönlendirilir ve istek yöntemi aynı kalır.

GET / HTTP/1.1
Host: ockhs.com
Accept: */*
User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
<!DOCTYPE html>
<html lang="tr" data-bs-theme="light">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="OCKHS - Oğuzhan Çelik Kişisel Web Sitesi">
    <meta property="og:title" content="OCKHS - OCKHS Blog - Anasayfa">
    <meta property="og:description" content="OCKHS - Oğuzhan Çelik Kişisel Web Sitesi">
    <meta property="og:url" content="http://ockhs.com">
    <meta property="og:type" content="website">
    <link rel="canonical" href="http://ockhs.com">
    <title>OCKHS - OCKHS Blog - Anasayfa</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/handlebars@latest/dist/handlebars.js"></script>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="/css/style.css">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
    <script>
        // Handlebars Helpers
        Handlebars.registerHelper('isInArray', function(item, array) {
            return Array.isArray(array) && array.includes(item);
        });
    </script>
    <style>
        .site-header {
            text-align: center;
            padding: 1rem 0;
        }
        .site-title {
            font-size: 2rem;
            font-weight: bold;
            margin-bottom: 1rem;
        }
        .site-title a {
            color: inherit;
            text-decoration: none;
        }
        .site-title a:hover {
            color: #0d6efd;
        }
        .nav-menu {
            display: flex;
            justify-content: center;
            gap: 2rem;
        }
        .nav-menu .nav-link {
            color: #333;
            font-weight: 500;
            font-size: 1.1rem;
            text-decoration: none;
        }
        .nav-menu .nav-link:hover {
            color: #0d6efd;
        }
        .nav-item.dropdown {
            position: relative;
        }
        .dropdown-menu {
            position: absolute;
            top: 100%;
            left: 50%;
            transform: translateX(-50%);
            background-color: white;
            border: 1px solid rgba(0,0,0,.15);
            border-radius: 0.25rem;
            padding: 0.5rem 0;
            min-width: 120px;
            box-shadow: 0 2px 4px rgba(0,0,0,0.1);
            z-index: 1000;
        }
        .dropdown-item {
            display: block;
            padding: 0.5rem 1rem;
            color: #333;
            text-decoration: none;
            text-align: center;
        }
        .dropdown-item:hover {
            background-color: #f8f9fa;
            color: #0d6efd;
        }
        /* Dark mode styles for dropdown */
        .dark-mode .dropdown-menu {
            background-color: #343a40;
            border-color: #495057;
        }
        .dark-mode .dropdown-item {
            color: #fff;
        }
        .dark-mode .dropdown-item:hover {
            background-color: #495057;
            color: #0d6efd;
        }
        .theme-toggle {
            position: fixed;
            top: 1rem;
            right: 1rem;
        }
        /* Dark mode styles */
        body.dark-mode {
            background-color: #212529;
            color: #fff;
        }
        .dark-mode .site-title {
            color: #fff;
        }
        .dark-mode .nav-menu .nav-link {
            color: #fff;
        }
        .dark-mode .nav-menu .nav-link:hover {
            color: #0d6efd;
        }
        /* Rest of your dark mode styles */
        .dark-mode .card {
            background-color: #343a40;
            border-color: #495057;
        }
        .dark-mode .card-title,
        .dark-mode .card-text {
            color: #fff !important;
        }
        .dark-mode .text-muted {
            color: #adb5bd !important;
        }
        .dark-mode #homeSlider .carousel-caption {
            background: linear-gradient(to top, rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.6));
        }
        .dark-mode #homeSlider .carousel-caption h5,
        .dark-mode #homeSlider .carousel-caption p {
            color: #fff !important;
            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
        }
        .dark-mode #homeSlider .carousel-control-prev,
        .dark-mode #homeSlider .carousel-control-next {
            background: rgba(0, 0, 0, 0.8);
        }
        .dark-mode #homeSlider .carousel-indicators button {
            background-color: rgba(255, 255, 255, 0.8) !important;
            border-color: rgba(255, 255, 255, 0.3) !important;
        }
        .dark-mode #homeSlider .carousel-indicators button.active {
            background-color: #fff !important;
            border-color: rgba(255, 255, 255, 0.5) !important;
        }
        /* Dark mode styles for search results */
        .dark-mode #searchResults {
            background-color: #343a40;
            border-color: #495057;
        }
        .dark-mode #searchResults .list-group-item {
            background-color: #343a40;
            border-color: #495057;
            color: #fff;
        }
        .dark-mode #searchResults .list-group-item:hover {
            background-color: #495057;
        }
        #searchResults {
            max-height: 300px;
            overflow-y: auto;
            background-color: white;
            border-radius: 0.25rem;
        }
        #searchResults .list-group-item {
            border-left: none;
            border-right: none;
            padding: 0.5rem 1rem;
            display: flex;
            align-items: center;
            gap: 1rem;
        }
        #searchResults .list-group-item:hover {
            background-color: rgba(0,0,0,0.05);
        }
        .dark-mode #searchResults .list-group-item:hover {
            background-color: rgba(255,255,255,0.1);
        }
        .search-result-image {
            width: 50px;
            height: 50px;
            object-fit: cover;
            border-radius: 0.25rem;
            flex-shrink: 0;
        }
        .search-result-content {
            flex-grow: 1;
            min-width: 0;
        }
        .search-result-title {
            font-weight: 500;
            margin-bottom: 0.25rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .search-result-preview {
            font-size: 0.875rem;
            color: #6c757d;
            margin-bottom: 0;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }
        .dark-mode .search-result-preview {
            color: #adb5bd;
        }
        .search-container .form-control {
            color: #000;
            background-color: #fff;
            border-color: #ced4da;
        }
        .search-container .form-control::placeholder {
            color: #6c757d;
        }
        .dark-mode .search-container .form-control {
            color: #fff;
            background-color: #2b3035;
            border-color: #495057;
        }
        .dark-mode .search-container .form-control::placeholder {
            color: #adb5bd;
        }
        /* Dark mode styles for all form inputs */
        .dark-mode .form-control {
            color: #fff;
            background-color: #2b3035;
            border-color: #495057;
        }
        .dark-mode .form-control::placeholder {
            color: #adb5bd;
        }
        .dark-mode .form-control:focus {
            background-color: #2b3035;
            border-color: #0d6efd;
            color: #fff;
            box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
        }
        .dark-mode .form-label {
            color: #fff;
        }
        /* Base form control styles */
        .form-control {
            color: #212529;
            background-color: #fff;
            border: 1px solid #ced4da;
            transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
        }
        .form-control:focus {
            color: #212529;
            background-color: #fff;
            border-color: #86b7fe;
            box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
            outline: 0;
        }
        .form-control::placeholder {
            color: #6c757d;
            opacity: 1;
        }
        .form-label {
            color: #212529;
        }
        /* Dark mode overrides */
        .dark-mode .form-control {
            color: #fff !important;
            background-color: #2b3035 !important;
            border-color: #495057 !important;
        }
        .dark-mode .form-control:focus {
            color: #fff !important;
            background-color: #2b3035 !important;
            border-color: #0d6efd !important;
            box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
        }
        .dark-mode .form-control::placeholder {
            color: #adb5bd !important;
        }
        .dark-mode .form-label {
            color: #fff !important;
        }
        /* Search container specific styles */
        .search-container .form-control {
            width: 100%;
        }
        
        /* Search button and input group styles */
        .search-container .input-group {
            display: flex;
            align-items: stretch;
        }
        
        .search-container .input-group .btn {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0.375rem 0.75rem;
            border: 1px solid #ced4da;
            background-color: #fff;
            color: #212529;
        }
        
        .dark-mode .search-container .input-group .btn {
            background-color: #2b3035;
            border-color: #495057;
            color: #fff;
        }

        /* Base form styles - Light theme (default) */
        .form-control {
            background-color: #fff !important;
            color: #212529 !important;
            border: 1px solid #ced4da !important;
            transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
        }
        .form-control:focus {
            background-color: #fff !important;
            color: #212529 !important;
            border-color: #86b7fe !important;
            box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
            outline: 0;
        }
        .form-control::placeholder {
            color: #6c757d !important;
            opacity: 1;
        }
        .form-label {
            color: #212529 !important;
        }

        /* Dark theme overrides */
        body.dark-mode .form-control {
            background-color: #2b3035 !important;
            color: #fff !important;
            border-color: #495057 !important;
        }
        body.dark-mode .form-control:focus {
            background-color: #2b3035 !important;
            color: #fff !important;
            border-color: #0d6efd !important;
        }
        body.dark-mode .form-control::placeholder {
            color: #adb5bd !important;
        }
        body.dark-mode .form-label {
            color: #fff !important;
        }
    </style>
</head>
<body>
    <header class="site-header">
        <h1 class="site-title"><a href="/">OCKHS</a></h1>
        <nav class="nav-menu">
            <a class="nav-link" href="/">Anasayfa</a>
            <a class="nav-link" href="/projects">Projeler</a>
            <div class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" id="blogDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                    Blog
                </a>
                <div class="dropdown-menu" aria-labelledby="blogDropdown">
                    <a class="dropdown-item" href="/blog">Tüm Yazılar</a>
                    <div class="dropdown-divider"></div>
                        <a class="dropdown-item" href="/blog/category/dolma-kalem">Dolma Kalem</a>
                        <a class="dropdown-item" href="/blog/category/kitap">Kitaplar</a>
                        <a class="dropdown-item" href="/blog/category/saat">Saat</a>
                </div>
            </div>
            <div class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" id="contactDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
                    İletişim
                </a>
                <div class="dropdown-menu">
                    <a class="dropdown-item" href="/contact">İletişim</a>
                    <a class="dropdown-item" href="/whoami">Hakkımda</a>
                </div>
            </div>
        </nav>
        <div class="search-container position-fixed" style="top: 1rem; right: 4rem; z-index: 1000;">
            <div class="input-group" style="width: 250px;">
                <input type="text" id="searchInput" class="form-control" placeholder="Ara 🔍" autocomplete="off">
            </div>
            <div id="searchResults" class="position-absolute w-100 mt-1 d-none">
                <div class="list-group shadow-sm">
                    <!-- Search results will be dynamically added here -->
                </div>
            </div>
        </div>
        <button class="btn btn-outline-secondary theme-toggle" id="darkModeToggle">
            <i class="fas fa-moon"></i>
        </button>
    </header>

    <div class="container mt-4">
        <style>
/* Slider container stil */
#homeSlider {
    position: relative;
    margin-bottom: 40px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    overflow: hidden;
}

/* Slider göstergeleri için stil */
.carousel-indicators {
    position: absolute;
    bottom: 30px;
    left: auto;
    right: 30px;
    transform: none;
    margin: 0;
    z-index: 2;
    padding: 0;
    justify-content: flex-end;
    width: auto;
}

.carousel-indicators button {
    width: 12px !important;
    height: 12px !important;
    border-radius: 50% !important;
    margin: 0 6px !important;
    background-color: rgba(255, 255, 255, 0.7) !important;
    border: 2px solid rgba(0, 0, 0, 0.3) !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.carousel-indicators button.active {
    background-color: #fff !important;
    border-color: rgba(0, 0, 0, 0.5) !important;
    transform: scale(1.2);
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
}

/* Slider okları için stil */
.carousel-control-prev,
.carousel-control-next {
    width: 45px;
    height: 45px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    transition: all 0.3s ease;
}

.carousel-control-prev {
    left: 20px;
}

.carousel-control-next {
    right: 20px;
}

#homeSlider:hover .carousel-control-prev,
#homeSlider:hover .carousel-control-next {
    opacity: 1;
}

/* Slider ok ikonları için stil */
.carousel-control-prev-icon,
.carousel-control-next-icon {
    width: 24px;
    height: 24px;
    background-color: transparent;
    filter: none !important;
}

.carousel-control-prev-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
}

.carousel-control-next-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

/* Hover efekti */
.carousel-control-prev:hover,
.carousel-control-next:hover {
    background: rgba(255, 255, 255, 0.3);
}

[data-theme="dark"] .carousel-control-prev,
[data-theme="dark"] .carousel-control-next {
    background: rgba(0, 0, 0, 0.5);
}

[data-theme="dark"] .carousel-control-prev:hover,
[data-theme="dark"] .carousel-control-next:hover {
    background: rgba(0, 0, 0, 0.7);
}

/* Slider başlık ve açıklama için stil */
.carousel-caption {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.4));
    left: 0;
    right: 0;
    bottom: 0;
    padding: 30px;
    text-align: left;
}

.carousel-caption h5 {
    font-size: 28px;
    font-weight: 600;
    margin-bottom: 15px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

.carousel-caption p {
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 0;
    opacity: 0.9;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}

/* Slider resim stil */
.carousel-item img {
    object-fit: cover;
    height: 500px;
    width: 100%;
}

/* Hover efekti */
.carousel-item {
    transition: transform 0.3s ease;
}

.carousel-item:hover {
    transform: scale(1.01);
}

/* Blog kartları için kategori stil */
.card-category {
    position: absolute;
    top: 10px;
    right: 10px;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    padding: 5px 12px;
    border-radius: 15px;
    font-size: 14px;
    font-weight: 500;
}

.card {
    position: relative;
}

.project-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    overflow: hidden;
}

.project-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.project-tags {
    position: absolute;
    bottom: 10px;
    right: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    justify-content: flex-end;
}

.project-tags .badge {
    font-size: 0.75rem;
    padding: 5px 8px;
    background-color: rgba(33, 37, 41, 0.8);
    backdrop-filter: blur(2px);
}

.view-project {
    transition: all 0.2s ease;
}

.view-project:hover {
    transform: scale(1.05);
}
</style>

<div id="homeSlider" class="carousel slide" data-bs-ride="carousel">
    <div class="carousel-indicators">
        <button type="button" data-bs-target="#homeSlider" data-bs-slide-to="0" class="active"></button>
        <button type="button" data-bs-target="#homeSlider" data-bs-slide-to="1" ></button>
        <button type="button" data-bs-target="#homeSlider" data-bs-slide-to="2" ></button>
    </div>
    <div class="carousel-inner">
        <div class="carousel-item active" style="cursor: pointer;" onclick="window.location.href='/blog/6d2685ec-ed02-431c-9ee6-03840f9903f6'">
            <img src="https://omyfkqecvwinzmawghtu.supabase.co/storage/v1/object/public/media/blog-images/1746705110210-792890207.png" class="d-block w-100" alt="Zamanın Mekaniği: Mekanik Saatler">
            <div class="carousel-caption">
                <h5>Zamanın Mekaniği: Mekanik Saatler</h5>
                <p>Zaman, insanlık için hem gizemli hem de kaçınılmaz bir kavram olmuştur. Bu zamanı ölçmek için kullanılan en zarif araçlardan biri ise kuşkusuz mekanik saatlerdir. Bu saatler, yalnızca zamanı göstermen...</p>
            </div>
        </div>
        <div class="carousel-item " style="cursor: pointer;" onclick="window.location.href='/blog/aed6afc6-9d0f-465c-8892-e9897440707b'">
            <img src="https://omyfkqecvwinzmawghtu.supabase.co/storage/v1/object/public/media/blog-images/1746704507301-62446354.png" class="d-block w-100" alt="Dolma Kalemin Zarafeti">
            <div class="carousel-caption">
                <h5>Dolma Kalemin Zarafeti</h5>
                <p>Dolma kalem, sadece bir yazı aracı değil; bir karakter, bir ifade biçimidir. Mürekkebin kâğıtla buluştuğu o an, yazıya ruh katılır. 1800&#x27;lü yıllardan bu yana hayatımızda olan bu zarif kalemler, özelli...</p>
            </div>
        </div>
        <div class="carousel-item " style="cursor: pointer;" onclick="window.location.href='/blog/24fe53a8-6d75-490a-9f5c-5d9d76c7dda7'">
            <img src="https://omyfkqecvwinzmawghtu.supabase.co/storage/v1/object/public/media/blog-images/1739949055139-158119313.jpeg" class="d-block w-100" alt="WOOL-1 SILO">
            <div class="carousel-caption">
                <h5>WOOL-1 SILO</h5>
                <p>Çoğu filmde yada çoğu kitapta bulunan daha doğrusu bir çok içerikte bulunan komplo teorisi, kıyamet sonu hayat gibi kavramlar bu kitabın ana başlığını oluşturuyor.
Yıl bilmem kaç insanlar bir silonun ...</p>
            </div>
        </div>
    </div>
    <button class="carousel-control-prev" type="button" data-bs-target="#homeSlider" data-bs-slide="prev">
        <span class="carousel-control-prev-icon"></span>
        <span class="visually-hidden">Önceki</span>
    </button>
    <button class="carousel-control-next" type="button" data-bs-target="#homeSlider" data-bs-slide="next">
        <span class="carousel-control-next-icon"></span>
        <span class="visually-hidden">Sonraki</span>
    </button>
</div>

<div class="row">
    <div class="col-md-4 mb-4">
        <a href="/blog/6d2685ec-ed02-431c-9ee6-03840f9903f6" class="text-decoration-none">
            <div class="card h-100">
                <img src="https://omyfkqecvwinzmawghtu.supabase.co/storage/v1/object/public/media/blog-images/1746705110210-792890207.png" class="card-img-top" alt="Zamanın Mekaniği: Mekanik Saatler">
                <div class="card-body">
                    <h5 class="card-title">Zamanın Mekaniği: Mekanik Saatler</h5>
                    <div class="mb-2">
                        <span class="badge bg-primary me-1">Saat</span>
                    </div>
                    <p class="card-text">Zaman, insanlık için hem gizemli hem de kaçınılmaz bir kavram olmuştur. Bu zamanı ölçmek için kullanılan en zarif araçlardan biri ise kuşkusuz mekanik...</p>
                </div>
            </div>
        </a>
    </div>
    <div class="col-md-4 mb-4">
        <a href="/blog/aed6afc6-9d0f-465c-8892-e9897440707b" class="text-decoration-none">
            <div class="card h-100">
                <img src="https://omyfkqecvwinzmawghtu.supabase.co/storage/v1/object/public/media/blog-images/1746704507301-62446354.png" class="card-img-top" alt="Dolma Kalemin Zarafeti">
                <div class="card-body">
                    <h5 class="card-title">Dolma Kalemin Zarafeti</h5>
                    <div class="mb-2">
                        <span class="badge bg-primary me-1">Dolma Kalem</span>
                    </div>
                    <p class="card-text">Dolma kalem, sadece bir yazı aracı değil; bir karakter, bir ifade biçimidir. Mürekkebin kâğıtla buluştuğu o an, yazıya ruh katılır. 1800&#x27;lü yıllardan ...</p>
                </div>
            </div>
        </a>
    </div>
    <div class="col-md-4 mb-4">
        <a href="/blog/24fe53a8-6d75-490a-9f5c-5d9d76c7dda7" class="text-decoration-none">
            <div class="card h-100">
                <img src="https://omyfkqecvwinzmawghtu.supabase.co/storage/v1/object/public/media/blog-images/1739949055139-158119313.jpeg" class="card-img-top" alt="WOOL-1 SILO">
                <div class="card-body">
                    <h5 class="card-title">WOOL-1 SILO</h5>
                    <div class="mb-2">
                        <span class="badge bg-primary me-1">Kitaplar</span>
                    </div>
                    <p class="card-text">Çoğu filmde yada çoğu kitapta bulunan daha doğrusu bir çok içerikte bulunan komplo teorisi, kıyamet sonu hayat gibi kavramlar bu kitabın ana başlığını...</p>
                </div>
            </div>
        </a>
    </div>
</div>

<nav aria-label="Blog sayfaları" class="mt-4">
    <ul class="pagination justify-content-center">
        <li class="page-item disabled">
            <span class="page-link">&laquo;</span>
        </li>

        <li class="page-item active">
            <a class="page-link" href="/?page=1">1</a>
        </li>

        <li class="page-item disabled">
            <span class="page-link">&raquo;</span>
        </li>
    </ul>
</nav>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
    <script src="/js/main.js"></script>
    <script>
        // Bootstrap dropdowns are automatically initialized
        // No need for custom dropdown JavaScript anymore
        
        // Theme initialization on page load
        document.addEventListener('DOMContentLoaded', function() {
            const savedTheme = localStorage.getItem('theme');
            if (savedTheme === 'dark') {
                document.documentElement.setAttribute('data-bs-theme', 'dark');
                document.body.classList.add('dark-mode');
                document.querySelector('#darkModeToggle i').classList.remove('fa-moon');
                document.querySelector('#darkModeToggle i').classList.add('fa-sun');
            }
        });

        // Theme toggle handler
        document.getElementById('darkModeToggle').addEventListener('click', function() {
            const isDark = document.documentElement.getAttribute('data-bs-theme') === 'dark';
            const newTheme = isDark ? 'light' : 'dark';
            
            // Save theme preference
            localStorage.setItem('theme', newTheme);
            
            // Update theme
            document.documentElement.setAttribute('data-bs-theme', newTheme);
            document.body.classList.toggle('dark-mode');
            
            const icon = this.querySelector('i');
            if (icon.classList.contains('fa-moon')) {
                icon.classList.remove('fa-moon');
                icon.classList.add('fa-sun');
            } else {
                icon.classList.remove('fa-sun');
                icon.classList.add('fa-moon');
            }
        });

        let searchTimeout;
        const searchInput = document.getElementById('searchInput');
        const searchResults = document.getElementById('searchResults');

        // Close search results when clicking outside
        document.addEventListener('click', function(event) {
            if (!event.target.closest('.search-container')) {
                searchResults.classList.add('d-none');
            }
        });

        searchInput.addEventListener('input', function() {
            clearTimeout(searchTimeout);
            const query = this.value.trim();
            
            if (query.length >= 3) {
                searchTimeout = setTimeout(() => {
                    fetch(`/api/search?query=${encodeURIComponent(query)}`)
                        .then(response => response.json())
                        .then(data => {
                            const resultsHtml = data.blogs.map(blog => `
                                <a href="/blog/${blog.id}" class="list-group-item list-group-item-action">
                                    <img src="${blog.image_url || 'https://via.placeholder.com/100x100'}" alt="${blog.title}" class="search-result-image">
                                    <div class="search-result-content">
                                        <div class="search-result-title">${blog.title}</div>
                                        <p class="search-result-preview">${blog.content ? truncateText(stripHtml(blog.content), 100) : ''}</p>
                                    </div>
                                </a>
                            `).join('');
                            
                            searchResults.querySelector('.list-group').innerHTML = resultsHtml || '<div class="list-group-item">Sonuç bulunamadı</div>';
                            searchResults.classList.remove('d-none');
                        })
                        .catch(error => {
                            console.error('Search error:', error);
                            searchResults.classList.add('d-none');
                        });
                }, 300);
            } else {
                searchResults.classList.add('d-none');
            }
        });

        function stripHtml(html) {
            const tmp = document.createElement('div');
            tmp.innerHTML = html;
            return tmp.textContent || tmp.innerText || '';
        }

        function truncateText(text, length) {
            return text.length > length ? text.substring(0, length) + '...' : text;
        }
    </script>
</body>
</html>                               

Alan adının whois bilgisi

Domain Name: OCKHS.COM
Registry Domain ID: 2947115125_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.apiname.com
Registrar URL: http://www.apiname.com
Updated Date: 2025-01-08T07:04:13Z
Creation Date: 2025-01-02T08:31:00Z
Registry Expiry Date: 2026-01-02T08:31:00Z
Registrar: Atak Domain Bilgi Teknolojileri A.S.
Registrar IANA ID: 1601
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +90.2623259222
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Name Server: NS1.VERCEL-DNS.COM
Name Server: NS2.VERCEL-DNS.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2025-05-23T14:00:35Z <<<
For more information on Whois status codes, please visit https://icann.org/epp
NOTICE: The expiration date displayed in this record is the date the
TERMS OF USE: You are not authorized to access or query our Whois
by the following terms of use: You agree that you may use this Data only
to: (1) allow, enable, or otherwise support the transmission of mass