-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
137 lines (131 loc) · 6.49 KB
/
index.html
File metadata and controls
137 lines (131 loc) · 6.49 KB
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
---
layout: default
title: Home
---
<div class="home">
<!-- Hero Section -->
<section class="hero">
<h1>Twodragon's Tech Blog</h1>
<p class="hero-description">
<strong>DevSecOps · DevOps · FinOps</strong> 전문 기술 블로그
<br>클라우드 보안, 인프라 자동화, 비용 최적화의 실무 경험과 최신 트렌드를 공유합니다.
</p>
<div class="hero-badges">
<span class="hero-badge devsecops">🔒 DevSecOps</span>
<span class="hero-badge devops">⚙️ DevOps</span>
<span class="hero-badge finops">💰 FinOps</span>
</div>
</section>
<!-- Search -->
<div class="search-container">
<svg class="search-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" role="presentation" aria-hidden="true">
<circle cx="11" cy="11" r="8"/>
<line x1="21" y1="21" x2="16.65" y2="16.65"/>
</svg>
<input type="text" id="search-input" name="search" class="search-input" placeholder="Search posts..." aria-label="포스트 검색">
<div id="search-results" class="search-results"></div>
</div>
<!-- Stats -->
<div class="stats-grid">
<div class="stat-card card">
<div class="stat-number">{{ site.posts.size }}</div>
<div class="stat-label">Posts</div>
</div>
<div class="stat-card card">
{% assign all_categories = site.posts | map: "category" | concat: site.posts | map: "categories" | flatten | compact | uniq %}
<div class="stat-number">{{ all_categories.size }}</div>
<div class="stat-label">Categories</div>
</div>
<div class="stat-card card">
{% assign all_tags = site.posts | map: "tags" | flatten | compact | uniq %}
<div class="stat-number">{{ all_tags.size }}</div>
<div class="stat-label">Tags</div>
</div>
</div>
<!-- Recent Posts -->
<section class="recent-posts-section">
<div class="section-header">
<h2>Recent Posts</h2>
<a href="{{ '/archive/' | relative_url }}" class="btn btn-secondary">View All</a>
</div>
<div class="posts-list">
{% for post in site.posts limit: 9 %}
{% include post-card.html post=post %}
{% comment %} 6번째 포스트 후에 인피드 광고 삽입 {% endcomment %}
{% if forloop.index == 6 and site.google_adsense %}
{% include adsense.html type="infeed" %}
{% endif %}
{% endfor %}
</div>
</section>
{% comment %} 카테고리 섹션 위 광고 {% endcomment %}
{% if site.google_adsense %}
{% include adsense.html type="responsive" %}
{% endif %}
<!-- Categories Quick Links -->
<section class="categories-section">
<h2>Categories</h2>
<div class="category-grid">
{% for cat in site.category_list %}
{% assign cat_posts = "" | split: "" %}
{% assign cat_name_lower = cat.name | downcase %}
{% for post in site.posts %}
{% assign post_matched = false %}
{% comment %} Check post.category (singular) first {% endcomment %}
{% if post.category and post.category != "" %}
{% assign post_cat_lower = post.category | downcase | strip %}
{% if post_cat_lower == cat_name_lower %}
{% assign post_matched = true %}
{% endif %}
{% endif %}
{% comment %} Check post.categories (plural) if not matched yet {% endcomment %}
{% unless post_matched %}
{% if post.categories %}
{% comment %} Try to iterate - works for both arrays and single values {% endcomment %}
{% for post_cat in post.categories %}
{% assign post_cat_lower = post_cat | downcase | strip %}
{% if post_cat_lower == cat_name_lower %}
{% assign post_matched = true %}
{% break %}
{% endif %}
{% endfor %}
{% comment %} If iteration didn't work (string case), check directly {% endcomment %}
{% unless post_matched %}
{% assign post_cat_lower = post.categories | downcase | strip %}
{% if post_cat_lower == cat_name_lower %}
{% assign post_matched = true %}
{% endif %}
{% endunless %}
{% endif %}
{% endunless %}
{% if post_matched %}
{% assign cat_posts = cat_posts | push: post %}
{% endif %}
{% endfor %}
<a href="{{ '/categories/' | relative_url }}#{{ cat.name }}" class="category-card card">
<div class="category-icon {{ cat.name }}">
{% case cat.icon %}
{% when 'shield' %}
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
{% when 'code' %}
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
{% when 'cloud' %}
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/></svg>
{% when 'cube' %}
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg>
{% when 'chart' %}
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="12" y1="20" x2="12" y2="10"/><line x1="18" y1="20" x2="18" y2="4"/><line x1="6" y1="20" x2="6" y2="16"/></svg>
{% when 'alert' %}
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
{% when 'certificate' %}
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="10" r="6"/><path d="M8.21 13.89L7 23l5-3 5 3-1.21-9.12"/></svg>
{% endcase %}
</div>
<h3>{{ cat.title }}</h3>
<p>{{ cat.description }}</p>
<span class="post-count">{{ cat_posts.size }} posts</span>
</a>
{% endfor %}
</div>
</section>
</div>