mirror of
https://codeberg.org/Kankys/NewLukasBlog.git
synced 2026-11-11 06:14:36 +01:00
Opravy dle TODO.md - kritické a střední priority
- Opraveny chyby v HTML: špatné URL u CDN, chybějící viewport, úvodní apostrof - Přidány meta description a keywords na všechny stránky - Odstraněny nestandardní meta tagy (Kankys Matrix) - Opraveny všechny externí skripty (HTTPS, crossorigin, integrity) - Vytvořeny sdílené soubory: - web/js/shared.js - společné JS funkce (scrollToTop, setupMobileMenu, setupThemeToggle) - web/css/variables.css - CSS proměnné pro témata a design - web/css/shared.css - sdílené CSS styly - Založena struktura pro sdílený kód (js/, css/ adresáře) Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
1 parent
dca15a3ebf
commit
ef2315bac1
17 files changed
+745
-43
No files matched your search
@@ -0,0 +1,370 @@
|
|||||||
|
/**
|
||||||
|
* Shared CSS Styles for NewLukasBlog
|
||||||
|
* Common styles used across multiple pages
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* CSS Reset / Normalize
|
||||||
|
* ============================================ */
|
||||||
|
@import url("variables.css");
|
||||||
|
|
||||||
|
* {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: var(--font-primary);
|
||||||
|
font-size: var(--font-size-base);
|
||||||
|
line-height: var(--line-height-normal);
|
||||||
|
color: var(--text-primary);
|
||||||
|
background-color: var(--bg-primary);
|
||||||
|
transition: background-color var(--transition-normal), color var(--transition-normal);
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: var(--link-color);
|
||||||
|
text-decoration: none;
|
||||||
|
transition: color var(--transition-fast);
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: var(--link-hover);
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:visited {
|
||||||
|
color: var(--link-visited);
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Typography
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
font-family: var(--font-secondary);
|
||||||
|
font-weight: var(--font-weight-bold);
|
||||||
|
line-height: var(--line-height-tight);
|
||||||
|
margin-bottom: var(--spacing-md);
|
||||||
|
color: var(--text-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 { font-size: var(--font-size-3xl); }
|
||||||
|
h2 { font-size: var(--font-size-2xl); }
|
||||||
|
h3 { font-size: var(--font-size-xl); }
|
||||||
|
h4 { font-size: var(--font-size-lg); }
|
||||||
|
h5 { font-size: var(--font-size-base); }
|
||||||
|
h6 { font-size: var(--font-size-sm); }
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-bottom: var(--spacing-md);
|
||||||
|
line-height: var(--line-height-relaxed);
|
||||||
|
}
|
||||||
|
|
||||||
|
ul, ol {
|
||||||
|
margin-bottom: var(--spacing-md);
|
||||||
|
padding-left: var(--spacing-xl);
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin-bottom: var(--spacing-xs);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Layout
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
.page-header {
|
||||||
|
background-color: var(--header-bg);
|
||||||
|
color: var(--header-text);
|
||||||
|
padding: var(--spacing-xl) var(--spacing-md);
|
||||||
|
text-align: center;
|
||||||
|
border-bottom: 1px solid var(--border-light);
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-content {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: var(--spacing-xl) var(--spacing-md);
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
background-color: var(--footer-bg);
|
||||||
|
color: var(--footer-text);
|
||||||
|
text-align: center;
|
||||||
|
padding: var(--spacing-lg) var(--spacing-md);
|
||||||
|
margin-top: var(--spacing-xl);
|
||||||
|
border-top: 1px solid var(--border-light);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Navigation
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
nav {
|
||||||
|
margin-bottom: var(--spacing-lg);
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: var(--spacing-md);
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav a {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Buttons
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--spacing-sm);
|
||||||
|
padding: var(--spacing-sm) var(--spacing-md);
|
||||||
|
background-color: var(--btn-bg);
|
||||||
|
color: var(--btn-text);
|
||||||
|
border: 1px solid var(--btn-border);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
font-family: var(--font-primary);
|
||||||
|
font-size: var(--font-size-base);
|
||||||
|
font-weight: var(--font-weight-medium);
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color var(--transition-fast), color var(--transition-fast);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn:hover {
|
||||||
|
background-color: var(--btn-hover-bg);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn i {
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Code Blocks
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
.code-box {
|
||||||
|
background-color: var(--code-bg);
|
||||||
|
color: var(--code-text);
|
||||||
|
border: 1px solid var(--code-border);
|
||||||
|
border-radius: var(--radius-sm);
|
||||||
|
padding: var(--spacing-md);
|
||||||
|
margin: var(--spacing-md) 0;
|
||||||
|
overflow-x: auto;
|
||||||
|
font-family: var(--font-mono);
|
||||||
|
font-size: var(--font-size-sm);
|
||||||
|
line-height: var(--line-height-tight);
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Scroll to Top Button
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
#scrollToTopBtn {
|
||||||
|
display: none;
|
||||||
|
position: fixed;
|
||||||
|
bottom: var(--spacing-xl);
|
||||||
|
right: var(--spacing-xl);
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
border: none;
|
||||||
|
border-radius: var(--radius-full);
|
||||||
|
background-color: var(--btn-bg);
|
||||||
|
color: var(--btn-text);
|
||||||
|
font-size: var(--font-size-xl);
|
||||||
|
cursor: pointer;
|
||||||
|
box-shadow: 0 2px 10px var(--shadow-md);
|
||||||
|
transition: opacity var(--transition-fast), visibility var(--transition-fast);
|
||||||
|
z-index: var(--z-fixed);
|
||||||
|
}
|
||||||
|
|
||||||
|
#scrollToTopBtn:hover {
|
||||||
|
background-color: var(--btn-hover-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#scrollToTopBtn i {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Mobile Menu
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
.menu-icon {
|
||||||
|
display: none;
|
||||||
|
cursor: pointer;
|
||||||
|
padding: var(--spacing-sm);
|
||||||
|
background-color: var(--bg-secondary);
|
||||||
|
border-radius: var(--radius-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-icon i {
|
||||||
|
font-size: var(--font-size-xl);
|
||||||
|
color: var(--text-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Theme Toggle
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
#toggleButton {
|
||||||
|
cursor: pointer;
|
||||||
|
padding: var(--spacing-sm);
|
||||||
|
background: transparent;
|
||||||
|
border: none;
|
||||||
|
color: var(--text-primary);
|
||||||
|
font-size: var(--font-size-lg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#toggleButton:hover {
|
||||||
|
color: var(--accent-primary);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Responsive Design
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.page-header {
|
||||||
|
padding: var(--spacing-lg) var(--spacing-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-content {
|
||||||
|
padding: var(--spacing-lg) var(--spacing-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: var(--spacing-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-icon {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav.active {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
#scrollToTopBtn {
|
||||||
|
bottom: var(--spacing-lg);
|
||||||
|
right: var(--spacing-lg);
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 480px) {
|
||||||
|
h1 { font-size: var(--font-size-2xl); }
|
||||||
|
h2 { font-size: var(--font-size-xl); }
|
||||||
|
h3 { font-size: var(--font-size-lg); }
|
||||||
|
|
||||||
|
.page-header {
|
||||||
|
padding: var(--spacing-md) var(--spacing-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-content {
|
||||||
|
padding: var(--spacing-md) var(--spacing-sm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Utility Classes
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
.text-center { text-align: center; }
|
||||||
|
.text-left { text-align: left; }
|
||||||
|
.text-right { text-align: right; }
|
||||||
|
|
||||||
|
.mt-xs { margin-top: var(--spacing-xs); }
|
||||||
|
.mt-sm { margin-top: var(--spacing-sm); }
|
||||||
|
.mt-md { margin-top: var(--spacing-md); }
|
||||||
|
.mt-lg { margin-top: var(--spacing-lg); }
|
||||||
|
.mt-xl { margin-top: var(--spacing-xl); }
|
||||||
|
|
||||||
|
.mb-xs { margin-bottom: var(--spacing-xs); }
|
||||||
|
.mb-sm { margin-bottom: var(--spacing-sm); }
|
||||||
|
.mb-md { margin-bottom: var(--spacing-md); }
|
||||||
|
.mb-lg { margin-bottom: var(--spacing-lg); }
|
||||||
|
.mb-xl { margin-bottom: var(--spacing-xl); }
|
||||||
|
|
||||||
|
.p-xs { padding: var(--spacing-xs); }
|
||||||
|
.p-sm { padding: var(--spacing-sm); }
|
||||||
|
.p-md { padding: var(--spacing-md); }
|
||||||
|
.p-lg { padding: var(--spacing-lg); }
|
||||||
|
.p-xl { padding: var(--spacing-xl); }
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Accessibility
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
:focus-visible {
|
||||||
|
outline: 2px solid var(--accent-primary);
|
||||||
|
outline-offset: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
[aria-hidden="true"] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Skip link for keyboard users */
|
||||||
|
.skip-link {
|
||||||
|
position: absolute;
|
||||||
|
top: -40px;
|
||||||
|
left: 0;
|
||||||
|
background: var(--btn-bg);
|
||||||
|
color: var(--btn-text);
|
||||||
|
padding: var(--spacing-sm) var(--spacing-md);
|
||||||
|
z-index: var(--z-tooltip);
|
||||||
|
transition: top var(--transition-fast);
|
||||||
|
}
|
||||||
|
|
||||||
|
.skip-link:focus {
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Print Styles
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
@media print {
|
||||||
|
body {
|
||||||
|
background-color: white;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: var(--link-color);
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-icon,
|
||||||
|
#scrollToTopBtn,
|
||||||
|
#toggleButton {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,206 @@
|
|||||||
|
/**
|
||||||
|
* CSS Variables for NewLukasBlog
|
||||||
|
* Centralized color scheme and design tokens
|
||||||
|
*/
|
||||||
|
|
||||||
|
:root {
|
||||||
|
/* ============================================
|
||||||
|
* Color Palette - Light Theme
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
/* Background colors */
|
||||||
|
--bg-primary: #ffffff;
|
||||||
|
--bg-secondary: #f5f5f5;
|
||||||
|
--bg-tertiary: #e8e8e8;
|
||||||
|
|
||||||
|
/* Text colors */
|
||||||
|
--text-primary: #282a36;
|
||||||
|
--text-secondary: #555555;
|
||||||
|
--text-tertiary: #888888;
|
||||||
|
--text-inverse: #ffffff;
|
||||||
|
|
||||||
|
/* Accent colors */
|
||||||
|
--accent-primary: #4a90d9;
|
||||||
|
--accent-secondary: #6ab04c;
|
||||||
|
--accent-tertiary: #eb4d4b;
|
||||||
|
|
||||||
|
/* Link colors */
|
||||||
|
--link-color: #2980b9;
|
||||||
|
--link-hover: #1a5276;
|
||||||
|
--link-visited: #9b59b6;
|
||||||
|
|
||||||
|
/* Border colors */
|
||||||
|
--border-light: #dddddd;
|
||||||
|
--border-medium: #bbbbbb;
|
||||||
|
--border-dark: #999999;
|
||||||
|
|
||||||
|
/* Header/Footer colors */
|
||||||
|
--header-bg: #ffffff;
|
||||||
|
--header-text: #282a36;
|
||||||
|
--footer-bg: #2c3e50;
|
||||||
|
--footer-text: #ecf0f1;
|
||||||
|
|
||||||
|
/* Button colors */
|
||||||
|
--btn-bg: #3498db;
|
||||||
|
--btn-text: #ffffff;
|
||||||
|
--btn-hover-bg: #2980b9;
|
||||||
|
--btn-border: #2980b9;
|
||||||
|
|
||||||
|
/* Code block colors */
|
||||||
|
--code-bg: #f8f9fa;
|
||||||
|
--code-text: #212529;
|
||||||
|
--code-border: #dee2e6;
|
||||||
|
|
||||||
|
/* Scrollbar colors */
|
||||||
|
--scrollbar-thumb: #888888;
|
||||||
|
--scrollbar-track: #f1f1f1;
|
||||||
|
|
||||||
|
/* Shadow colors */
|
||||||
|
--shadow-sm: rgba(0, 0, 0, 0.1);
|
||||||
|
--shadow-md: rgba(0, 0, 0, 0.2);
|
||||||
|
--shadow-lg: rgba(0, 0, 0, 0.3);
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Typography
|
||||||
|
* ============================================ */
|
||||||
|
--font-primary: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||||
|
--font-secondary: Georgia, 'Times New Roman', Times, serif;
|
||||||
|
--font-mono: 'Courier New', Courier, monospace;
|
||||||
|
|
||||||
|
--font-size-xs: 0.75rem;
|
||||||
|
--font-size-sm: 0.875rem;
|
||||||
|
--font-size-base: 1rem;
|
||||||
|
--font-size-lg: 1.125rem;
|
||||||
|
--font-size-xl: 1.25rem;
|
||||||
|
--font-size-2xl: 1.5rem;
|
||||||
|
--font-size-3xl: 2rem;
|
||||||
|
|
||||||
|
--font-weight-light: 300;
|
||||||
|
--font-weight-normal: 400;
|
||||||
|
--font-weight-medium: 500;
|
||||||
|
--font-weight-semibold: 600;
|
||||||
|
--font-weight-bold: 700;
|
||||||
|
|
||||||
|
--line-height-tight: 1.25;
|
||||||
|
--line-height-normal: 1.5;
|
||||||
|
--line-height-relaxed: 1.75;
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Spacing
|
||||||
|
* ============================================ */
|
||||||
|
--spacing-xs: 0.25rem;
|
||||||
|
--spacing-sm: 0.5rem;
|
||||||
|
--spacing-md: 1rem;
|
||||||
|
--spacing-lg: 1.5rem;
|
||||||
|
--spacing-xl: 2rem;
|
||||||
|
--spacing-2xl: 3rem;
|
||||||
|
--spacing-3xl: 4rem;
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Border Radius
|
||||||
|
* ============================================ */
|
||||||
|
--radius-sm: 0.25rem;
|
||||||
|
--radius-md: 0.375rem;
|
||||||
|
--radius-lg: 0.5rem;
|
||||||
|
--radius-xl: 0.75rem;
|
||||||
|
--radius-full: 9999px;
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Transitions
|
||||||
|
* ============================================ */
|
||||||
|
--transition-fast: 150ms ease;
|
||||||
|
--transition-normal: 250ms ease;
|
||||||
|
--transition-slow: 350ms ease;
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Z-Index Scale
|
||||||
|
* ============================================ */
|
||||||
|
--z-dropdown: 100;
|
||||||
|
--z-sticky: 200;
|
||||||
|
--z-fixed: 300;
|
||||||
|
--z-modal-backdrop: 400;
|
||||||
|
--z-modal: 500;
|
||||||
|
--z-popover: 600;
|
||||||
|
--z-tooltip: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Dark Theme Variables
|
||||||
|
* ============================================ */
|
||||||
|
[data-theme="dark"],
|
||||||
|
.dark-theme {
|
||||||
|
--bg-primary: #1a1a1a;
|
||||||
|
--bg-secondary: #252525;
|
||||||
|
--bg-tertiary: #333333;
|
||||||
|
|
||||||
|
--text-primary: #e0e0e0;
|
||||||
|
--text-secondary: #b0b0b0;
|
||||||
|
--text-tertiary: #808080;
|
||||||
|
--text-inverse: #1a1a1a;
|
||||||
|
|
||||||
|
--accent-primary: #5daee2;
|
||||||
|
--accent-secondary: #78c46c;
|
||||||
|
--accent-tertiary: #e74c3c;
|
||||||
|
|
||||||
|
--link-color: #3498db;
|
||||||
|
--link-hover: #5dade2;
|
||||||
|
--link-visited: #9b59b6;
|
||||||
|
|
||||||
|
--border-light: #444444;
|
||||||
|
--border-medium: #555555;
|
||||||
|
--border-dark: #666666;
|
||||||
|
|
||||||
|
--header-bg: #1a1a1a;
|
||||||
|
--header-text: #e0e0e0;
|
||||||
|
--footer-bg: #1a1a1a;
|
||||||
|
--footer-text: #b0b0b0;
|
||||||
|
|
||||||
|
--btn-bg: #3498db;
|
||||||
|
--btn-text: #ffffff;
|
||||||
|
--btn-hover-bg: #2980b9;
|
||||||
|
--btn-border: #2980b9;
|
||||||
|
|
||||||
|
--code-bg: #2d2d2d;
|
||||||
|
--code-text: #f8f8f2;
|
||||||
|
--code-border: #444444;
|
||||||
|
|
||||||
|
--scrollbar-thumb: #555555;
|
||||||
|
--scrollbar-track: #252525;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ============================================
|
||||||
|
* Specific Theme Variables (for individual pages)
|
||||||
|
* ============================================ */
|
||||||
|
|
||||||
|
/* ApolloNvim Theme */
|
||||||
|
:root.apollo-theme {
|
||||||
|
--bg-primary: #2a232b;
|
||||||
|
--bg-secondary: #1e1a1f;
|
||||||
|
--text-primary: #f8f8f2;
|
||||||
|
--text-secondary: #e0e0e0;
|
||||||
|
--accent-primary: #e54472;
|
||||||
|
--accent-secondary: #18f700;
|
||||||
|
--accent-tertiary: #f76b00;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Kakoune Theme */
|
||||||
|
:root.kakoune-theme {
|
||||||
|
--bg-primary: #2a232b;
|
||||||
|
--bg-secondary: #1e1a1f;
|
||||||
|
--text-primary: #f8f8f2;
|
||||||
|
--text-secondary: #e0e0e0;
|
||||||
|
--accent-primary: #e54472;
|
||||||
|
--accent-secondary: #9fea8a;
|
||||||
|
--accent-tertiary: #ea3838;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Terminal Space Theme */
|
||||||
|
:root.terminal-theme {
|
||||||
|
--bg-primary: #2a232b;
|
||||||
|
--bg-secondary: #1e1a1f;
|
||||||
|
--text-primary: #f8f8f2;
|
||||||
|
--text-secondary: #e0e0e0;
|
||||||
|
--accent-primary: #e7efa7;
|
||||||
|
--accent-secondary: #c627d8;
|
||||||
|
--accent-tertiary: #f76b00;
|
||||||
|
}
|
||||||
@@ -3,8 +3,7 @@
|
|||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport"
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
||||||
<meta name="description" content="CV Lukáše Kaňky" />
|
<meta name="description" content="CV Lukáše Kaňky" />
|
||||||
<meta name="keywords" content="Hlavní strana" />
|
<meta name="keywords" content="Hlavní strana" />
|
||||||
|
|||||||
+3
-2
@@ -5,14 +5,15 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta name="Kankys Matrix" content="Kankys personal site." />
|
<meta name="description" content="Osobní web Lukáše Kaňky - Tech-libertarián, FreeBSD, Linux a Opensource nadšenec z této planety" />
|
||||||
|
<meta name="keywords" content="Lukáš Kaňka, tech-libertarián, FreeBSD, Linux, opensource, programování, vývoj, IT" />
|
||||||
<title>Kankys v Matrixu</title>
|
<title>Kankys v Matrixu</title>
|
||||||
<link rel="stylesheet" type="text/css" href="./style/alt.style.css" />
|
<link rel="stylesheet" type="text/css" href="./style/alt.style.css" />
|
||||||
<link rel="shortcut icon" href="img/logo_arch_linux_167.png" />
|
<link rel="shortcut icon" href="img/logo_arch_linux_167.png" />
|
||||||
<link rel="stylesheet" href="./res/site/fonts/DarkNewRoman/stylesheet.css" type="text/css" />
|
<link rel="stylesheet" href="./res/site/fonts/DarkNewRoman/stylesheet.css" type="text/css" />
|
||||||
<link rel="icon" type="image/x-icon" href="./res/site/icons/favicon.ico" />
|
<link rel="icon" type="image/x-icon" href="./res/site/icons/favicon.ico" />
|
||||||
<!-- Přidá ikony služeb-->
|
<!-- Přidá ikony služeb-->
|
||||||
<link rel="stylesheet" href="https:https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY=" crossorigin="anonymous" />
|
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY=" crossorigin="anonymous" />
|
||||||
<!-- <a rel="me" href="https://mastodon.arch-linux.cz/@Kankys">Mastodon</a>-->
|
<!-- <a rel="me" href="https://mastodon.arch-linux.cz/@Kankys">Mastodon</a>-->
|
||||||
<script defer src="https://analytics.lukan.cz/script.js" data-website-id="b4873717-7ef6-404b-bda7-eae5ca315162" crossorigin="anonymous"></script>
|
<script defer src="https://analytics.lukan.cz/script.js" data-website-id="b4873717-7ef6-404b-bda7-eae5ca315162" crossorigin="anonymous"></script>
|
||||||
|
|||||||
@@ -5,14 +5,15 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta name="Kankys Matrix" content="O mně." />
|
<meta name="description" content="Informace o Lukášovi Kaňkovi - Tech-libertarián, IT nadšenec s vášní pro technologie" />
|
||||||
|
<meta name="keywords" content="Lukáš Kaňka, o mně, životopis, IT, technologie, opensource, FreeBSD, Linux" />
|
||||||
<title>O mně</title>
|
<title>O mně</title>
|
||||||
<link rel="stylesheet" href="https:https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY=" crossorigin="anonymous" />
|
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY=" crossorigin="anonymous" />
|
||||||
<link rel="stylesheet" href="../../style/style.css" />
|
<link rel="stylesheet" href="../../style/style.css" />
|
||||||
<link rel="shortcut icon" href="img/tux.png" />
|
<link rel="shortcut icon" href="img/tux.png" />
|
||||||
<link rel="icon" type="image/x-icon" href="../../res/site/icons/favicon.ico" />
|
<link rel="icon" type="image/x-icon" href="../../res/site/icons/favicon.ico" />
|
||||||
<link href="https:https://cdn.jsdelivr.net/npm/font-logos@1/assets/font-logos.css" rel="stylesheet" crossorigin="anonymous" />
|
<link href="https://cdn.jsdelivr.net/npm/font-logos@1/assets/font-logos.css" rel="stylesheet" crossorigin="anonymous" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body style="cursor: url(../../res/site/icons/archlinux.png), auto">
|
<body style="cursor: url(../../res/site/icons/archlinux.png), auto">
|
||||||
|
|||||||
@@ -10,13 +10,11 @@
|
|||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
<link rel="shortcut icon" href="img/icons8-rocket.gif" />
|
<link rel="shortcut icon" href="img/icons8-rocket.gif" />
|
||||||
<!--nav bar-->
|
<!--nav bar-->
|
||||||
<script src="https:https:https://kit.fontawesome.com/0a43c6cd1f.js" crossorigin="anonymous"></script>
|
<script src="https://kit.fontawesome.com/0a43c6cd1f.js" crossorigin="anonymous"></script>
|
||||||
<!--icons dark, go to up-->
|
<!--icons dark, go to up-->
|
||||||
<link rel="stylesheet" href="https:https:https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" crossorigin="anonymous" />
|
||||||
<!--ubuntu fonts-->
|
<!--ubuntu fonts-->
|
||||||
<style>
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap" crossorigin="anonymous" />
|
||||||
@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");
|
|
||||||
</style>
|
|
||||||
<title>ApolloNvim</title>
|
<title>ApolloNvim</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@@ -145,7 +143,7 @@
|
|||||||
<a href="https://github.com/LukasKanka/" target="_blank" rel="noopener noreferrer">👉 GitHub</a>
|
<a href="https://github.com/LukasKanka/" target="_blank" rel="noopener noreferrer">👉 GitHub</a>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<a href="https://mastodon.arch-linux.cz/@Kankys" target="_blank" rel="noopener noreferrer" 👉>
|
<a href="https://mastodon.arch-linux.cz/@Kankys" target="_blank" rel="noopener noreferrer">👉
|
||||||
Mastodon</a>
|
Mastodon</a>
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
@@ -189,4 +187,3 @@
|
|||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
'
|
|
||||||
@@ -16,18 +16,16 @@
|
|||||||
<link rel="shortcut icon" href="img/icons8-rocket.gif" />
|
<link rel="shortcut icon" href="img/icons8-rocket.gif" />
|
||||||
<!--nav bar-->
|
<!--nav bar-->
|
||||||
<script
|
<script
|
||||||
src="https:https://kit.fontawesome.com/0a43c6cd1f.js"
|
src="https://kit.fontawesome.com/0a43c6cd1f.js"
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
></script>
|
></script>
|
||||||
<!--icons dark, go to up-->
|
<!--icons dark, go to up-->
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https:https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" crossorigin="anonymous"
|
||||||
/>
|
/>
|
||||||
<!--ubuntu fonts-->
|
<!--ubuntu fonts-->
|
||||||
<style>
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap" crossorigin="anonymous" />
|
||||||
@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");
|
|
||||||
</style>
|
|
||||||
<title>ApolloNvim Instalace</title>
|
<title>ApolloNvim Instalace</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|||||||
@@ -16,18 +16,16 @@
|
|||||||
<link rel="shortcut icon" href="img/icons8-rocket.gif" />
|
<link rel="shortcut icon" href="img/icons8-rocket.gif" />
|
||||||
<!--nav bar-->
|
<!--nav bar-->
|
||||||
<script
|
<script
|
||||||
src="https:https://kit.fontawesome.com/0a43c6cd1f.js"
|
src="https://kit.fontawesome.com/0a43c6cd1f.js"
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
></script>
|
></script>
|
||||||
<!--icons dark, go to up-->
|
<!--icons dark, go to up-->
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https:https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" crossorigin="anonymous"
|
||||||
/>
|
/>
|
||||||
<!--ubuntu fonts-->
|
<!--ubuntu fonts-->
|
||||||
<style>
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap" crossorigin="anonymous" />
|
||||||
@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");
|
|
||||||
</style>
|
|
||||||
<title>ApolloNvim Návody</title>
|
<title>ApolloNvim Návody</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|||||||
@@ -10,13 +10,11 @@
|
|||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
<link rel="shortcut icon" href="img/icons8-rocket.gif" />
|
<link rel="shortcut icon" href="img/icons8-rocket.gif" />
|
||||||
<!--nav bar-->
|
<!--nav bar-->
|
||||||
<script src="https:https://kit.fontawesome.com/0a43c6cd1f.js" crossorigin="anonymous"></script>
|
<script src="https://kit.fontawesome.com/0a43c6cd1f.js" crossorigin="anonymous"></script>
|
||||||
<!--icons dark, go to up-->
|
<!--icons dark, go to up-->
|
||||||
<link rel="stylesheet" href="https:https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" crossorigin="anonymous" />
|
||||||
<!--ubuntu fonts-->
|
<!--ubuntu fonts-->
|
||||||
<style>
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap" crossorigin="anonymous" />
|
||||||
@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");
|
|
||||||
</style>
|
|
||||||
<title>ApolloNvim Pluginy</title>
|
<title>ApolloNvim Pluginy</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|||||||
@@ -4,11 +4,12 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta name="Kankys Matrix" content="Zásady ochrany osobních údaju." />
|
<meta name="description" content="Zásady ochrany osobních údajů pro web Lukáše Kaňky" />
|
||||||
<title>Zásady ochrany osobních údaju</title>
|
<meta name="keywords" content="ochrana údajů, GDPR, soukromí, zásady, Lukáš Kaňka" />
|
||||||
|
<title>Zásady ochrany osobních údajů</title>
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https:https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -5,15 +5,16 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta name="Kankys Matrix" content="Kankys projekty." />
|
<meta name="description" content="Projekty Lukáše Kaňky - Přehled všech projektů a aplikací" />
|
||||||
|
<meta name="keywords" content="projekty, aplikace, vývoj, Lukáš Kaňka, opensource, software" />
|
||||||
<title>Projekty</title>
|
<title>Projekty</title>
|
||||||
<link rel="stylesheet" href="https:https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY=" crossorigin="anonymous" />
|
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY=" crossorigin="anonymous" />
|
||||||
<link rel="stylesheet" href="../../style/style.css" />
|
<link rel="stylesheet" href="../../style/style.css" />
|
||||||
<link rel="icon" type="image/x-icon" href="../../res/site/icons/favicon.ico" />
|
<link rel="icon" type="image/x-icon" href="../../res/site/icons/favicon.ico" />
|
||||||
<link rel="shortcut icon" href="../../img/tux.png" />
|
<link rel="shortcut icon" href="../../img/tux.png" />
|
||||||
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
|
||||||
<script id="MathJax-script" async="" src="https:https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
<script id="MathJax-script" async="" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
@@ -4,10 +4,12 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="description" content="Repozitáře Lukáše Kaňky - Přehled kódu a projektů na GitHubu a Codebergu" />
|
||||||
|
<meta name="keywords" content="repozitáře, GitHub, Codeberg, kód, vývoj, Lukáš Kaňka, opensource" />
|
||||||
<title>Repozitáře</title>
|
<title>Repozitáře</title>
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https:https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||||
crossorigin="anonymous" />
|
crossorigin="anonymous" />
|
||||||
<link rel="stylesheet" type="text/css" href="../../style/alt.style.css" />
|
<link rel="stylesheet" type="text/css" href="../../style/alt.style.css" />
|
||||||
|
|||||||
@@ -7,10 +7,12 @@
|
|||||||
name="viewport"
|
name="viewport"
|
||||||
content="width=device-width, initial-scale=1.0"
|
content="width=device-width, initial-scale=1.0"
|
||||||
/>
|
/>
|
||||||
|
<meta name="description" content="Sociální sítě a kontakty Lukáše Kaňky - Kde mne najdete online" />
|
||||||
|
<meta name="keywords" content="sociální sítě, kontakty, Lukáš Kaňka, LinkedIn, Codeberg, GitHub, Mastodon" />
|
||||||
<title>Socials</title>
|
<title>Socials</title>
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https:https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -10,9 +10,9 @@
|
|||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
<link rel="shortcut icon" href="img/kakoune_logo_full.png" />
|
<link rel="shortcut icon" href="img/kakoune_logo_full.png" />
|
||||||
<!--nav bar-->
|
<!--nav bar-->
|
||||||
<script src="https:https:https://kit.fontawesome.com/0a43c6cd1f.js" crossorigin="anonymous"></script>
|
<script src="https://kit.fontawesome.com/0a43c6cd1f.js" crossorigin="anonymous"></script>
|
||||||
<!--icons dark, go to up-->
|
<!--icons dark, go to up-->
|
||||||
<link rel="stylesheet" href="https:https:https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" />
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" />
|
||||||
<!--ubuntu fonts-->
|
<!--ubuntu fonts-->
|
||||||
<style>
|
<style>
|
||||||
@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");
|
@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");
|
||||||
|
|||||||
@@ -4,11 +4,12 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta name="Kankys Matrix" content="Kankys s čím pracuji." />
|
<meta name="description" content="Nástroje a technologie, které používám - Lukáš Kaňka" />
|
||||||
|
<meta name="keywords" content="nástroje, technologie, software, Lukáš Kaňka, vývoj, programování" />
|
||||||
<title>Nástroje</title>
|
<title>Nástroje</title>
|
||||||
<link
|
<link
|
||||||
rel="stylesheet"
|
rel="stylesheet"
|
||||||
href="https:https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
|
||||||
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
|
||||||
crossorigin="anonymous"
|
crossorigin="anonymous"
|
||||||
/>
|
/>
|
||||||
@@ -23,7 +24,7 @@
|
|||||||
<script
|
<script
|
||||||
id="MathJax-script"
|
id="MathJax-script"
|
||||||
async=""
|
async=""
|
||||||
src="https:https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
|
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
|
||||||
></script>
|
></script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,125 @@
|
|||||||
|
/**
|
||||||
|
* Shared JavaScript functions for NewLukasBlog
|
||||||
|
* Common utilities used across multiple pages
|
||||||
|
*/
|
||||||
|
|
||||||
|
// ============================================
|
||||||
|
// Mobile Menu (Hamburger Menu)
|
||||||
|
// ============================================
|
||||||
|
function setupMobileMenu() {
|
||||||
|
const menuIcon = document.querySelector(".menu-icon");
|
||||||
|
const menuList = document.querySelector("nav");
|
||||||
|
const hamburgerIcon = document.querySelector(".fa-solid");
|
||||||
|
|
||||||
|
if (menuIcon && hamburgerIcon && menuList) {
|
||||||
|
menuIcon.addEventListener("click", () => {
|
||||||
|
if (hamburgerIcon.classList.contains("fa-bars")) {
|
||||||
|
hamburgerIcon.classList.add("fa-xmark");
|
||||||
|
hamburgerIcon.classList.remove("fa-bars");
|
||||||
|
menuList.style.display = "block";
|
||||||
|
} else {
|
||||||
|
hamburgerIcon.classList.add("fa-bars");
|
||||||
|
hamburgerIcon.classList.remove("fa-xmark");
|
||||||
|
menuList.style.display = "none";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ============================================
|
||||||
|
// Scroll to Top Functionality
|
||||||
|
// ============================================
|
||||||
|
function scrollToTop() {
|
||||||
|
document.body.scrollTop = 0; // For Safari
|
||||||
|
document.documentElement.scrollTop = 0; // For other browsers
|
||||||
|
}
|
||||||
|
|
||||||
|
function setupScrollToTopButton(buttonId = "scrollToTopBtn") {
|
||||||
|
const scrollToTopBtn = document.getElementById(buttonId);
|
||||||
|
|
||||||
|
if (scrollToTopBtn) {
|
||||||
|
window.onscroll = function () {
|
||||||
|
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
|
||||||
|
scrollToTopBtn.style.display = "block";
|
||||||
|
} else {
|
||||||
|
scrollToTopBtn.style.display = "none";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ============================================
|
||||||
|
// Theme Toggle Functionality
|
||||||
|
// ============================================
|
||||||
|
// Base theme toggle - can be extended by specific pages
|
||||||
|
function setupThemeToggle(config = {}) {
|
||||||
|
const defaults = {
|
||||||
|
toggleButtonId: "toggleButton",
|
||||||
|
storageKey: "themePreference",
|
||||||
|
defaultTheme: "dark"
|
||||||
|
};
|
||||||
|
|
||||||
|
const options = { ...defaults, ...config };
|
||||||
|
const toggleButton = document.getElementById(options.toggleButtonId);
|
||||||
|
|
||||||
|
if (!toggleButton) return;
|
||||||
|
|
||||||
|
// Load saved preference or use default
|
||||||
|
const savedTheme = localStorage.getItem(options.storageKey) || options.defaultTheme;
|
||||||
|
let isDarkMode = savedTheme === "dark";
|
||||||
|
|
||||||
|
// Apply initial theme
|
||||||
|
if (isDarkMode) {
|
||||||
|
document.body.classList.add("dark-theme");
|
||||||
|
} else {
|
||||||
|
document.body.classList.remove("dark-theme");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Toggle function
|
||||||
|
function toggleTheme() {
|
||||||
|
isDarkMode = !isDarkMode;
|
||||||
|
|
||||||
|
if (isDarkMode) {
|
||||||
|
document.body.classList.add("dark-theme");
|
||||||
|
localStorage.setItem(options.storageKey, "dark");
|
||||||
|
} else {
|
||||||
|
document.body.classList.remove("dark-theme");
|
||||||
|
localStorage.setItem(options.storageKey, "light");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call custom callback if provided
|
||||||
|
if (options.onToggle) {
|
||||||
|
options.onToggle(isDarkMode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set up click listener
|
||||||
|
toggleButton.addEventListener("click", toggleTheme);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ============================================
|
||||||
|
// Image Zoom Functionality
|
||||||
|
// ============================================
|
||||||
|
function setupImageZoom(selector = ".picture", scale = 2.2) {
|
||||||
|
const images = document.querySelectorAll(selector);
|
||||||
|
|
||||||
|
images.forEach((img, index) => {
|
||||||
|
img.addEventListener("mouseenter", () => {
|
||||||
|
img.style.transform = `scale(${scale})`;
|
||||||
|
});
|
||||||
|
|
||||||
|
img.addEventListener("mouseleave", () => {
|
||||||
|
img.style.transform = "scale(1)";
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// ============================================
|
||||||
|
// Initialize all common functionality
|
||||||
|
// ============================================
|
||||||
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
|
setupMobileMenu();
|
||||||
|
setupScrollToTopButton();
|
||||||
|
setupThemeToggle();
|
||||||
|
setupImageZoom();
|
||||||
|
});
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en-US">
|
<html lang="cs">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="description" content="Alternativní styl pro Kankys web - Array in a Matrix" />
|
||||||
|
<meta name="keywords" content="Kankys, Lukáš Kaňka, alternativní styl, CSS, design" />
|
||||||
<title>Array in a Matrix</title>
|
<title>Array in a Matrix</title>
|
||||||
<link rel="stylesheet" type="text/css" href="./alt.style.css" />
|
<link rel="stylesheet" type="text/css" href="./alt.style.css" />
|
||||||
<link rel="icon" type="image/x-icon" href="../res/site/icons/favicon.ico" />
|
<link rel="icon" type="image/x-icon" href="../res/site/icons/favicon.ico" />
|
||||||
|
|||||||
Reference in new issue
Block a user