-
This commit is contained in:
@@ -0,0 +1,839 @@
|
||||
:root {
|
||||
--bg: #07090f;
|
||||
--bg-2: #0c1018;
|
||||
--surface: #111722;
|
||||
--surface-2: #151d2a;
|
||||
--surface-soft: rgba(17, 23, 34, 0.82);
|
||||
--border: rgba(139, 166, 199, 0.18);
|
||||
--border-strong: rgba(139, 166, 199, 0.32);
|
||||
--text: #f4f8ff;
|
||||
--text-soft: #b8c6d9;
|
||||
--text-muted: #8190a6;
|
||||
--neon-green: #00ff8a;
|
||||
--neon-red: #ff3157;
|
||||
--neon-pink: #ff4fd8;
|
||||
--neon-orange: #ff9f1c;
|
||||
--neon-blue: #24c8ff;
|
||||
--shadow: 0 20px 60px rgba(0, 0, 0, 0.34);
|
||||
--radius: 8px;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
html {
|
||||
min-height: 100%;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
min-height: 100%;
|
||||
margin: 0;
|
||||
background:
|
||||
linear-gradient(90deg, rgba(36, 200, 255, 0.06) 1px, transparent 1px),
|
||||
linear-gradient(0deg, rgba(0, 255, 138, 0.04) 1px, transparent 1px),
|
||||
linear-gradient(180deg, #07090f 0%, #0a0d14 52%, #080a10 100%);
|
||||
background-size: 64px 64px, 64px 64px, auto;
|
||||
color: var(--text);
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
|
||||
font-size: 1rem;
|
||||
line-height: 1.65;
|
||||
}
|
||||
|
||||
body::before {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
z-index: -1;
|
||||
content: "";
|
||||
background:
|
||||
linear-gradient(115deg, rgba(0, 255, 138, 0.08), transparent 26%),
|
||||
linear-gradient(245deg, rgba(255, 49, 87, 0.08), transparent 28%),
|
||||
linear-gradient(180deg, transparent 0%, rgba(7, 9, 15, 0.72) 72%);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--neon-blue);
|
||||
text-decoration: none;
|
||||
transition: color 0.18s ease, border-color 0.18s ease, background-color 0.18s ease, transform 0.18s ease;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
color: var(--neon-green);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:focus,
|
||||
button:focus,
|
||||
input:focus,
|
||||
textarea:focus,
|
||||
select:focus {
|
||||
outline: 2px solid var(--neon-blue);
|
||||
outline-offset: 3px;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.skip-link {
|
||||
position: absolute;
|
||||
left: 1rem;
|
||||
top: 0.75rem;
|
||||
z-index: 2000;
|
||||
padding: 0.5rem 0.75rem;
|
||||
background: var(--neon-green);
|
||||
color: #061009;
|
||||
border-radius: var(--radius);
|
||||
font-weight: 700;
|
||||
transform: translateY(-150%);
|
||||
}
|
||||
|
||||
.skip-link:focus {
|
||||
transform: translateY(0);
|
||||
color: #061009;
|
||||
}
|
||||
|
||||
.site-main {
|
||||
min-height: 60vh;
|
||||
}
|
||||
|
||||
.neon-navbar {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
padding: 0.65rem 0;
|
||||
background: rgba(7, 9, 15, 0.94);
|
||||
border-bottom: 1px solid var(--border);
|
||||
box-shadow: 0 12px 38px rgba(0, 0, 0, 0.26);
|
||||
backdrop-filter: blur(16px);
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.6rem;
|
||||
color: var(--text) !important;
|
||||
font-size: 1.02rem;
|
||||
font-weight: 800;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.brand-signal {
|
||||
width: 0.85rem;
|
||||
height: 0.85rem;
|
||||
border-radius: 50%;
|
||||
background: conic-gradient(from 90deg, var(--neon-green), var(--neon-blue), var(--neon-pink), var(--neon-orange), var(--neon-red), var(--neon-green));
|
||||
box-shadow: 0 0 18px rgba(36, 200, 255, 0.7);
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.navbar-toggler {
|
||||
color: var(--text);
|
||||
border: 1px solid var(--border-strong);
|
||||
border-radius: var(--radius);
|
||||
padding: 0.35rem 0.55rem;
|
||||
}
|
||||
|
||||
.navbar-toggler i {
|
||||
font-size: 1.35rem;
|
||||
}
|
||||
|
||||
.navbar-nav {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.navbar .nav-link {
|
||||
color: var(--text-soft) !important;
|
||||
border: 1px solid transparent;
|
||||
border-radius: var(--radius);
|
||||
font-size: 0.92rem;
|
||||
font-weight: 650;
|
||||
padding: 0.45rem 0.7rem;
|
||||
}
|
||||
|
||||
.navbar .nav-link:hover,
|
||||
.navbar .nav-link.active {
|
||||
color: var(--text) !important;
|
||||
background: rgba(36, 200, 255, 0.09);
|
||||
border-color: rgba(36, 200, 255, 0.22);
|
||||
}
|
||||
|
||||
.nav-icon-link {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.35rem;
|
||||
}
|
||||
|
||||
.nav-search {
|
||||
margin-left: 0.8rem;
|
||||
}
|
||||
|
||||
.nav-search-field,
|
||||
.hero-search {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.55rem;
|
||||
background: rgba(255, 255, 255, 0.045);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.nav-search-field {
|
||||
min-width: 220px;
|
||||
padding: 0.35rem 0.65rem;
|
||||
}
|
||||
|
||||
.nav-search-field input,
|
||||
.hero-search input {
|
||||
width: 100%;
|
||||
min-width: 0;
|
||||
background: transparent;
|
||||
color: var(--text);
|
||||
border: 0;
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
.nav-search-field input::placeholder,
|
||||
.hero-search input::placeholder {
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.neon-hero {
|
||||
padding: 4rem 0 2rem;
|
||||
}
|
||||
|
||||
.hero-panel {
|
||||
position: relative;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
|
||||
gap: 2rem;
|
||||
align-items: end;
|
||||
padding: 2rem 0 2.3rem;
|
||||
border-top: 1px solid var(--border);
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.accent-strip {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||
gap: 0.45rem;
|
||||
width: min(360px, 100%);
|
||||
margin-bottom: 1.3rem;
|
||||
}
|
||||
|
||||
.accent-strip span {
|
||||
display: block;
|
||||
height: 0.26rem;
|
||||
border-radius: 99px;
|
||||
box-shadow: 0 0 20px currentColor;
|
||||
}
|
||||
|
||||
.accent-strip span:nth-child(1) { background: var(--neon-green); color: var(--neon-green); }
|
||||
.accent-strip span:nth-child(2) { background: var(--neon-red); color: var(--neon-red); }
|
||||
.accent-strip span:nth-child(3) { background: var(--neon-pink); color: var(--neon-pink); }
|
||||
.accent-strip span:nth-child(4) { background: var(--neon-orange); color: var(--neon-orange); }
|
||||
.accent-strip span:nth-child(5) { background: var(--neon-blue); color: var(--neon-blue); }
|
||||
|
||||
.hero-kicker {
|
||||
color: var(--neon-green);
|
||||
font-size: 0.9rem;
|
||||
font-weight: 750;
|
||||
margin: 0 0 0.65rem;
|
||||
}
|
||||
|
||||
.hero-copy h1,
|
||||
.page-header h1 {
|
||||
color: var(--text);
|
||||
font-size: 3rem;
|
||||
font-weight: 850;
|
||||
line-height: 1.08;
|
||||
margin: 0;
|
||||
max-width: 920px;
|
||||
}
|
||||
|
||||
.hero-copy p:not(.hero-kicker),
|
||||
.page-header p {
|
||||
max-width: 720px;
|
||||
margin: 1rem 0 0;
|
||||
color: var(--text-soft);
|
||||
font-size: 1.08rem;
|
||||
}
|
||||
|
||||
.hero-search {
|
||||
padding: 0.55rem;
|
||||
align-self: center;
|
||||
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02), 0 0 34px rgba(36, 200, 255, 0.09);
|
||||
}
|
||||
|
||||
.hero-search button {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.35rem;
|
||||
min-height: 2.55rem;
|
||||
padding: 0.55rem 0.85rem;
|
||||
background: var(--neon-blue);
|
||||
color: #031017;
|
||||
border: 0;
|
||||
border-radius: var(--radius);
|
||||
font-weight: 800;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.hero-search button:hover {
|
||||
background: var(--neon-green);
|
||||
}
|
||||
|
||||
.content-band {
|
||||
padding: 2.2rem 0 4rem;
|
||||
}
|
||||
|
||||
.single-band {
|
||||
padding-top: 3rem;
|
||||
}
|
||||
|
||||
.post-list {
|
||||
display: grid;
|
||||
gap: 1.35rem;
|
||||
}
|
||||
|
||||
.neon-post {
|
||||
--post-accent: var(--neon-blue);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: var(--surface-soft);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
box-shadow: var(--shadow);
|
||||
}
|
||||
|
||||
.post-list .neon-post:nth-child(5n+1) { --post-accent: var(--neon-green); }
|
||||
.post-list .neon-post:nth-child(5n+2) { --post-accent: var(--neon-red); }
|
||||
.post-list .neon-post:nth-child(5n+3) { --post-accent: var(--neon-pink); }
|
||||
.post-list .neon-post:nth-child(5n+4) { --post-accent: var(--neon-orange); }
|
||||
.post-list .neon-post:nth-child(5n+5) { --post-accent: var(--neon-blue); }
|
||||
|
||||
.neon-post::before {
|
||||
position: absolute;
|
||||
inset: 0 auto 0 0;
|
||||
width: 4px;
|
||||
content: "";
|
||||
background: var(--post-accent);
|
||||
box-shadow: 0 0 22px var(--post-accent);
|
||||
}
|
||||
|
||||
.post-cover {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
max-height: 360px;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.post-cover img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-height: 360px;
|
||||
object-fit: cover;
|
||||
filter: saturate(1.08) contrast(1.04);
|
||||
transition: transform 0.24s ease;
|
||||
}
|
||||
|
||||
.post-cover:hover img {
|
||||
transform: scale(1.025);
|
||||
}
|
||||
|
||||
.post-body {
|
||||
padding: 1.45rem 1.45rem 1.35rem;
|
||||
}
|
||||
|
||||
.post-meta {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.55rem 0.95rem;
|
||||
align-items: center;
|
||||
color: var(--text-muted);
|
||||
font-size: 0.88rem;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.post-meta span,
|
||||
.post-meta a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.35rem;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.post-title {
|
||||
font-size: 1.65rem;
|
||||
line-height: 1.18;
|
||||
margin: 0 0 0.85rem;
|
||||
font-weight: 850;
|
||||
}
|
||||
|
||||
.post-title a {
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.post-title a:hover {
|
||||
color: var(--post-accent);
|
||||
}
|
||||
|
||||
.post-description,
|
||||
.post-excerpt {
|
||||
color: var(--text-soft);
|
||||
}
|
||||
|
||||
.post-excerpt p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.taxonomy-list,
|
||||
.page-taxonomy {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.taxonomy-list a,
|
||||
.page-taxonomy a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.3rem;
|
||||
padding: 0.28rem 0.55rem;
|
||||
background: rgba(255, 255, 255, 0.045);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 999px;
|
||||
color: var(--text-soft);
|
||||
font-size: 0.82rem;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.taxonomy-list a:hover,
|
||||
.page-taxonomy a:hover {
|
||||
color: var(--bg);
|
||||
background: var(--neon-green);
|
||||
border-color: var(--neon-green);
|
||||
}
|
||||
|
||||
.read-link,
|
||||
.back-home,
|
||||
.neon-pagination a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.45rem;
|
||||
min-height: 2.5rem;
|
||||
padding: 0.48rem 0.75rem;
|
||||
border: 1px solid rgba(36, 200, 255, 0.36);
|
||||
border-radius: var(--radius);
|
||||
color: var(--text);
|
||||
background: rgba(36, 200, 255, 0.08);
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.read-link {
|
||||
margin-top: 1.1rem;
|
||||
}
|
||||
|
||||
.read-link:hover,
|
||||
.back-home:hover,
|
||||
.neon-pagination a:hover {
|
||||
color: #041118;
|
||||
background: var(--neon-blue);
|
||||
border-color: var(--neon-blue);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.neon-pagination {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.75rem;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.neon-sidebar {
|
||||
position: sticky;
|
||||
top: 5.25rem;
|
||||
display: grid;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
.neon-sidebar .plugin,
|
||||
.social-panel {
|
||||
background: rgba(17, 23, 34, 0.76);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
padding: 1rem;
|
||||
box-shadow: var(--shadow);
|
||||
}
|
||||
|
||||
.plugin-label,
|
||||
.neon-sidebar h2 {
|
||||
color: var(--text);
|
||||
font-size: 1rem;
|
||||
font-weight: 850;
|
||||
margin: 0 0 0.8rem;
|
||||
}
|
||||
|
||||
.plugin-content,
|
||||
.plugin-content p,
|
||||
.plugin-content li {
|
||||
color: var(--text-soft);
|
||||
}
|
||||
|
||||
.plugin-content ul {
|
||||
padding-left: 1.1rem;
|
||||
}
|
||||
|
||||
.social-links {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.55rem;
|
||||
}
|
||||
|
||||
.social-links a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 2.35rem;
|
||||
height: 2.35rem;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
color: var(--text);
|
||||
background: rgba(255, 255, 255, 0.045);
|
||||
}
|
||||
|
||||
.social-links a:hover {
|
||||
color: #051015;
|
||||
background: var(--neon-pink);
|
||||
border-color: var(--neon-pink);
|
||||
}
|
||||
|
||||
.empty-state {
|
||||
padding: 3rem 1rem;
|
||||
text-align: center;
|
||||
color: var(--text-soft);
|
||||
border: 1px dashed var(--border-strong);
|
||||
border-radius: var(--radius);
|
||||
background: rgba(17, 23, 34, 0.5);
|
||||
}
|
||||
|
||||
.empty-state i {
|
||||
display: block;
|
||||
color: var(--neon-orange);
|
||||
font-size: 2rem;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.empty-state h2 {
|
||||
color: var(--text);
|
||||
font-size: 1.35rem;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.neon-page {
|
||||
max-width: 920px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.page-breadcrumb {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.45rem;
|
||||
align-items: center;
|
||||
color: var(--text-muted);
|
||||
font-size: 0.92rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.page-breadcrumb a {
|
||||
color: var(--text-soft);
|
||||
}
|
||||
|
||||
.page-header {
|
||||
padding-bottom: 1.5rem;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.page-cover {
|
||||
overflow: hidden;
|
||||
margin: 2rem 0;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
box-shadow: var(--shadow);
|
||||
}
|
||||
|
||||
.page-cover img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.page-content {
|
||||
color: var(--text-soft);
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
|
||||
.page-content h2,
|
||||
.page-content h3,
|
||||
.page-content h4 {
|
||||
color: var(--text);
|
||||
line-height: 1.2;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 0.8rem;
|
||||
}
|
||||
|
||||
.page-content p,
|
||||
.page-content ul,
|
||||
.page-content ol {
|
||||
margin-bottom: 1.1rem;
|
||||
}
|
||||
|
||||
.page-content a {
|
||||
border-bottom: 1px solid rgba(36, 200, 255, 0.42);
|
||||
}
|
||||
|
||||
.page-content blockquote {
|
||||
margin: 1.5rem 0;
|
||||
padding: 1rem 1.15rem;
|
||||
color: var(--text);
|
||||
background: rgba(255, 79, 216, 0.08);
|
||||
border-left: 4px solid var(--neon-pink);
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.page-content pre,
|
||||
.page-content code {
|
||||
background: #05070b;
|
||||
color: var(--neon-green);
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
.page-content code {
|
||||
padding: 0.12rem 0.35rem;
|
||||
}
|
||||
|
||||
.page-content pre {
|
||||
padding: 1rem;
|
||||
overflow-x: auto;
|
||||
border: 1px solid rgba(0, 255, 138, 0.22);
|
||||
}
|
||||
|
||||
.page-content table {
|
||||
width: 100%;
|
||||
margin: 1.5rem 0;
|
||||
color: var(--text-soft);
|
||||
border-collapse: collapse;
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.page-content th,
|
||||
.page-content td {
|
||||
padding: 0.75rem;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.page-content th {
|
||||
color: var(--text);
|
||||
background: rgba(36, 200, 255, 0.1);
|
||||
}
|
||||
|
||||
.page-taxonomy {
|
||||
padding-top: 1.4rem;
|
||||
margin-top: 1.8rem;
|
||||
border-top: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.back-home {
|
||||
margin-top: 1.4rem;
|
||||
}
|
||||
|
||||
.site-footer {
|
||||
padding: 2rem 0;
|
||||
color: var(--text-muted);
|
||||
border-top: 1px solid var(--border);
|
||||
background: rgba(7, 9, 15, 0.72);
|
||||
}
|
||||
|
||||
.footer-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 1rem;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.footer-grid p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.footer-links {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 0.8rem;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.footer-links a {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.35rem;
|
||||
color: var(--text-soft);
|
||||
}
|
||||
|
||||
body .search-results-header {
|
||||
margin: 1.5rem 0 0;
|
||||
padding: 1.5rem 0;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
body .search-results-header h1 {
|
||||
color: var(--text);
|
||||
font-size: 1.65rem;
|
||||
}
|
||||
|
||||
body .search-results-header .search-query {
|
||||
color: var(--neon-pink);
|
||||
text-shadow: 0 0 18px rgba(255, 79, 216, 0.45);
|
||||
}
|
||||
|
||||
body .search-results-header .search-count,
|
||||
body .search-no-results p,
|
||||
body .search-no-results .search-suggestions ul {
|
||||
color: var(--text-soft);
|
||||
}
|
||||
|
||||
body .search-no-results {
|
||||
color: var(--text-soft);
|
||||
}
|
||||
|
||||
body .search-no-results h2,
|
||||
body .search-no-results h3 {
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
body .search-highlight {
|
||||
background: rgba(255, 159, 28, 0.28);
|
||||
color: var(--text);
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 0 16px rgba(255, 159, 28, 0.18);
|
||||
}
|
||||
|
||||
body .search-result-excerpt {
|
||||
color: var(--text-soft);
|
||||
}
|
||||
|
||||
body .search-inline-form input[type="search"],
|
||||
body .plugin-search .search-plugin-form input[type="search"] {
|
||||
width: 100%;
|
||||
background: rgba(5, 7, 11, 0.78);
|
||||
color: var(--text);
|
||||
border: 1px solid var(--border-strong);
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
|
||||
body .search-inline-form input[type="search"]:focus,
|
||||
body .plugin-search .search-plugin-form input[type="search"]:focus {
|
||||
border-color: var(--neon-blue);
|
||||
box-shadow: 0 0 0 4px rgba(36, 200, 255, 0.14);
|
||||
}
|
||||
|
||||
body .plugin-search .search-plugin-form button {
|
||||
width: 100%;
|
||||
background: var(--neon-blue);
|
||||
color: #041118;
|
||||
border: 0;
|
||||
border-radius: var(--radius);
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
body .plugin-search .search-plugin-form button:hover {
|
||||
background: var(--neon-green);
|
||||
}
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
.navbar-nav {
|
||||
align-items: stretch;
|
||||
padding-top: 0.8rem;
|
||||
}
|
||||
|
||||
.nav-search {
|
||||
margin: 0.8rem 0 0;
|
||||
}
|
||||
|
||||
.nav-search-field {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hero-panel {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 1.35rem;
|
||||
}
|
||||
|
||||
.neon-sidebar {
|
||||
position: static;
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 767.98px) {
|
||||
.neon-hero {
|
||||
padding: 2.6rem 0 1.3rem;
|
||||
}
|
||||
|
||||
.hero-panel {
|
||||
padding: 1.4rem 0 1.6rem;
|
||||
}
|
||||
|
||||
.hero-copy h1,
|
||||
.page-header h1 {
|
||||
font-size: 2.15rem;
|
||||
}
|
||||
|
||||
.hero-copy p:not(.hero-kicker),
|
||||
.page-header p {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.hero-search {
|
||||
align-items: stretch;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.hero-search input {
|
||||
flex: 1 1 180px;
|
||||
min-height: 2.55rem;
|
||||
}
|
||||
|
||||
.hero-search button {
|
||||
flex: 1 1 100%;
|
||||
}
|
||||
|
||||
.post-body {
|
||||
padding: 1.15rem;
|
||||
}
|
||||
|
||||
.post-title {
|
||||
font-size: 1.35rem;
|
||||
}
|
||||
|
||||
.content-band,
|
||||
.single-band {
|
||||
padding-top: 1.5rem;
|
||||
}
|
||||
|
||||
body .search-results-header h1 {
|
||||
font-size: 1.35rem;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
@@ -0,0 +1,33 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="<?php echo Theme::lang() ?>">
|
||||
|
||||
<head>
|
||||
<?php include(THEME_DIR_PHP . 'head.php'); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<a class="skip-link" href="#main-content"><?php echo $L->get('Skip to main content'); ?></a>
|
||||
|
||||
<?php include(THEME_DIR_PHP . 'navbar.php'); ?>
|
||||
|
||||
<?php Theme::plugins('siteBodyBegin'); ?>
|
||||
|
||||
<main id="main-content" class="site-main">
|
||||
<?php
|
||||
if ($WHERE_AM_I == 'page') {
|
||||
include(THEME_DIR_PHP . 'page.php');
|
||||
} else {
|
||||
include(THEME_DIR_PHP . 'home.php');
|
||||
}
|
||||
?>
|
||||
</main>
|
||||
|
||||
<?php include(THEME_DIR_PHP . 'footer.php'); ?>
|
||||
|
||||
<?php echo Theme::jquery(); ?>
|
||||
<?php echo Theme::jsBootstrap(); ?>
|
||||
|
||||
<?php Theme::plugins('siteBodyEnd'); ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"theme-data":
|
||||
{
|
||||
"name": "Dark Neon",
|
||||
"description": "A dark Bludit theme with green, red, pink, orange, and blue neon accents, built on Bludit theme hooks and Bootstrap assets."
|
||||
},
|
||||
"Back to home": "Back to home",
|
||||
"Breadcrumb": "Breadcrumb",
|
||||
"Connect": "Connect",
|
||||
"Main navigation": "Main navigation",
|
||||
"Open result": "Open result",
|
||||
"Page navigation": "Page navigation",
|
||||
"Read more": "Read more",
|
||||
"Search": "Search",
|
||||
"Sitemap": "Sitemap",
|
||||
"Skip to main content": "Skip to main content",
|
||||
"Toggle navigation": "Toggle navigation"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"author": "Bludit",
|
||||
"email": "",
|
||||
"website": "https://themes.bludit.com",
|
||||
"version": "3.22.0",
|
||||
"releaseDate": "2026-07-03",
|
||||
"license": "MIT",
|
||||
"compatible": "3.22",
|
||||
"notes": ""
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<footer class="site-footer">
|
||||
<div class="container">
|
||||
<div class="footer-grid">
|
||||
<p><?php echo $site->footer(); ?></p>
|
||||
<div class="footer-links">
|
||||
<?php if (Theme::rssUrl()) : ?>
|
||||
<a href="<?php echo Theme::rssUrl(); ?>"><i class="bi bi-rss" aria-hidden="true"></i>RSS</a>
|
||||
<?php endif; ?>
|
||||
<?php if (Theme::sitemapUrl()) : ?>
|
||||
<a href="<?php echo Theme::sitemapUrl(); ?>"><i class="bi bi-diagram-3" aria-hidden="true"></i><?php echo $L->get('Sitemap'); ?></a>
|
||||
<?php endif; ?>
|
||||
<?php if (!defined('BLUDIT_PRO')) : ?>
|
||||
<a href="https://www.bludit.com" target="_blank" rel="noopener">Bludit</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
@@ -0,0 +1,16 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="generator" content="Bludit">
|
||||
<meta name="theme-color" content="#07090f">
|
||||
|
||||
<?php echo Theme::metaTagTitle(); ?>
|
||||
<?php echo Theme::metaTagDescription(); ?>
|
||||
|
||||
<?php echo Theme::favicon('img/favicon.png'); ?>
|
||||
<link rel="apple-touch-icon" href="<?php echo DOMAIN_THEME_IMG . 'favicon.png'; ?>">
|
||||
|
||||
<?php echo Theme::cssBootstrap(); ?>
|
||||
<?php echo Theme::cssBootstrapIcons(); ?>
|
||||
<?php echo Theme::css('css/style.css'); ?>
|
||||
|
||||
<?php Theme::plugins('siteHead'); ?>
|
||||
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
$searchPlugin = pluginActivated('pluginSearch') ? getPlugin('pluginSearch') : false;
|
||||
$sidebarHtml = '';
|
||||
ob_start();
|
||||
Theme::plugins('siteSidebar');
|
||||
$sidebarHtml = trim(ob_get_clean());
|
||||
$socialNetworks = Theme::socialNetworks();
|
||||
$socialIconMap = array(
|
||||
'github' => 'github',
|
||||
'gitlab' => 'gitlab',
|
||||
'twitter' => 'twitter-x',
|
||||
'facebook' => 'facebook',
|
||||
'instagram' => 'instagram',
|
||||
'codepen' => 'codepen',
|
||||
'linkedin' => 'linkedin',
|
||||
'telegram' => 'telegram',
|
||||
'youtube' => 'youtube',
|
||||
'dribbble' => 'dribbble'
|
||||
);
|
||||
?>
|
||||
|
||||
<?php if ($WHERE_AM_I !== 'search') : ?>
|
||||
<section class="neon-hero">
|
||||
<div class="container">
|
||||
<div class="hero-panel">
|
||||
<div class="accent-strip" aria-hidden="true">
|
||||
<span></span><span></span><span></span><span></span><span></span>
|
||||
</div>
|
||||
<div class="hero-copy">
|
||||
<p class="hero-kicker"><?php echo htmlspecialchars($site->title(), ENT_QUOTES, 'UTF-8'); ?></p>
|
||||
<h1><?php echo htmlspecialchars($site->slogan() ? $site->slogan() : $site->title(), ENT_QUOTES, 'UTF-8'); ?></h1>
|
||||
<?php if ($site->description()) : ?>
|
||||
<p><?php echo htmlspecialchars($site->description(), ENT_QUOTES, 'UTF-8'); ?></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<?php if ($searchPlugin) : ?>
|
||||
<form class="hero-search" role="search" onsubmit="return darkNeonSearch('dark-neon-hero-search');">
|
||||
<label class="sr-only" for="dark-neon-hero-search"><?php echo $L->get('Search'); ?></label>
|
||||
<i class="bi bi-search" aria-hidden="true"></i>
|
||||
<input id="dark-neon-hero-search" type="search" placeholder="<?php echo htmlspecialchars($L->get('Search'), ENT_QUOTES, 'UTF-8'); ?>" autocomplete="off">
|
||||
<button type="submit"><i class="bi bi-arrow-right" aria-hidden="true"></i><span><?php echo $L->get('Search'); ?></span></button>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php endif; ?>
|
||||
|
||||
<section class="content-band">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="<?php echo (!empty($sidebarHtml) || !empty($socialNetworks)) ? 'col-lg-8' : 'col-lg-9 mx-auto'; ?>">
|
||||
<?php if (empty($content)) : ?>
|
||||
<div class="empty-state">
|
||||
<i class="bi bi-stars" aria-hidden="true"></i>
|
||||
<h2><?php $language->p('No pages found'); ?></h2>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="post-list">
|
||||
<?php foreach ($content as $page) : ?>
|
||||
<article class="neon-post">
|
||||
<?php Theme::plugins('pageBegin'); ?>
|
||||
|
||||
<?php if ($page->coverImage()) : ?>
|
||||
<a class="post-cover" href="<?php echo $page->permalink(); ?>" aria-label="<?php echo htmlspecialchars($page->title(), ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<img src="<?php echo $page->coverImage(); ?>" alt="<?php echo htmlspecialchars($page->title(), ENT_QUOTES, 'UTF-8'); ?>" loading="lazy">
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="post-body">
|
||||
<div class="post-meta">
|
||||
<span><i class="bi bi-calendar3" aria-hidden="true"></i><?php echo $page->date(); ?></span>
|
||||
<span><i class="bi bi-stopwatch" aria-hidden="true"></i><?php echo $page->readingTime(); ?></span>
|
||||
<?php if ($page->categoryKey()) : ?>
|
||||
<a href="<?php echo $page->categoryPermalink(); ?>"><i class="bi bi-folder2-open" aria-hidden="true"></i><?php echo htmlspecialchars($page->category(), ENT_QUOTES, 'UTF-8'); ?></a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<h2 class="post-title">
|
||||
<a href="<?php echo $page->permalink(); ?>"><?php echo htmlspecialchars($page->title(), ENT_QUOTES, 'UTF-8'); ?></a>
|
||||
</h2>
|
||||
|
||||
<?php if ($page->description() && $WHERE_AM_I !== 'search') : ?>
|
||||
<p class="post-description"><?php echo htmlspecialchars($page->description(), ENT_QUOTES, 'UTF-8'); ?></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="post-excerpt">
|
||||
<?php echo $page->contentBreak(); ?>
|
||||
</div>
|
||||
|
||||
<?php $tagsList = $page->tags(true); ?>
|
||||
<?php if (!empty($tagsList)) : ?>
|
||||
<div class="taxonomy-list">
|
||||
<?php foreach ($tagsList as $tagKey => $tagName) : ?>
|
||||
<a href="<?php echo DOMAIN_TAGS . $tagKey; ?>"><i class="bi bi-tag" aria-hidden="true"></i><?php echo htmlspecialchars($tagName, ENT_QUOTES, 'UTF-8'); ?></a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($page->readMore() || $WHERE_AM_I === 'search') : ?>
|
||||
<a class="read-link" href="<?php echo $page->permalink(); ?>">
|
||||
<span><?php echo ($WHERE_AM_I === 'search') ? $L->get('Open result') : $L->get('Read more'); ?></span>
|
||||
<i class="bi bi-arrow-right" aria-hidden="true"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<?php Theme::plugins('pageEnd'); ?>
|
||||
</article>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
<?php if (Paginator::numberOfPages() > 1) : ?>
|
||||
<nav class="neon-pagination" aria-label="<?php echo htmlspecialchars($L->get('Page navigation'), ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<?php if (Paginator::showPrev()) : ?>
|
||||
<a href="<?php echo htmlspecialchars(Paginator::previousPageUrl(), ENT_QUOTES, 'UTF-8'); ?>"><i class="bi bi-chevron-left" aria-hidden="true"></i><?php echo $L->get('Previous'); ?></a>
|
||||
<?php endif; ?>
|
||||
<a href="<?php echo Theme::siteUrl(); ?>"><i class="bi bi-house" aria-hidden="true"></i><?php echo $L->get('Home'); ?></a>
|
||||
<?php if (Paginator::showNext()) : ?>
|
||||
<a href="<?php echo htmlspecialchars(Paginator::nextPageUrl(), ENT_QUOTES, 'UTF-8'); ?>"><?php echo $L->get('Next'); ?><i class="bi bi-chevron-right" aria-hidden="true"></i></a>
|
||||
<?php endif; ?>
|
||||
</nav>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<?php if (!empty($sidebarHtml) || !empty($socialNetworks)) : ?>
|
||||
<aside class="col-lg-4">
|
||||
<div class="neon-sidebar">
|
||||
<?php echo $sidebarHtml; ?>
|
||||
|
||||
<?php if (!empty($socialNetworks)) : ?>
|
||||
<div class="plugin social-panel">
|
||||
<h2 class="plugin-label"><?php echo $L->get('Connect'); ?></h2>
|
||||
<div class="plugin-content social-links">
|
||||
<?php foreach ($socialNetworks as $key => $label) : ?>
|
||||
<?php $icon = isset($socialIconMap[$key]) ? $socialIconMap[$key] : 'link-45deg'; ?>
|
||||
<a href="<?php echo htmlspecialchars($site->{$key}(), ENT_QUOTES, 'UTF-8'); ?>" target="_blank" rel="noopener" aria-label="<?php echo htmlspecialchars($label, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<i class="bi bi-<?php echo $icon; ?>" aria-hidden="true"></i>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</aside>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
$searchPlugin = pluginActivated('pluginSearch') ? getPlugin('pluginSearch') : false;
|
||||
$searchValue = ($searchPlugin && $WHERE_AM_I === 'search') ? $searchPlugin->getSearchTerm() : '';
|
||||
$searchMinChars = $searchPlugin ? max(1, (int) $searchPlugin->getValue('minChars')) : 1;
|
||||
$searchAction = json_encode(Theme::siteUrl() . 'search/');
|
||||
$socialIconMap = array(
|
||||
'github' => 'github',
|
||||
'gitlab' => 'gitlab',
|
||||
'twitter' => 'twitter-x',
|
||||
'facebook' => 'facebook',
|
||||
'instagram' => 'instagram',
|
||||
'codepen' => 'codepen',
|
||||
'linkedin' => 'linkedin',
|
||||
'telegram' => 'telegram',
|
||||
'youtube' => 'youtube',
|
||||
'dribbble' => 'dribbble'
|
||||
);
|
||||
?>
|
||||
|
||||
<nav class="navbar navbar-expand-lg neon-navbar" aria-label="<?php echo htmlspecialchars($L->get('Main navigation'), ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<div class="container">
|
||||
<a class="navbar-brand" href="<?php echo Theme::siteUrl(); ?>">
|
||||
<span class="brand-signal" aria-hidden="true"></span>
|
||||
<span><?php echo htmlspecialchars($site->title(), ENT_QUOTES, 'UTF-8'); ?></span>
|
||||
</a>
|
||||
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#darkNeonNavbar" aria-controls="darkNeonNavbar" aria-expanded="false" aria-label="<?php echo htmlspecialchars($L->get('Toggle navigation'), ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<i class="bi bi-list" aria-hidden="true"></i>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="darkNeonNavbar">
|
||||
<ul class="navbar-nav ml-auto">
|
||||
<?php if ($site->homepage()) : ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php echo ($WHERE_AM_I === 'blog') ? ' active' : ''; ?>" href="<?php echo DOMAIN_BASE . ltrim($url->filters('blog'), '/'); ?>"><?php echo $L->get('Blog'); ?></a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php foreach ($staticContent as $staticPage) : ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link<?php echo ($url->slug() == $staticPage->slug()) ? ' active' : ''; ?>" href="<?php echo $staticPage->permalink(); ?>"><?php echo htmlspecialchars($staticPage->title(), ENT_QUOTES, 'UTF-8'); ?></a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<?php foreach (Theme::socialNetworks() as $key => $label) : ?>
|
||||
<?php $icon = isset($socialIconMap[$key]) ? $socialIconMap[$key] : 'link-45deg'; ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link nav-icon-link" href="<?php echo htmlspecialchars($site->{$key}(), ENT_QUOTES, 'UTF-8'); ?>" target="_blank" rel="noopener" aria-label="<?php echo htmlspecialchars($label, ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<i class="bi bi-<?php echo $icon; ?>" aria-hidden="true"></i>
|
||||
<span class="d-lg-none"><?php echo htmlspecialchars($label, ENT_QUOTES, 'UTF-8'); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
|
||||
<?php if ($searchPlugin) : ?>
|
||||
<form class="form-inline nav-search" role="search" onsubmit="return darkNeonSearch('dark-neon-nav-search');">
|
||||
<label class="sr-only" for="dark-neon-nav-search"><?php echo $L->get('Search'); ?></label>
|
||||
<div class="nav-search-field">
|
||||
<i class="bi bi-search" aria-hidden="true"></i>
|
||||
<input id="dark-neon-nav-search" type="search" value="<?php echo htmlspecialchars($searchValue, ENT_QUOTES, 'UTF-8'); ?>" placeholder="<?php echo htmlspecialchars($L->get('Search'), ENT_QUOTES, 'UTF-8'); ?>" autocomplete="off">
|
||||
</div>
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<?php if ($searchPlugin) : ?>
|
||||
<script>
|
||||
function darkNeonSearch(inputId) {
|
||||
var input = document.getElementById(inputId);
|
||||
if (!input) return false;
|
||||
var value = input.value.trim();
|
||||
if (value.length < <?php echo $searchMinChars; ?>) return false;
|
||||
window.location.href = <?php echo $searchAction; ?> + encodeURIComponent(value);
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
<?php endif; ?>
|
||||
@@ -0,0 +1,62 @@
|
||||
<section class="content-band single-band">
|
||||
<div class="container">
|
||||
<article class="neon-page">
|
||||
<?php Theme::plugins('pageBegin'); ?>
|
||||
|
||||
<nav class="page-breadcrumb" aria-label="<?php echo htmlspecialchars($L->get('Breadcrumb'), ENT_QUOTES, 'UTF-8'); ?>">
|
||||
<a href="<?php echo Theme::siteUrl(); ?>"><?php echo htmlspecialchars($site->title(), ENT_QUOTES, 'UTF-8'); ?></a>
|
||||
<?php if (!$page->isStatic() && $page->categoryKey()) : ?>
|
||||
<span>/</span>
|
||||
<a href="<?php echo $page->categoryPermalink(); ?>"><?php echo htmlspecialchars($page->category(), ENT_QUOTES, 'UTF-8'); ?></a>
|
||||
<?php endif; ?>
|
||||
</nav>
|
||||
|
||||
<header class="page-header">
|
||||
<div class="accent-strip" aria-hidden="true">
|
||||
<span></span><span></span><span></span><span></span><span></span>
|
||||
</div>
|
||||
<div class="post-meta">
|
||||
<?php if (!$page->isStatic() && !$url->notFound()) : ?>
|
||||
<span><i class="bi bi-calendar3" aria-hidden="true"></i><?php echo $page->date(); ?></span>
|
||||
<span><i class="bi bi-stopwatch" aria-hidden="true"></i><?php echo $page->readingTime(); ?></span>
|
||||
<?php if ($page->user('nickname')) : ?>
|
||||
<span><i class="bi bi-person" aria-hidden="true"></i><?php echo htmlspecialchars($page->user('nickname'), ENT_QUOTES, 'UTF-8'); ?></span>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<h1><?php echo htmlspecialchars($page->title(), ENT_QUOTES, 'UTF-8'); ?></h1>
|
||||
<?php if ($page->description()) : ?>
|
||||
<p><?php echo htmlspecialchars($page->description(), ENT_QUOTES, 'UTF-8'); ?></p>
|
||||
<?php endif; ?>
|
||||
</header>
|
||||
|
||||
<?php if ($page->coverImage()) : ?>
|
||||
<figure class="page-cover">
|
||||
<img src="<?php echo $page->coverImage(); ?>" alt="<?php echo htmlspecialchars($page->title(), ENT_QUOTES, 'UTF-8'); ?>" loading="lazy">
|
||||
</figure>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="page-content">
|
||||
<?php echo $page->content(); ?>
|
||||
</div>
|
||||
|
||||
<?php $tagsList = $page->tags(true); ?>
|
||||
<?php if (!empty($tagsList) || $page->categoryKey()) : ?>
|
||||
<footer class="page-taxonomy">
|
||||
<?php if ($page->categoryKey()) : ?>
|
||||
<a href="<?php echo $page->categoryPermalink(); ?>"><i class="bi bi-folder2-open" aria-hidden="true"></i><?php echo htmlspecialchars($page->category(), ENT_QUOTES, 'UTF-8'); ?></a>
|
||||
<?php endif; ?>
|
||||
<?php foreach ($tagsList as $tagKey => $tagName) : ?>
|
||||
<a href="<?php echo DOMAIN_TAGS . $tagKey; ?>"><i class="bi bi-tag" aria-hidden="true"></i><?php echo htmlspecialchars($tagName, ENT_QUOTES, 'UTF-8'); ?></a>
|
||||
<?php endforeach; ?>
|
||||
</footer>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!$page->isStatic()) : ?>
|
||||
<a class="back-home" href="<?php echo Theme::siteUrl(); ?>"><i class="bi bi-arrow-left" aria-hidden="true"></i><?php echo $L->get('Back to home'); ?></a>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php Theme::plugins('pageEnd'); ?>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
Reference in New Issue
Block a user