Compare commits

..

No commits in common. "5da44976cd2b329bb10a1613eab523dfa69adbd8" and "39ac6224ada0d35b00a67342fbcdeb3064b2979d" have entirely different histories.

26 changed files with 199 additions and 442 deletions

2
.gitignore vendored
View File

@ -1,5 +1,4 @@
# build output
dist/
# generated types
.astro/
@ -23,4 +22,3 @@ pnpm-debug.log*
# jetbrains setting folder
.idea/
TODO
.env.development

View File

@ -2,5 +2,3 @@
build
coverage
public
src/content/blog/*

View File

@ -2,7 +2,5 @@ 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 Normal file

File diff suppressed because one or more lines are too long

1
dist/category/ansiklopedi/index.html vendored Normal file
View File

@ -0,0 +1 @@
<!DOCTYPE html><div>Catakulli, ansiklopedi!</div>

1
dist/category/edebiyat/index.html vendored Normal file
View File

@ -0,0 +1 @@
<!DOCTYPE html><div>Catakulli, edebiyat!</div>

1
dist/category/fikir/index.html vendored Normal file
View File

@ -0,0 +1 @@
<!DOCTYPE html><div>Catakulli, fikir!</div>

1
dist/category/teknik/index.html vendored Normal file
View File

@ -0,0 +1 @@
<!DOCTYPE html><div>Catakulli, teknik!</div>

9
dist/favicon.svg vendored Normal file
View File

@ -0,0 +1,9 @@
<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>

After

Width:  |  Height:  |  Size: 749 B

2
dist/index.html vendored Normal file
View File

@ -0,0 +1,2 @@
<!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&#39;ü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&#39;ın kaleminden Türkiye Cumhuriyet&#39;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&#39;ü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>

View File

@ -2,21 +2,6 @@
---
<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>

View File

@ -1,82 +1,7 @@
---
const base = import.meta.env.BASE_URL;
import { CATEGORIES } from "../content/config";
---
<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>
@ -87,28 +12,17 @@ const base = import.meta.env.BASE_URL;
<div class="title-and-nav">
<div class="title-and-gol">
<a href={base}><h1 class="main-title">log101</h1></a>
<h1 class="main-title">log101</h1>
<div id="board" class="board"></div>
</div>
<div>
<ul class="nav-links undecorated-anchor">
{
(
<>
<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>
</>
)
Object.entries(CATEGORIES).map(([k, v]) => (
<li>
<a href=`/category/${k}`>{v}</a>
</li>
))
}
</ul>
<hr />

View File

@ -1,199 +1,18 @@
---
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();
const { data } = Astro.props;
---
<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";
}
}
}
.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>}
<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",
})
}
</p>
<p class="post-summary">{data.summary}</p>
</div>

View File

@ -1,8 +1,7 @@
---
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: fikir
subcategory: Kitap İncelemesi
category: Kitap İncelemesi
date: 2024-03-15
tags:
- kitap
@ -11,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.

View File

@ -1,19 +1,18 @@
---
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: edebiyat
subcategory: Öykü
category: Ö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.

View File

@ -1,20 +0,0 @@
---
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.

View File

@ -1,8 +1,7 @@
---
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
subcategory: Teknik Yazı
category: Teknik Yazı
date: 2024-04-01
tags:
- astro
@ -10,11 +9,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.

View File

@ -1,6 +1,11 @@
import { z, defineCollection } from "astro:content";
export const CATEGORIES = ["fikir", "teknik", "edebiyat", "ansiklopedi"];
export const CATEGORIES = {
fikir: "Fikir",
teknik: "Teknik",
edebiyat: "Babür'ün Serüvenleri",
ansiklopedi: "Ansiklopedi",
};
const blogCollection = defineCollection({
type: "content",
@ -9,8 +14,7 @@ const blogCollection = defineCollection({
tags: z.array(z.string()),
summary: z.string(),
date: z.date(),
category: z.enum(["fikir", "teknik", "edebiyat", "ansiklopedi"]),
subcategory: z.string(),
category: z.enum(["Kitap İncelemesi", "Teknik Yazı", "Öykü"]),
}),
});

View File

@ -34,11 +34,6 @@ const { title } = Astro.props;
sans-serif;
background-color: #f5fffa;
}
* {
margin: 0;
}
body {
display: flex;
justify-content: center;

View File

@ -0,0 +1,15 @@
---
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>

View File

@ -1,27 +0,0 @@
---
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>

View File

@ -1,40 +0,0 @@
---
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>

View File

@ -1,11 +1,12 @@
---
import Header from "@/components/Header.astro";
import Footer from "@/components/Footer.astro";
import Layout from "@/layouts/Layout.astro";
import "@/styles/home.css";
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 { getCollection } from "astro:content";
import Post from "@/components/Post.astro";
import Post from "../components/Post.astro";
const allTeknikPosts = await getCollection("blog");
---
@ -17,7 +18,7 @@ const allTeknikPosts = await getCollection("blog");
{
allTeknikPosts
.sort((p1, p2) => p2.data.date.getTime() - p1.data.date.getTime())
.map((p) => <Post post={p} componentType="short" />)
.map((p) => <Post data={p.data} />)
}
</div>
<a class="home-all-posts" href="#">Tüm Yayınlar</a>

87
src/styles/header.css Normal file
View File

@ -0,0 +1,87 @@
.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;
}

View File

@ -1,17 +1,40 @@
.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;

View File

@ -1,9 +1,3 @@
{
"extends": "astro/tsconfigs/strict",
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
}
"extends": "astro/tsconfigs/strict"
}