|
1 | | -<div class="devlog-top-bar" style="display: flex; justify-content: space-between; align-items: center; width: 95%; margin: 10px auto; padding: 10px 0; border-bottom: 2px solid #eee;"> |
2 | | - <div class="devlog-top-logo" style="font-weight: bold; font-size: 1.2em; color: #333;">Logo</div> |
3 | | - <a href="/" class="devlog-back-to-main" style="text-decoration: none; color: #666; font-size: 0.9em; display: flex; align-items: center;"> |
4 | | - Back to main |
5 | | - <span style="display: inline-block; margin-left: 5px; border: 1px solid #666; border-radius: 50%; width: 16px; height: 16px; line-height: 14px; text-align: center; font-size: 10px;">↺</span> |
6 | | - </a> |
7 | | -</div> |
8 | | - |
9 | 1 | <div class="devlog-page-container" style="display: flex; gap: 30px; width: 95%; margin: 0 auto;"> |
10 | 2 | <!-- Main Content --> |
11 | 3 | <div class="devlog-main-content" style="flex: 1;"> |
|
16 | 8 | </blockquote> |
17 | 9 | </div> |
18 | 10 |
|
19 | | - <div id="searchResultsHeader" style="display: none; margin-bottom: 20px; font-size: 1.2em; color: #444;"> |
20 | | - Search results for "<span id="searchQueryText"></span>" |
21 | | - </div> |
22 | | - |
23 | 11 | <div id="postsContainer"> |
24 | 12 | {% for post in site.posts %} |
25 | 13 | {% assign isLatest = false %} |
|
79 | 67 | <div class="devlog-post-card-inner"> |
80 | 68 | <h2 style="margin-top: 0;"><a href="{{ post.url | relative_url }}" style="text-decoration: none; color: #333;">{{ post.title }}</a></h2> |
81 | 69 | <p class="devlog-post-excerpt" style="color: #666;">{{ post.content | strip_html | truncatewords: 50 }}</p> |
82 | | - |
83 | | - <div class="devlog-post-meta"> |
84 | | - <div class="devlog-post-meta-left"> |
85 | | - <div class="devlog-project-badge-pill"> |
86 | | - <img src="{{ '/assets/images/' | append: post.project | append: '-icon.png' | relative_url }}" alt="{{ post.project }}"> |
87 | | - <span>{{ post.project | capitalize }}</span> |
88 | | - </div> |
89 | | - <span class="devlog-post-date">{{ post.date | date: "%B %d, %Y" }}</span> |
| 70 | + <div class="devlog-post-meta" style="display: flex; justify-content: space-between; align-items: center; margin-top: 20px;"> |
| 71 | + <div class="devlog-post-meta-left" style="display: flex; align-items: center;"> |
| 72 | + <img src="{{ '/assets/images/' | append: post.project | append: '-icon.png' | relative_url }}" |
| 73 | + alt="{{ post.project }}" |
| 74 | + style="height: 24px; margin-right: 10px;"> |
| 75 | + <span class="devlog-post-date" style="color: #888; font-size: 0.9em;">{{ post.date | date: "%B %d, %Y" }}</span> |
90 | 76 | {% if post.tags %} |
91 | | - <div class="devlog-post-tags"> |
| 77 | + <div class="devlog-post-tags" style="margin-left: 15px;"> |
92 | 78 | {% for tag in post.tags %} |
93 | | - <span class="devlog-tag-span">{{ tag }}</span> |
| 79 | + <span class="devlog-tag-span" style="background: #e0e0e0; padding: 3px 8px; border-radius: 12px; font-size: 0.8em; margin-right: 5px; color: #333;">{{ tag }}</span> |
94 | 80 | {% endfor %} |
95 | 81 | </div> |
96 | 82 | {% endif %} |
97 | 83 | </div> |
98 | | - <a href="{{ post.url | relative_url }}" class="devlog-read-more-btn">Read more</a> |
| 84 | + <a href="{{ post.url | relative_url }}" class="devlog-read-more" style="color: #4CAF50; text-decoration: none;">Read more →</a> |
99 | 85 | </div> |
100 | 86 | </div> |
101 | 87 | </div> |
|
107 | 93 |
|
108 | 94 | <div class="devlog-sidebar" id="devlogSidebarContent" style="display: flex; flex-direction: column; gap: 20px; width: 300px; flex-shrink: 0;"> |
109 | 95 | <div class="devlog-filter-box" style="width: 100%; padding: 25px; background: #ffffff; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); height: fit-content;"> |
110 | | - <h3 style="margin-top: 0; font-size: 1.1em; margin-bottom: 15px;">Projects</h3> |
111 | | - <div id="projectFilterList" style="display: flex; flex-direction: column; gap: 10px;"> |
112 | | - <div class="project-filter-item active" data-value="all"> |
113 | | - <span>All posts</span> |
114 | | - </div> |
115 | | - <div class="project-filter-item" data-value="farmoxel"> |
116 | | - <img src="{{ '/assets/images/farmoxel-icon.png' | relative_url }}" alt=""> |
117 | | - <span>Farmoxel</span> |
118 | | - </div> |
119 | | - <div class="project-filter-item" data-value="roommakers"> |
120 | | - <img src="{{ '/assets/images/roommakers-icon.png' | relative_url }}" alt=""> |
121 | | - <span>Room Makers</span> |
122 | | - </div> |
123 | | - <div class="project-filter-item" data-value="kta"> |
124 | | - <img src="{{ '/assets/images/kta-icon.png' | relative_url }}" alt=""> |
125 | | - <span>KTA</span> |
126 | | - </div> |
| 96 | + <div class="devlog-project-filter-container" style="position: relative; width: 100%;"> |
| 97 | + <select id="projectFilter" style="width: 100%; padding: 10px 10px 10px 35px; border: 1px solid #ddd; border-radius: 6px; background: #f8f8f8; cursor: pointer; appearance: none;"> |
| 98 | + <option value="all">All Projects</option> |
| 99 | + <option value="farmoxel" data-icon="{{ '/assets/images/farmoxel-icon.png' | relative_url }}">Farmoxel</option> |
| 100 | + <option value="roommakers" data-icon="{{ '/assets/images/roommakers-icon.png' | relative_url }}">Room Makers</option> |
| 101 | + <option value="kta" data-icon="{{ '/assets/images/kta-icon.png' | relative_url }}">KTA</option> |
| 102 | + </select> |
| 103 | + <img id="selectedIcon" src="" style="position: absolute; left: 10px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; pointer-events: none;"> |
127 | 104 | </div> |
128 | 105 | </div> |
129 | 106 | <div class="devlog-filter-box" style="width: 100%; padding: 25px; background: #ffffff; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); height: fit-content;"> |
|
243 | 220 | background: transparent; |
244 | 221 | } |
245 | 222 |
|
246 | | - .devlog-post-meta { |
247 | | - display: flex; |
248 | | - justify-content: space-between; |
249 | | - align-items: center; |
250 | | - margin-top: 20px; |
251 | | - width: 100%; |
252 | | - } |
253 | | - |
254 | | - .devlog-post-meta-left { |
255 | | - display: flex; |
256 | | - align-items: center; |
257 | | - gap: 15px; |
258 | | - flex-wrap: wrap; |
259 | | - } |
260 | | - |
261 | | - .devlog-project-badge-pill { |
262 | | - display: flex; |
263 | | - align-items: center; |
264 | | - background: #FFD966; /* Default yellow */ |
265 | | - padding: 4px 12px; |
266 | | - border-radius: 6px; |
267 | | - font-weight: bold; |
268 | | - font-size: 0.85em; |
269 | | - color: #333; |
270 | | - box-shadow: 2px 2px 0px rgba(0,0,0,0.1); |
271 | | - } |
272 | | - |
273 | | - .devlog-post-card[data-project="farmoxel"] .devlog-project-badge-pill { background: #ffd966; } |
274 | | - .devlog-post-card[data-project="roommakers"] .devlog-project-badge-pill { background: #ffd966; } |
275 | | - .devlog-post-card[data-project="kta"] .devlog-project-badge-pill { background: #ffd966; } |
276 | | - |
277 | | - .project-filter-item { |
278 | | - display: flex; |
279 | | - align-items: center; |
280 | | - padding: 10px 15px; |
281 | | - background: #fdfdfd; |
282 | | - border: 1px solid #eee; |
283 | | - border-radius: 8px; |
284 | | - cursor: pointer; |
285 | | - transition: all 0.2s; |
286 | | - font-weight: 500; |
287 | | - } |
288 | | - |
289 | | - .project-filter-item:hover { |
290 | | - background: #f0f0f0; |
291 | | - } |
292 | | - |
293 | | - .project-filter-item.active { |
294 | | - background: #FFD966; |
295 | | - border-color: #e6c25a; |
296 | | - box-shadow: 2px 2px 0px rgba(0,0,0,0.1); |
297 | | - } |
298 | | - |
299 | | - .project-filter-item img { |
300 | | - height: 20px; |
301 | | - margin-right: 10px; |
302 | | - } |
303 | | - |
304 | | - .devlog-project-badge-pill img { |
305 | | - height: 18px; |
306 | | - margin-right: 8px; |
307 | | - } |
308 | | - |
309 | | - .devlog-post-date { |
310 | | - color: #888; |
311 | | - font-size: 0.9em; |
312 | | - } |
313 | | - |
314 | | - .devlog-post-tags { |
315 | | - display: flex; |
316 | | - gap: 5px; |
317 | | - } |
318 | | - |
319 | | - .devlog-tag-span { |
320 | | - background: #e0e0e0; |
321 | | - padding: 3px 8px; |
322 | | - border-radius: 12px; |
323 | | - font-size: 0.8em; |
324 | | - color: #333; |
325 | | - } |
326 | | - |
327 | | - .devlog-read-more-btn { |
328 | | - padding: 8px 16px; |
329 | | - border: 1px solid #333; |
330 | | - border-radius: 20px; |
331 | | - color: #333; |
332 | | - text-decoration: none; |
333 | | - font-size: 0.9em; |
334 | | - font-weight: 500; |
335 | | - transition: all 0.2s; |
336 | | - } |
337 | | - |
338 | | - .devlog-read-more-btn:hover { |
339 | | - background: #333; |
340 | | - color: #fff; |
341 | | - } |
342 | | - |
343 | 223 | .devlog-toggle-sidebar-button { |
344 | 224 | display: none !important; |
345 | 225 | width: 100%; |
|
558 | 438 | </style> |
559 | 439 |
|
560 | 440 | <script> |
561 | | - let selectedProject = 'all'; |
562 | | - |
563 | | - document.querySelectorAll('.project-filter-item').forEach(item => { |
564 | | - item.addEventListener('click', function() { |
565 | | - document.querySelectorAll('.project-filter-item').forEach(i => i.classList.remove('active')); |
566 | | - this.classList.add('active'); |
567 | | - selectedProject = this.dataset.value; |
568 | | - filterPosts(); |
569 | | - }); |
570 | | - }); |
571 | | - |
| 441 | + document.getElementById('projectFilter').addEventListener('change', filterPosts); |
572 | 442 | document.getElementById('tagFilter').addEventListener('change', filterPosts); |
573 | 443 | document.getElementById('searchPosts').addEventListener('input', filterPosts); |
574 | 444 |
|
575 | 445 | function filterPosts() { |
| 446 | + const selectedProject = document.getElementById('projectFilter').value.toLowerCase(); |
576 | 447 | const selectedTag = document.getElementById('tagFilter').value.toLowerCase(); |
577 | 448 | const searchTerm = document.getElementById('searchPosts').value.toLowerCase(); |
578 | 449 | const posts = document.querySelectorAll('#postsContainer > div'); |
579 | | - const searchHeader = document.getElementById('searchResultsHeader'); |
580 | | - const searchQueryText = document.getElementById('searchQueryText'); |
581 | | - |
582 | | - if (searchTerm !== "") { |
583 | | - searchHeader.style.display = 'block'; |
584 | | - searchQueryText.textContent = searchTerm; |
585 | | - } else { |
586 | | - searchHeader.style.display = 'none'; |
587 | | - } |
588 | 450 |
|
589 | 451 | posts.forEach(post => { |
590 | 452 | const postProject = post.dataset.project || 'all'; |
|
0 commit comments