-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.php
57 lines (48 loc) · 1.8 KB
/
config.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
// Temel URL
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https://" : "http://";
$host = htmlspecialchars($_SERVER['HTTP_HOST'], ENT_QUOTES, 'UTF-8');
$basePath = '/blog/';
define('SITE_NAME', 'Kendime Notlar');
define('POSTS_DIR', realpath(__DIR__ . '/posts/') . '/');
define('DEFAULT_TITLE', 'Kendime Notlar - Teknoloji ve Yazılım'); // Varsayılan başlık
define('DEFAULT_DESCRIPTION', 'Blogumda yayınladığım teknoloji ve yazılıma dair yazılar!'); // Varsayılan meta açıklama
define('BASE_URL', $protocol . $host . $basePath);
function generateSlug($string) {
// Türkçe karakterleri dönüştür
$string = mb_strtolower($string, 'UTF-8');
$string = str_replace(
['ç', 'ğ', 'ı', 'ö', 'ş', 'ü'],
['c', 'g', 'i', 'o', 's', 'u'],
$string
);
// Harf ve rakam dışındaki karakterleri tire ile değiştir
$string = preg_replace('/[^a-z0-9]+/', '-', $string);
return trim($string, '-');
}
function getPostContent($filePath) {
$content = file_get_contents($filePath);
// Meta verileri ayırmak için düzenli ifade
if (preg_match('/^---(.*?)---(.*)$/s', $content, $matches)) {
$metaRaw = trim($matches[1]);
$body = trim($matches[2]);
// Meta verilerini ayrıştır
$meta = [];
foreach (explode("\n", $metaRaw) as $line) {
if (strpos($line, ':') !== false) {
[$key, $value] = explode(':', $line, 2);
$meta[trim($key)] = trim($value);
}
}
// Etiketleri diziye çevir
if (isset($meta['tags'])) {
$meta['tags'] = array_map('trim', explode(',', trim($meta['tags'], '[]')));
}
return [
'meta' => $meta,
'content' => $body
];
}
return null;
}
?>