33<head >
44 <meta charset =" UTF-8" >
55 <meta name =" viewport" content =" width=device-width, initial-scale=1.0" >
6- <title >{{ title }} </title >
7- <link href =" https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel =" stylesheet" >
6+
7+ <!-- Primary Meta Tags -->
8+ <title >{{ title }} | Chechen Language Projects</title >
9+ <meta name =" title" content =" {{ title }} | Chechen Language Projects" >
10+ <meta name =" description" content =" {% if description %}{{ description }}{% else %}Open source tools and resources for the Chechen language including Latin keyboard layouts, transliteration tools, and language preservation projects.{% endif %}" >
11+ <meta name =" keywords" content =" Chechen language, Chechen keyboard, Latin script, transliteration, Noxchi, keyboard layout, language tools, Caucasian languages" >
12+ <meta name =" author" content =" Chechen Language Projects" >
13+ <meta name =" language" content =" English" >
14+
15+ <!-- Canonical URL -->
16+ <link rel =" canonical" href =" https://chechen-language.github.io{{ page.url }}" >
17+
18+ <!-- Open Graph / Facebook -->
19+ <meta property =" og:type" content =" website" >
20+ <meta property =" og:url" content =" https://chechen-language.github.io{{ page.url }}" >
21+ <meta property =" og:title" content =" {{ title }} | Chechen Language Projects" >
22+ <meta property =" og:description" content =" {% if description %}{{ description }}{% else %}Open source tools and resources for the Chechen language including Latin keyboard layouts, transliteration tools, and language preservation projects.{% endif %}" >
23+ <meta property =" og:image" content =" https://chechen-language.github.io/assets/images/og-image.png" >
24+ <meta property =" og:locale" content =" en_US" >
25+ <meta property =" og:site_name" content =" Chechen Language Projects" >
26+
27+ <!-- Twitter Card -->
28+ <meta name =" twitter:card" content =" summary_large_image" >
29+ <meta name =" twitter:url" content =" https://chechen-language.github.io{{ page.url }}" >
30+ <meta name =" twitter:title" content =" {{ title }} | Chechen Language Projects" >
31+ <meta name =" twitter:description" content =" {% if description %}{{ description }}{% else %}Open source tools and resources for the Chechen language including Latin keyboard layouts, transliteration tools, and language preservation projects.{% endif %}" >
32+ <meta name =" twitter:image" content =" https://chechen-language.github.io/assets/images/og-image.png" >
33+
34+ <!-- Theme Color -->
35+ <meta name =" theme-color" content =" #8B2332" >
36+ <meta name =" msapplication-TileColor" content =" #8B2332" >
37+
38+ <!-- Structured Data (JSON-LD) -->
39+ <script type =" application/ld+json" >
40+ {
41+ " @context" : " https://schema.org" ,
42+ " @type" : " Organization" ,
43+ " name" : " Chechen Language Projects" ,
44+ " url" : " https://chechen-language.github.io" ,
45+ " logo" : " https://chechen-language.github.io/assets/images/logo.png" ,
46+ " description" : " Open source tools and resources for the Chechen language preservation and development" ,
47+ " sameAs" : [
48+ " https://github.com/chechen-language"
49+ ],
50+ " contactPoint" : {
51+ " @type" : " ContactPoint" ,
52+ " contactType" : " Community Support" ,
53+ " url" : " https://github.com/chechen-language"
54+ }
55+ }
56+ </script >
57+
858 <link rel =" stylesheet" href =" /assets/style.css" >
9- <script src =" https://code.jquery.com/jquery-3.5.1.slim.min.js" ></script >
10- <script src =" https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" ></script >
11- <script src =" https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" ></script >
12- <script src =" /assets/main.js" defer ></script >
1359 {% block extra_head %}
1460 {% endblock %}
1561</head >
16- <body class =" d-flex flex-column min-vh-100" >
17- <header class =" bg-dark text-white py-3" >
18- <div class =" container" >
19- <h1 >Chechen Language Projects</h1 >
20- <nav class =" navbar navbar-expand-lg navbar-dark" >
21- <button class =" navbar-toggler" type =" button" data-toggle =" collapse" data-target =" #navbarNav" aria-controls =" navbarNav" aria-expanded =" false" aria-label =" Toggle navigation" >
22- <span class =" navbar-toggler-icon" ></span >
23- </button >
24- <div class =" collapse navbar-collapse" id =" navbarNav" >
25- <ul class =" navbar-nav" >
26- <li class =" nav-item" >
27- <a class =" nav-link text-white" href =" /" >Home</a >
28- </li >
29- <li class =" nav-item dropdown" >
30- <a class =" nav-link dropdown-toggle text-white" href =" #" id =" projectsDropdown" role =" button" data-toggle =" dropdown" aria-haspopup =" true" aria-expanded =" false" >
31- Projects
32- </a >
33- <div class =" dropdown-menu" aria-labelledby =" projectsDropdown" >
34- <a class =" dropdown-item" href =" /repositories/chechen-transliterator" >Chechen Transliterator</a >
35- <a class =" dropdown-item" href =" /repositories/chechen-latin-keyboard-macos" >macOS Keyboard</a >
36- <a class =" dropdown-item" href =" /repositories/chechen-latin-keyboard-windows" >Windows Keyboard</a >
37- <a class =" dropdown-item" href =" /repositories/chechen-latin-keyboard-linux" >Linux Keyboard</a >
38- <a class =" dropdown-item" href =" /repositories/chechen-latin-keyboard-ios" >iOS Keyboard</a >
39- <a class =" dropdown-item" href =" /repositories/chechen-latin-keyboard-android" >Android Keyboard</a >
40- <!-- Add more projects here -->
41- </div >
42- </li >
43- </ul >
44- </div >
45- </nav >
46- </div >
47- </header >
48- <div class =" container flex-grow-1 mt-4" >
49- <main >
50- {{ content | safe }}
62+ <body class =" istang-layout" >
63+ <div class =" istang-border-wrapper" >
64+ <div class =" istang-border istang-border-top" ></div >
65+
66+ <header class =" site-header" >
67+ <div class =" istang-corner istang-corner-tl" aria-hidden =" true" ></div >
68+ <div class =" istang-corner istang-corner-tr" aria-hidden =" true" ></div >
69+ <div class =" container" >
70+ <h1 >Chechen Language Projects</h1 >
71+ <button class =" mobile-menu-toggle" id =" mobile-menu-toggle" aria-label =" Toggle navigation" >☰</button >
72+ <nav class =" nav" id =" main-nav" >
73+ <button class =" mobile-close" id =" mobile-close" aria-label =" Close menu" >×</button >
74+ <a href =" /" class =" nav-link" >Home</a >
75+ <div class =" nav-dropdown" >
76+ <button class =" dropdown-toggle" aria-haspopup =" true" aria-expanded =" false" >Projects</button >
77+ <div class =" dropdown-menu" role =" menu" >
78+ <a class =" dropdown-item" href =" /repositories/chechen-transliterator" role =" menuitem" >Chechen Transliterator</a >
79+ <a class =" dropdown-item" href =" /repositories/chechen-latin-keyboard-macos" role =" menuitem" >macOS Keyboard</a >
80+ <a class =" dropdown-item" href =" /repositories/chechen-latin-keyboard-windows" role =" menuitem" >Windows Keyboard</a >
81+ <a class =" dropdown-item" href =" /repositories/chechen-latin-keyboard-linux" role =" menuitem" >Linux Keyboard</a >
82+ <a class =" dropdown-item" href =" /repositories/chechen-latin-keyboard-ios" role =" menuitem" >iOS Keyboard</a >
83+ <a class =" dropdown-item" href =" /repositories/chechen-latin-keyboard-android" role =" menuitem" >Android Keyboard</a >
84+ </div >
85+ </div >
86+ </nav >
87+ </div >
88+ </header >
89+
90+ <main class =" site-main" >
91+ <div class =" container" >
92+ {{ content | safe }}
93+ </div >
5194 </main >
95+
96+ <footer class =" site-footer" >
97+ <div class =" istang-corner istang-corner-bl" aria-hidden =" true" ></div >
98+ <div class =" istang-corner istang-corner-br" aria-hidden =" true" ></div >
99+ <div class =" container" >
100+ <p >© ; 2024 Chechen Language Projects</p >
101+ </div >
102+ </footer >
103+
104+ <div class =" istang-border istang-border-bottom" ></div >
52105 </div >
53- <footer class =" bg-dark text-white py-3 mt-4" >
54- <div class =" container text-center" >
55- <p >© ; 2024 Chechen Language Projects</p >
56- </div >
57- </footer >
106+
107+ <div class =" mobile-overlay" id =" mobile-overlay" ></div >
108+
109+ <script >
110+ // Mobile menu toggle
111+ const mobileToggle = document .getElementById (' mobile-menu-toggle' );
112+ const mobileClose = document .getElementById (' mobile-close' );
113+ const mainNav = document .getElementById (' main-nav' );
114+ const mobileOverlay = document .getElementById (' mobile-overlay' );
115+
116+ function openMobileMenu () {
117+ mainNav .classList .add (' active' );
118+ mobileOverlay .classList .add (' active' );
119+ document .body .style .overflow = ' hidden' ;
120+ }
121+
122+ function closeMobileMenu () {
123+ mainNav .classList .remove (' active' );
124+ mobileOverlay .classList .remove (' active' );
125+ document .body .style .overflow = ' ' ;
126+ }
127+
128+ if (mobileToggle) {
129+ mobileToggle .addEventListener (' click' , function (e ) {
130+ e .preventDefault ();
131+ e .stopPropagation ();
132+ if (mainNav .classList .contains (' active' )) {
133+ closeMobileMenu ();
134+ } else {
135+ openMobileMenu ();
136+ }
137+ });
138+ }
139+
140+ if (mobileClose) {
141+ mobileClose .addEventListener (' click' , function (e ) {
142+ e .preventDefault ();
143+ e .stopPropagation ();
144+ closeMobileMenu ();
145+ });
146+ }
147+
148+ // Close when clicking on the overlay
149+ if (mobileOverlay) {
150+ mobileOverlay .addEventListener (' click' , function (e ) {
151+ closeMobileMenu ();
152+ });
153+ }
154+
155+ // Close mobile menu on escape key
156+ document .addEventListener (' keydown' , function (event ) {
157+ if (event .key === ' Escape' && mainNav .classList .contains (' active' )) {
158+ closeMobileMenu ();
159+ }
160+ });
161+ </script >
162+
58163 {% block extra_scripts %}
59164 {% endblock %}
60165</body >
61- </html >
166+ </html >
0 commit comments