|
1 | 1 | {% load static %}
|
| 2 | +{% load tailwind_tags %} |
2 | 3 | {% load wagtailcore_tags %}
|
3 | 4 | {% load wagtailimages_tags %}
|
4 | 5 | {% wagtail_site as current_site %}
|
| 6 | + |
5 | 7 | <!DOCTYPE html>
|
6 |
| -<html lang="en"> |
| 8 | +<html lang="ko"> |
7 | 9 | <head>
|
8 |
| - <meta charset="UTF-8"> |
9 |
| - <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
10 |
| - <title>{% block title %}Python Korea{% endblock title %}</title> |
11 |
| - <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.2/css/bootstrap.min.css"> |
12 |
| - <script defer src="https://cdnjs.cloudflare.com/ajax/libs/alpinejs/3.13.5/cdn.min.js"></script> |
13 |
| - <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.2/js/bootstrap.bundle.min.js"></script> |
14 |
| - <style> |
15 |
| - html, body { |
16 |
| - height: 100%; |
17 |
| - margin: 0; |
18 |
| - } |
19 |
| - body { |
20 |
| - padding-top: 40px; |
21 |
| - display: flex; |
22 |
| - flex-direction: column; |
23 |
| - } |
24 |
| - main { |
25 |
| - flex: 1; |
26 |
| - } |
27 |
| - footer { |
28 |
| - background-color: #f8f9fa; |
29 |
| - margin-bottom: 20px; |
30 |
| - } |
31 |
| - </style> |
| 10 | + <meta charset="UTF-8"> |
| 11 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 12 | + <title>{% block title %}파이썬 한국 사용자 모임{% endblock title %}</title> |
| 13 | + {% tailwind_css %} |
32 | 14 | </head>
|
33 |
| -<body> |
34 |
| - <!-- Navigation --> |
35 |
| - <nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top"> |
36 |
| - <div class="container"> |
37 |
| - <a class="navbar-brand" href="{% pageurl current_site.root_page %}"> |
38 |
| - <img src="{% static 'pythonkr/pythonkr-badge.png' %}" alt="Python Korea Logo" |
39 |
| - height="80"/> |
40 |
| - </a> |
41 |
| - <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"> |
42 |
| - <span class="navbar-toggler-icon"></span> |
43 |
| - </button> |
44 |
| - <div class="collapse navbar-collapse" id="navbarNav"> |
45 |
| - <ul class="navbar-nav ms-auto"> |
46 |
| - {% for menu_page in current_site.root_page.get_children.live.in_menu %} |
47 |
| - <li class="nav-item"><a class="nav-link" href="{% pageurl menu_page %}">{{menu_page.title}}</a></li> |
48 |
| - {% endfor %} |
49 |
| - </ul> |
50 |
| - </div> |
| 15 | +<body class="bg-gray-100"> |
| 16 | + <nav class="bg-white shadow-md"> |
| 17 | + <div class="container mx-auto px-4"> |
| 18 | + <div class="flex justify-between items-center py-4"> |
| 19 | + <a class="navbar-brand" href="{% pageurl current_site.root_page %}"> |
| 20 | + <img src="{% static 'pythonkr/pythonkr-badge.png' %}" alt="Python Korea Logo" height="80"/> |
| 21 | + </a> |
| 22 | + <a href="#" class="text-xl font-bold text-gray-800">Python Korea</a> |
| 23 | + <div class="hidden md:flex space-x-4"> |
| 24 | + {% for menu_page in current_site.root_page.get_children.live.in_menu %} |
| 25 | + <a class="text-gray-600 hover:text-gray-800" href="{% pageurl menu_page %}">{{menu_page.title}}</a> |
| 26 | + {% endfor %} |
| 27 | + </div> |
| 28 | + <div class="md:hidden"> |
| 29 | + <button id="mobile-menu-button" class="text-gray-600 focus:outline-none"> |
| 30 | + <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> |
| 31 | + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path> |
| 32 | + </svg> |
| 33 | + </button> |
| 34 | + </div> |
| 35 | + </div> |
| 36 | + </div> |
| 37 | + <div id="mobile-menu" class="hidden md:hidden"> |
| 38 | + {% for menu_page in current_site.root_page.get_children.live.in_menu %} |
| 39 | + <a class="block px-4 py-2 text-gray-600 hover:bg-gray-200" href="{% pageurl menu_page %}">{{menu_page.title}}</a> |
| 40 | + {% endfor %} |
| 41 | + </div> |
| 42 | + </nav> |
| 43 | + |
| 44 | + <main class="container mx-auto px-4 py-8"> |
| 45 | + {% block content %}{{ page.content|richtext }}{% endblock %} |
| 46 | + </main> |
| 47 | + |
| 48 | + <footer class="bg-white border-t mt-12"> |
| 49 | + <div class="container mx-auto px-4 py-8"> |
| 50 | + <div class="flex flex-col md:flex-row justify-between items-start md:items-center space-y-4 md:space-y-0"> |
| 51 | + <!-- 로고 및 설명 --> |
| 52 | + <div> |
| 53 | + <h2 class="text-lg font-semibold text-gray-800">Python Korea</h2> |
| 54 | + <p class="text-sm text-gray-500 mt-1"> |
| 55 | + 파이썬 한국 사용자 모임은 파이썬을 사용하는 모든 사람들을 위한 열린 커뮤니티입니다. |
| 56 | + </p> |
51 | 57 | </div>
|
52 |
| - </nav> |
| 58 | + </div> |
| 59 | + |
| 60 | + <div class="border-t mt-6 pt-4 text-center text-sm text-gray-400"> |
| 61 | + © 2025 Python Korea. All rights reserved. |
| 62 | + </div> |
| 63 | + </div> |
| 64 | + </footer> |
53 | 65 |
|
54 |
| - <!-- Main Content --> |
55 |
| - <main class="container mt-5 pt-5"> |
56 |
| - {% block content %} |
57 |
| - {{ page.content|richtext }} |
58 |
| - {% endblock %} |
59 |
| - </main> |
| 66 | + <script> |
| 67 | + const mobileMenuButton = document.getElementById('mobile-menu-button'); |
| 68 | + const mobileMenu = document.getElementById('mobile-menu'); |
60 | 69 |
|
| 70 | + mobileMenuButton.addEventListener('click', () => { |
| 71 | + mobileMenu.classList.toggle('hidden'); |
| 72 | + }); |
| 73 | + </script> |
| 74 | +</body> |
| 75 | +</html> |
61 | 76 | <!-- Footer -->
|
62 | 77 | <footer class="sponsor-footer mt-5">
|
63 | 78 | <div class="container text-center">
|
|
0 commit comments