Compare commits
10 Commits
39ac6224ad
...
5da44976cd
Author | SHA1 | Date | |
---|---|---|---|
5da44976cd | |||
c67bab514b | |||
d45465ffe9 | |||
537fc2300a | |||
c0ec392fbf | |||
a67ade9672 | |||
45a5337447 | |||
7bb712802d | |||
65ebab416f | |||
4cbca8ccd7 |
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,4 +1,5 @@
|
|||
# build output
|
||||
dist/
|
||||
|
||||
# generated types
|
||||
.astro/
|
||||
|
@ -22,3 +23,4 @@ pnpm-debug.log*
|
|||
# jetbrains setting folder
|
||||
.idea/
|
||||
TODO
|
||||
.env.development
|
||||
|
|
|
@ -2,3 +2,5 @@
|
|||
build
|
||||
coverage
|
||||
public
|
||||
|
||||
src/content/blog/*
|
||||
|
|
|
@ -2,5 +2,7 @@ import { defineConfig } from "astro/config";
|
|||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
site: "https://log101.dev",
|
||||
base: "/blog",
|
||||
integrations: [],
|
||||
});
|
||||
|
|
1
dist/_astro/hoisted.1nV_f3w7.js
vendored
1
dist/_astro/hoisted.1nV_f3w7.js
vendored
File diff suppressed because one or more lines are too long
1
dist/category/ansiklopedi/index.html
vendored
1
dist/category/ansiklopedi/index.html
vendored
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><div>Catakulli, ansiklopedi!</div>
|
1
dist/category/edebiyat/index.html
vendored
1
dist/category/edebiyat/index.html
vendored
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><div>Catakulli, edebiyat!</div>
|
1
dist/category/fikir/index.html
vendored
1
dist/category/fikir/index.html
vendored
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><div>Catakulli, fikir!</div>
|
1
dist/category/teknik/index.html
vendored
1
dist/category/teknik/index.html
vendored
|
@ -1 +0,0 @@
|
|||
<!DOCTYPE html><div>Catakulli, teknik!</div>
|
9
dist/favicon.svg
vendored
9
dist/favicon.svg
vendored
|
@ -1,9 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
|
||||
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
|
||||
<style>
|
||||
path { fill: #000; }
|
||||
@media (prefers-color-scheme: dark) {
|
||||
path { fill: #FFF; }
|
||||
}
|
||||
</style>
|
||||
</svg>
|
Before Width: | Height: | Size: 749 B |
2
dist/index.html
vendored
2
dist/index.html
vendored
|
@ -1,2 +0,0 @@
|
|||
<!DOCTYPE html><html lang="en"> <head><meta charset="UTF-8"><meta name="description" content="Astro description"><meta name="viewport" content="width=device-width"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><meta name="generator" content="Astro v4.7.0"><title>log101</title><style>:root{--h1-desktop: 3.815rem;--h2-desktop: 3.052rem;--h3-desktop: 2.441rem;--h4-desktop: 1.953rem;--h5-desktop: 1.563rem;--h6-desktop: 1.25rem;--small-desktop: .8rem;font-size:20px;font-family:Gill Sans,Gill Sans MT,Calibri,Trebuchet MS,sans-serif;background-color:#f5fffa}body{display:flex;justify-content:center}.container{width:750px;display:flex;flex-direction:column;gap:36px;margin:24px 0}.header{display:flex;flex-direction:column;justify-content:start;gap:6px}.contact-links{display:flex;flex-direction:row;align-items:center;list-style-type:none;padding:0;margin:0;gap:12px}.contact-links a{color:gray}.undecorated-anchor a{text-decoration:none}.nav-links{display:flex;flex-direction:row;align-items:center;justify-content:space-between;list-style-type:none;padding:0;margin:0;gap:12px}.nav-links a{font-size:var(--h6-desktop);color:inherit}.title-and-nav{display:flex;flex-direction:column;gap:8px}.title-and-nav hr{margin-bottom:0}.title-and-gol{display:flex;flex-direction:row;gap:16px;align-items:center;height:110px}.main-title{font-family:Courier New,Courier,monospace;font-size:var(--h1-desktop);max-width:250;margin:0;padding:0 0 8px}.footer{display:flex;flex-direction:row;align-items:center;gap:10px;color:gray}.footer a{color:inherit}.posts{display:flex;flex-direction:column;gap:48px}.post{display:flex;flex-direction:column;gap:8px}.post-category{margin:0;padding:0;color:#2f4f4f;letter-spacing:.03em}.post-title{font-size:var(--h4-desktop);font-weight:400;margin:0;padding:0}.post-summary{margin:0;padding:0}.post-date{margin:0;padding:0;color:gray}.home-all-posts{padding-top:16px;color:inherit}
|
||||
</style><script type="module" src="/_astro/hoisted.1nV_f3w7.js"></script></head> <body> <div class="container"> <div class="header"> <ul class="contact-links undecorated-anchor"> <li><a href="#">Eposta</a></li> <li><a href="#">Github</a></li> <li><a href="#">LinkedIn</a></li> <li><a href="#">CV</a></li> </ul> <div class="title-and-nav"> <div class="title-and-gol"> <h1 class="main-title">log101</h1> <div id="board" class="board"></div> </div> <div> <ul class="nav-links undecorated-anchor"> <li> <a href="/category/fikir">Fikir</a> </li><li> <a href="/category/teknik">Teknik</a> </li><li> <a href="/category/edebiyat">Babür'ün Serüvenleri</a> </li><li> <a href="/category/ansiklopedi">Ansiklopedi</a> </li> </ul> <hr> </div> </div> </div> <div class="posts"> <div class="post"> <p class="post-category">Teknik Yazı</p> <h4 class="post-title">Bir Komponentin Serüveni: Astro</h4> <p class="post-date"> 1 Nisan 2024 </p> <p class="post-summary">Yazdığınız komponentlere ne olur? Bu yazıda Astro komponentlerinin serüvenlerine göz atıyoruz!</p> </div><div class="post"> <p class="post-category">Kitap İncelemesi</p> <h4 class="post-title">Atatürk ve Demokratik Türkiye</h4> <p class="post-date"> 15 Mart 2024 </p> <p class="post-summary">Halil İnalcık'ın kaleminden Türkiye Cumhuriyet'nin kuruluş hikayesi ve Atatürk inkılaplarının toplumdaki akisleri.</p> </div><div class="post"> <p class="post-category">Öykü</p> <h4 class="post-title">5. Bölüm: Kaptan ile Mücadele</h4> <p class="post-date"> 3 Mart 2024 </p> <p class="post-summary">Babür'ün önünde yalnızca tek bir engel kalmıştır: Komutan.</p> </div> </div> <a class="home-all-posts" href="#">Tüm Yayınlar</a> <div class="footer"> <p class="copyright">© 2024 Furkan Erdem</p> <a class="about-me" href="#">Hakkımda</a> </div> </div> </body></html>
|
|
@ -2,6 +2,21 @@
|
|||
|
||||
---
|
||||
|
||||
<style>
|
||||
.footer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
color: gray;
|
||||
font-size: var(--small-desktop);
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: inherit;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="footer">
|
||||
<p class="copyright">© 2024 Furkan Erdem</p>
|
||||
<a class="about-me" href="#">Hakkımda</a>
|
||||
|
|
|
@ -1,7 +1,82 @@
|
|||
---
|
||||
import { CATEGORIES } from "../content/config";
|
||||
const base = import.meta.env.BASE_URL;
|
||||
---
|
||||
|
||||
<style>
|
||||
.header {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.contact-links {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.contact-links a {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
.undecorated-anchor a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.nav-links {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.nav-links a {
|
||||
font-size: var(--h6-desktop);
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.title-and-nav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.title-and-nav hr {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.title-and-gol {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 16px;
|
||||
align-items: center;
|
||||
height: 110px;
|
||||
}
|
||||
|
||||
.title-and-gol a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.main-title {
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
font-size: var(--h1-desktop);
|
||||
max-width: 250;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="header">
|
||||
<ul class="contact-links undecorated-anchor">
|
||||
<li><a href="#">Eposta</a></li>
|
||||
|
@ -12,17 +87,28 @@ import { CATEGORIES } from "../content/config";
|
|||
|
||||
<div class="title-and-nav">
|
||||
<div class="title-and-gol">
|
||||
<h1 class="main-title">log101</h1>
|
||||
<a href={base}><h1 class="main-title">log101</h1></a>
|
||||
<div id="board" class="board"></div>
|
||||
</div>
|
||||
<div>
|
||||
<ul class="nav-links undecorated-anchor">
|
||||
{
|
||||
Object.entries(CATEGORIES).map(([k, v]) => (
|
||||
<li>
|
||||
<a href=`/category/${k}`>{v}</a>
|
||||
</li>
|
||||
))
|
||||
(
|
||||
<>
|
||||
<li>
|
||||
<a href={`${base}/category/fikir`}>Fikir</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href={`${base}/category/teknik`}>Teknik</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href={`${base}/category/edebiyat`}>Babür'ün Serüvenleri</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href={`${base}/category/ansiklopedi`}>Ansiklopedi</a>
|
||||
</li>
|
||||
</>
|
||||
)
|
||||
}
|
||||
</ul>
|
||||
<hr />
|
||||
|
|
|
@ -1,18 +1,199 @@
|
|||
---
|
||||
const { data } = Astro.props;
|
||||
import type { CollectionEntry } from "astro:content";
|
||||
|
||||
interface Props {
|
||||
post: CollectionEntry<"blog">;
|
||||
componentType: "short" | "long" | "full";
|
||||
}
|
||||
|
||||
const { post, componentType } = Astro.props;
|
||||
|
||||
let showTags, shortSummary, longSummary, fullText, postFooter;
|
||||
|
||||
switch (componentType) {
|
||||
case "full":
|
||||
postFooter = true;
|
||||
showTags = true;
|
||||
fullText = true;
|
||||
break;
|
||||
case "long":
|
||||
longSummary = true;
|
||||
showTags = true;
|
||||
break;
|
||||
case "short":
|
||||
shortSummary = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
const postDateFormatted = post.data.date.toLocaleDateString("tr-TR", {
|
||||
day: "numeric",
|
||||
month: "long",
|
||||
year: "numeric",
|
||||
});
|
||||
|
||||
const base = import.meta.env.BASE_URL;
|
||||
|
||||
const postLink = `${base}/category/${post.data.category}/${post.slug}`;
|
||||
|
||||
const { Content } = await post.render();
|
||||
---
|
||||
|
||||
<div class="post">
|
||||
<p class="post-category">{data.category}</p>
|
||||
<h4 class="post-title">{data.title}</h4>
|
||||
<p class="post-date">
|
||||
{
|
||||
data.date.toLocaleDateString("tr-TR", {
|
||||
day: "numeric",
|
||||
month: "long",
|
||||
year: "numeric",
|
||||
})
|
||||
<style>
|
||||
p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.post {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.post-header {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.post-category {
|
||||
color: #2f4f4f;
|
||||
letter-spacing: 0.03em;
|
||||
}
|
||||
|
||||
.post-title {
|
||||
font-size: var(--h4-desktop);
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.post-date {
|
||||
color: gray;
|
||||
font-size: var(--small-desktop);
|
||||
}
|
||||
|
||||
.meta {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.meta-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.meta-text {
|
||||
font-size: var(--small-desktop);
|
||||
color: #6d6d6d;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.meta-list {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.meta-list li {
|
||||
padding-top: 0.1rem;
|
||||
&:not(:last-child) {
|
||||
&:after {
|
||||
content: ",\00a0";
|
||||
}
|
||||
}
|
||||
</p>
|
||||
<p class="post-summary">{data.summary}</p>
|
||||
}
|
||||
|
||||
.read-more {
|
||||
color: inherit;
|
||||
font-size: var(--small-desktop);
|
||||
}
|
||||
|
||||
.post-footer {
|
||||
color: #424242;
|
||||
font-size: var(--small-desktop);
|
||||
}
|
||||
|
||||
.post-title-anchor {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="post">
|
||||
<div class="post-header">
|
||||
<p class="post-category">{post.data.subcategory}</p>
|
||||
<a class="post-title-anchor" href={postLink}
|
||||
><h4 class="post-title">{post.data.title}</h4></a
|
||||
>
|
||||
<div class="meta">
|
||||
{
|
||||
showTags && (
|
||||
<div class="meta-container">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="18"
|
||||
height="18"
|
||||
fill="#6d6d6d"
|
||||
viewBox="0 0 256 256"
|
||||
>
|
||||
<path d="M140,180a12,12,0,1,1-12-12A12,12,0,0,1,140,180ZM128,72c-22.06,0-40,16.15-40,36v4a8,8,0,0,0,16,0v-4c0-11,10.77-20,24-20s24,9,24,20-10.77,20-24,20a8,8,0,0,0-8,8v8a8,8,0,0,0,16,0v-.72c18.24-3.35,32-17.9,32-35.28C168,88.15,150.06,72,128,72Zm104,56A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z" />
|
||||
</svg>
|
||||
<ul class="meta-list">
|
||||
{post.data.tags.map((tag) => (
|
||||
<li class="meta-text">{tag}</li>
|
||||
))}
|
||||
</ul>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
<div class="meta-container">
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="18"
|
||||
height="18"
|
||||
fill="#6d6d6d"
|
||||
viewBox="0 0 256 256"
|
||||
><path
|
||||
d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Zm-68-76a12,12,0,1,1-12-12A12,12,0,0,1,140,132Zm44,0a12,12,0,1,1-12-12A12,12,0,0,1,184,132ZM96,172a12,12,0,1,1-12-12A12,12,0,0,1,96,172Zm44,0a12,12,0,1,1-12-12A12,12,0,0,1,140,172Zm44,0a12,12,0,1,1-12-12A12,12,0,0,1,184,172Z"
|
||||
></path></svg
|
||||
>
|
||||
<ul class="meta-list">
|
||||
<p class="meta-text">{postDateFormatted}</p>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{shortSummary && <p class="post-summary">{post.data.summary}</p>}
|
||||
|
||||
{
|
||||
longSummary && (
|
||||
<>
|
||||
<p class="post-long-summary">
|
||||
{post.body.slice(0, 500).replace(/(<([^>]+)>)/gi, "")}
|
||||
</p>
|
||||
{post.body.length > 500 && (
|
||||
<a
|
||||
class="read-more"
|
||||
href={`${base}/category/${post.data.category}/${post.slug}`}
|
||||
>
|
||||
Devamını Oku
|
||||
</a>
|
||||
)}
|
||||
</>
|
||||
)
|
||||
}
|
||||
{
|
||||
fullText && (
|
||||
<div class="post-body">
|
||||
<Content />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
{postFooter && <p class="post-footer">{postDateFormatted}</p>}
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
---
|
||||
title: "Atatürk ve Demokratik Türkiye"
|
||||
summary: Halil İnalcık'ın kaleminden Türkiye Cumhuriyet'nin kuruluş hikayesi ve Atatürk inkılaplarının toplumdaki akisleri.
|
||||
category: Kitap İncelemesi
|
||||
category: fikir
|
||||
subcategory: Kitap İncelemesi
|
||||
date: 2024-03-15
|
||||
tags:
|
||||
- kitap
|
||||
|
@ -10,11 +11,11 @@ tags:
|
|||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ut neque sollicitudin, pretium ipsum lacinia, mattis elit. Fusce in dolor suscipit, rutrum risus vehicula, feugiat ipsum. Sed sit amet enim cursus, efficitur eros eu, dapibus lectus. In nec risus eget nisl sodales bibendum nec sit amet nisl. Nulla a dolor finibus, commodo velit et, aliquam lacus. Nunc cursus ultrices tellus, ut volutpat mauris luctus vitae. Donec tristique sollicitudin est, sed iaculis odio eleifend non.
|
||||
|
||||
</br></br>
|
||||
Fusce posuere non elit in vehicula. Proin facilisis dignissim bibendum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed posuere mi lectus, at eleifend mi tristique eu. Suspendisse potenti. Nam et eros velit.
|
||||
|
||||
</br></br>
|
||||
Cras viverra sollicitudin neque et bibendum. Pellentesque ultrices mattis venenatis. Nam leo neque, tristique sed arcu vitae, semper rutrum justo. Ut porta orci nec consectetur bibendum. Etiam feugiat pretium lacus, non molestie lorem cursus sed. Nullam a vehicula turpis, nec tristique mauris. Cras euismod, lectus vitae ultricies elementum, ante dolor cursus lorem, at placerat nulla leo eget mauris. Aenean feugiat est ac sem auctor mollis. Maecenas eget interdum leo. Aenean tristique augue sapien, sit amet malesuada nisl molestie sed. Nullam volutpat pellentesque metus, ut mollis odio. Phasellus molestie iaculis lacinia.
|
||||
|
||||
</br></br>
|
||||
Pellentesque vel massa a ipsum volutpat accumsan in vitae eros. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed porttitor non ligula eget congue. Nunc dictum augue in eros mattis, ut varius risus maximus. Etiam augue tortor, rutrum ac quam vitae, iaculis fringilla lacus. Donec ullamcorper nunc non odio eleifend, vel pulvinar neque fermentum. Cras vel cursus metus. Vestibulum volutpat porta urna, aliquam mollis sem placerat nec. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent eu dictum odio. Nunc eleifend arcu vulputate, volutpat elit ullamcorper, feugiat sapien. Ut egestas aliquet faucibus. Fusce vitae lectus eu nunc mollis aliquet. Fusce cursus imperdiet auctor.
|
||||
|
||||
</br></br>
|
||||
Vivamus urna arcu, bibendum vitae finibus in, fringilla ut nunc. Praesent fermentum velit non tortor porta, et commodo lectus blandit. Sed non mauris libero. Cras interdum, lorem a dignissim sagittis, diam lorem hendrerit lorem, sit amet porta sapien mauris sed augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Proin fringilla urna quis tellus hendrerit mattis. Nulla facilisi. In blandit sapien et lacus sollicitudin, ut elementum ex maximus. Integer efficitur libero eleifend luctus rutrum. Aenean a interdum leo, id blandit ante. Nulla velit dolor, euismod nec tempor ut, lobortis sed orci. Ut euismod tempor turpis ac maximus. Pellentesque odio lectus, malesuada a efficitur ac, placerat vel urna.
|
||||
|
|
|
@ -1,18 +1,19 @@
|
|||
---
|
||||
title: "5. Bölüm: Kaptan ile Mücadele"
|
||||
summary: "Babür'ün önünde yalnızca tek bir engel kalmıştır: Komutan."
|
||||
category: Öykü
|
||||
category: edebiyat
|
||||
subcategory: Öykü
|
||||
date: 2024-03-03
|
||||
tags:
|
||||
- babür
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ut neque sollicitudin, pretium ipsum lacinia, mattis elit. Fusce in dolor suscipit, rutrum risus vehicula, feugiat ipsum. Sed sit amet enim cursus, efficitur eros eu, dapibus lectus. In nec risus eget nisl sodales bibendum nec sit amet nisl. Nulla a dolor finibus, commodo velit et, aliquam lacus. Nunc cursus ultrices tellus, ut volutpat mauris luctus vitae. Donec tristique sollicitudin est, sed iaculis odio eleifend non.
|
||||
|
||||
</br></br>
|
||||
Fusce posuere non elit in vehicula. Proin facilisis dignissim bibendum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed posuere mi lectus, at eleifend mi tristique eu. Suspendisse potenti. Nam et eros velit.
|
||||
|
||||
</br></br>
|
||||
Cras viverra sollicitudin neque et bibendum. Pellentesque ultrices mattis venenatis. Nam leo neque, tristique sed arcu vitae, semper rutrum justo. Ut porta orci nec consectetur bibendum. Etiam feugiat pretium lacus, non molestie lorem cursus sed. Nullam a vehicula turpis, nec tristique mauris. Cras euismod, lectus vitae ultricies elementum, ante dolor cursus lorem, at placerat nulla leo eget mauris. Aenean feugiat est ac sem auctor mollis. Maecenas eget interdum leo. Aenean tristique augue sapien, sit amet malesuada nisl molestie sed. Nullam volutpat pellentesque metus, ut mollis odio. Phasellus molestie iaculis lacinia.
|
||||
|
||||
</br></br>
|
||||
Pellentesque vel massa a ipsum volutpat accumsan in vitae eros. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed porttitor non ligula eget congue. Nunc dictum augue in eros mattis, ut varius risus maximus. Etiam augue tortor, rutrum ac quam vitae, iaculis fringilla lacus. Donec ullamcorper nunc non odio eleifend, vel pulvinar neque fermentum. Cras vel cursus metus. Vestibulum volutpat porta urna, aliquam mollis sem placerat nec. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent eu dictum odio. Nunc eleifend arcu vulputate, volutpat elit ullamcorper, feugiat sapien. Ut egestas aliquet faucibus. Fusce vitae lectus eu nunc mollis aliquet. Fusce cursus imperdiet auctor.
|
||||
|
||||
</br></br>
|
||||
Vivamus urna arcu, bibendum vitae finibus in, fringilla ut nunc. Praesent fermentum velit non tortor porta, et commodo lectus blandit. Sed non mauris libero. Cras interdum, lorem a dignissim sagittis, diam lorem hendrerit lorem, sit amet porta sapien mauris sed augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Proin fringilla urna quis tellus hendrerit mattis. Nulla facilisi. In blandit sapien et lacus sollicitudin, ut elementum ex maximus. Integer efficitur libero eleifend luctus rutrum. Aenean a interdum leo, id blandit ante. Nulla velit dolor, euismod nec tempor ut, lobortis sed orci. Ut euismod tempor turpis ac maximus. Pellentesque odio lectus, malesuada a efficitur ac, placerat vel urna.
|
||||
|
|
20
src/content/blog/bir-componentin-seruveni-2.md
Normal file
20
src/content/blog/bir-componentin-seruveni-2.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
---
|
||||
title: "Bir Komponentin Serüveni: React"
|
||||
summary: Yazdığınız komponentlere ne olur? Bu yazıda React komponentlerinin serüvenlerine göz atıyoruz!
|
||||
category: teknik
|
||||
subcategory: Teknik Yazı
|
||||
date: 2024-04-01
|
||||
tags:
|
||||
- react
|
||||
- javascript
|
||||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ut neque sollicitudin, pretium ipsum lacinia, mattis elit. Fusce in dolor suscipit, rutrum risus vehicula, feugiat ipsum. Sed sit amet enim cursus, efficitur eros eu, dapibus lectus. In nec risus eget nisl sodales bibendum nec sit amet nisl. Nulla a dolor finibus, commodo velit et, aliquam lacus. Nunc cursus ultrices tellus, ut volutpat mauris luctus vitae. Donec tristique sollicitudin est, sed iaculis odio eleifend non.
|
||||
</br></br>
|
||||
Fusce posuere non elit in vehicula. Proin facilisis dignissim bibendum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed posuere mi lectus, at eleifend mi tristique eu. Suspendisse potenti. Nam et eros velit.
|
||||
</br></br>
|
||||
Cras viverra sollicitudin neque et bibendum. Pellentesque ultrices mattis venenatis. Nam leo neque, tristique sed arcu vitae, semper rutrum justo. Ut porta orci nec consectetur bibendum. Etiam feugiat pretium lacus, non molestie lorem cursus sed. Nullam a vehicula turpis, nec tristique mauris. Cras euismod, lectus vitae ultricies elementum, ante dolor cursus lorem, at placerat nulla leo eget mauris. Aenean feugiat est ac sem auctor mollis. Maecenas eget interdum leo. Aenean tristique augue sapien, sit amet malesuada nisl molestie sed. Nullam volutpat pellentesque metus, ut mollis odio. Phasellus molestie iaculis lacinia.
|
||||
</br></br>
|
||||
Pellentesque vel massa a ipsum volutpat accumsan in vitae eros. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed porttitor non ligula eget congue. Nunc dictum augue in eros mattis, ut varius risus maximus. Etiam augue tortor, rutrum ac quam vitae, iaculis fringilla lacus. Donec ullamcorper nunc non odio eleifend, vel pulvinar neque fermentum. Cras vel cursus metus. Vestibulum volutpat porta urna, aliquam mollis sem placerat nec. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent eu dictum odio. Nunc eleifend arcu vulputate, volutpat elit ullamcorper, feugiat sapien. Ut egestas aliquet faucibus. Fusce vitae lectus eu nunc mollis aliquet. Fusce cursus imperdiet auctor.
|
||||
</br></br>
|
||||
Vivamus urna arcu, bibendum vitae finibus in, fringilla ut nunc. Praesent fermentum velit non tortor porta, et commodo lectus blandit. Sed non mauris libero. Cras interdum, lorem a dignissim sagittis, diam lorem hendrerit lorem, sit amet porta sapien mauris sed augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Proin fringilla urna quis tellus hendrerit mattis. Nulla facilisi. In blandit sapien et lacus sollicitudin, ut elementum ex maximus. Integer efficitur libero eleifend luctus rutrum. Aenean a interdum leo, id blandit ante. Nulla velit dolor, euismod nec tempor ut, lobortis sed orci. Ut euismod tempor turpis ac maximus. Pellentesque odio lectus, malesuada a efficitur ac, placerat vel urna.
|
|
@ -1,7 +1,8 @@
|
|||
---
|
||||
title: "Bir Komponentin Serüveni: Astro"
|
||||
summary: Yazdığınız komponentlere ne olur? Bu yazıda Astro komponentlerinin serüvenlerine göz atıyoruz!
|
||||
category: Teknik Yazı
|
||||
category: teknik
|
||||
subcategory: Teknik Yazı
|
||||
date: 2024-04-01
|
||||
tags:
|
||||
- astro
|
||||
|
@ -9,11 +10,11 @@ tags:
|
|||
---
|
||||
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam ut neque sollicitudin, pretium ipsum lacinia, mattis elit. Fusce in dolor suscipit, rutrum risus vehicula, feugiat ipsum. Sed sit amet enim cursus, efficitur eros eu, dapibus lectus. In nec risus eget nisl sodales bibendum nec sit amet nisl. Nulla a dolor finibus, commodo velit et, aliquam lacus. Nunc cursus ultrices tellus, ut volutpat mauris luctus vitae. Donec tristique sollicitudin est, sed iaculis odio eleifend non.
|
||||
|
||||
</br></br>
|
||||
Fusce posuere non elit in vehicula. Proin facilisis dignissim bibendum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed posuere mi lectus, at eleifend mi tristique eu. Suspendisse potenti. Nam et eros velit.
|
||||
|
||||
</br></br>
|
||||
Cras viverra sollicitudin neque et bibendum. Pellentesque ultrices mattis venenatis. Nam leo neque, tristique sed arcu vitae, semper rutrum justo. Ut porta orci nec consectetur bibendum. Etiam feugiat pretium lacus, non molestie lorem cursus sed. Nullam a vehicula turpis, nec tristique mauris. Cras euismod, lectus vitae ultricies elementum, ante dolor cursus lorem, at placerat nulla leo eget mauris. Aenean feugiat est ac sem auctor mollis. Maecenas eget interdum leo. Aenean tristique augue sapien, sit amet malesuada nisl molestie sed. Nullam volutpat pellentesque metus, ut mollis odio. Phasellus molestie iaculis lacinia.
|
||||
|
||||
</br></br>
|
||||
Pellentesque vel massa a ipsum volutpat accumsan in vitae eros. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed porttitor non ligula eget congue. Nunc dictum augue in eros mattis, ut varius risus maximus. Etiam augue tortor, rutrum ac quam vitae, iaculis fringilla lacus. Donec ullamcorper nunc non odio eleifend, vel pulvinar neque fermentum. Cras vel cursus metus. Vestibulum volutpat porta urna, aliquam mollis sem placerat nec. Interdum et malesuada fames ac ante ipsum primis in faucibus. Praesent eu dictum odio. Nunc eleifend arcu vulputate, volutpat elit ullamcorper, feugiat sapien. Ut egestas aliquet faucibus. Fusce vitae lectus eu nunc mollis aliquet. Fusce cursus imperdiet auctor.
|
||||
|
||||
</br></br>
|
||||
Vivamus urna arcu, bibendum vitae finibus in, fringilla ut nunc. Praesent fermentum velit non tortor porta, et commodo lectus blandit. Sed non mauris libero. Cras interdum, lorem a dignissim sagittis, diam lorem hendrerit lorem, sit amet porta sapien mauris sed augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Proin fringilla urna quis tellus hendrerit mattis. Nulla facilisi. In blandit sapien et lacus sollicitudin, ut elementum ex maximus. Integer efficitur libero eleifend luctus rutrum. Aenean a interdum leo, id blandit ante. Nulla velit dolor, euismod nec tempor ut, lobortis sed orci. Ut euismod tempor turpis ac maximus. Pellentesque odio lectus, malesuada a efficitur ac, placerat vel urna.
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
import { z, defineCollection } from "astro:content";
|
||||
|
||||
export const CATEGORIES = {
|
||||
fikir: "Fikir",
|
||||
teknik: "Teknik",
|
||||
edebiyat: "Babür'ün Serüvenleri",
|
||||
ansiklopedi: "Ansiklopedi",
|
||||
};
|
||||
export const CATEGORIES = ["fikir", "teknik", "edebiyat", "ansiklopedi"];
|
||||
|
||||
const blogCollection = defineCollection({
|
||||
type: "content",
|
||||
|
@ -14,7 +9,8 @@ const blogCollection = defineCollection({
|
|||
tags: z.array(z.string()),
|
||||
summary: z.string(),
|
||||
date: z.date(),
|
||||
category: z.enum(["Kitap İncelemesi", "Teknik Yazı", "Öykü"]),
|
||||
category: z.enum(["fikir", "teknik", "edebiyat", "ansiklopedi"]),
|
||||
subcategory: z.string(),
|
||||
}),
|
||||
});
|
||||
|
||||
|
|
|
@ -34,6 +34,11 @@ const { title } = Astro.props;
|
|||
sans-serif;
|
||||
background-color: #f5fffa;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
---
|
||||
import { CATEGORIES } from "../../content/config";
|
||||
|
||||
export function getStaticPaths() {
|
||||
return Object.keys(CATEGORIES).map((k) => {
|
||||
return {
|
||||
params: { category: k },
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
const { category } = Astro.params;
|
||||
---
|
||||
|
||||
<div>Catakulli, {category}!</div>
|
27
src/pages/category/[category]/[slug]/index.astro
Normal file
27
src/pages/category/[category]/[slug]/index.astro
Normal file
|
@ -0,0 +1,27 @@
|
|||
---
|
||||
import { getCollection } from "astro:content";
|
||||
|
||||
import Footer from "@/components/Footer.astro";
|
||||
import Header from "@/components/Header.astro";
|
||||
import Layout from "@/layouts/Layout.astro";
|
||||
import "@/styles/home.css";
|
||||
import Post from "@/components/Post.astro";
|
||||
|
||||
export async function getStaticPaths() {
|
||||
const blogEntries = await getCollection("blog");
|
||||
return blogEntries.map((entry) => ({
|
||||
params: { category: entry.data.category, slug: entry.slug },
|
||||
props: { entry },
|
||||
}));
|
||||
}
|
||||
|
||||
const { entry } = Astro.props;
|
||||
---
|
||||
|
||||
<Layout title="log101">
|
||||
<di class="container">
|
||||
<Header />
|
||||
<Post post={entry} componentType="full" />
|
||||
<Footer />
|
||||
</di>
|
||||
</Layout>
|
40
src/pages/category/[category]/index.astro
Normal file
40
src/pages/category/[category]/index.astro
Normal file
|
@ -0,0 +1,40 @@
|
|||
---
|
||||
import { getCollection } from "astro:content";
|
||||
import { CATEGORIES } from "@/content/config";
|
||||
|
||||
import Header from "@/components/Header.astro";
|
||||
import Footer from "@/components/Footer.astro";
|
||||
import Layout from "@/layouts/Layout.astro";
|
||||
import Post from "@/components/Post.astro";
|
||||
|
||||
import "@/styles/home.css";
|
||||
|
||||
export function getStaticPaths() {
|
||||
return CATEGORIES.map((category) => {
|
||||
return {
|
||||
params: { category },
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
const { category } = Astro.params;
|
||||
|
||||
const allTeknikPosts = await getCollection(
|
||||
"blog",
|
||||
(post) => post.data.category === category
|
||||
);
|
||||
---
|
||||
|
||||
<Layout title="log101">
|
||||
<div class="container">
|
||||
<Header />
|
||||
<div class="posts">
|
||||
{
|
||||
allTeknikPosts
|
||||
.sort((p1, p2) => p2.data.date.getTime() - p1.data.date.getTime())
|
||||
.map((p) => <Post post={p} componentType="long" />)
|
||||
}
|
||||
</div>
|
||||
<Footer />
|
||||
</div>
|
||||
</Layout>
|
|
@ -1,12 +1,11 @@
|
|||
---
|
||||
import Header from "../components/Header.astro";
|
||||
import Footer from "../components/Footer.astro";
|
||||
import Layout from "../layouts/Layout.astro";
|
||||
import "../styles/header.css";
|
||||
import "../styles/home.css";
|
||||
import Header from "@/components/Header.astro";
|
||||
import Footer from "@/components/Footer.astro";
|
||||
import Layout from "@/layouts/Layout.astro";
|
||||
import "@/styles/home.css";
|
||||
|
||||
import { getCollection } from "astro:content";
|
||||
import Post from "../components/Post.astro";
|
||||
import Post from "@/components/Post.astro";
|
||||
|
||||
const allTeknikPosts = await getCollection("blog");
|
||||
---
|
||||
|
@ -18,7 +17,7 @@ const allTeknikPosts = await getCollection("blog");
|
|||
{
|
||||
allTeknikPosts
|
||||
.sort((p1, p2) => p2.data.date.getTime() - p1.data.date.getTime())
|
||||
.map((p) => <Post data={p.data} />)
|
||||
.map((p) => <Post post={p} componentType="short" />)
|
||||
}
|
||||
</div>
|
||||
<a class="home-all-posts" href="#">Tüm Yayınlar</a>
|
||||
|
|
|
@ -1,87 +0,0 @@
|
|||
.container {
|
||||
width: 750px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 36px;
|
||||
margin: 24px 0px;
|
||||
}
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: start;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.contact-links {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.contact-links a {
|
||||
color: grey;
|
||||
}
|
||||
|
||||
.undecorated-anchor a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.nav-links {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.nav-links a {
|
||||
font-size: var(--h6-desktop);
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.title-and-nav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.title-and-nav hr {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.title-and-gol {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 16px;
|
||||
align-items: center;
|
||||
height: 110px;
|
||||
}
|
||||
|
||||
.main-title {
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
font-size: var(--h1-desktop);
|
||||
max-width: 250;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.footer a {
|
||||
color: inherit;
|
||||
}
|
|
@ -1,40 +1,17 @@
|
|||
.container {
|
||||
width: 750px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 36px;
|
||||
margin: 24px 0px;
|
||||
}
|
||||
|
||||
.posts {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 48px;
|
||||
}
|
||||
|
||||
.post {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.post-category {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #2f4f4f;
|
||||
letter-spacing: 0.03em;
|
||||
}
|
||||
|
||||
.post-title {
|
||||
font-size: var(--h4-desktop);
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.post-summary {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.post-date {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.home-all-posts {
|
||||
padding-top: 16px;
|
||||
color: inherit;
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
{
|
||||
"extends": "astro/tsconfigs/strict"
|
||||
"extends": "astro/tsconfigs/strict",
|
||||
"compilerOptions": {
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user