Adding start of the /now page
This commit is contained in:
parent
b4d33e213d
commit
65b5ec1978
28 changed files with 2413 additions and 36 deletions
39
layouts/partials/elements/bookshelf.html
Normal file
39
layouts/partials/elements/bookshelf.html
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
{{ $items := .items | default (slice) }} {{ $shelves := .shelves | default 4 }}
|
||||
{{ $width := .width | default "300px" }} {{ $height := .height | default "400px"
|
||||
}} {{ $type := .type | default "books" }} {{ $title := .title | default "" }}
|
||||
|
||||
<div class="bookshelf">
|
||||
{{ if $title }}
|
||||
<div class="bookshelf-title">{{ $title }}</div>
|
||||
{{ end }} {{ range seq $shelves }}
|
||||
<div class="shelf">
|
||||
<div class="shelf-board"></div>
|
||||
<div class="shelf-items">
|
||||
{{ if $items }} {{ range $items }}
|
||||
<div class="shelf-item item {{ if .current }}current{{ end }}">
|
||||
{{ if .image }} {{ $img := resources.Get .image }} {{ if $img }} {{
|
||||
$resized := $img.Resize "100x120" }}
|
||||
<img
|
||||
src="{{ $resized.RelPermalink }}"
|
||||
alt="{{ .title }}"
|
||||
class="dvd-cover"
|
||||
/>
|
||||
{{ end }} {{ end }} {{ if .current }}
|
||||
<div class="current-indicator">
|
||||
<div class="current-glow"></div>
|
||||
<div class="current-label">
|
||||
{{ if eq $type "dvds" }}WATCHING{{ else }}READING{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }} {{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
<div class="bookshelf-frame"></div>
|
||||
<div class="bookshelf-legs">
|
||||
<div class="bookshelf-leg leg-left"></div>
|
||||
<div class="bookshelf-leg leg-right"></div>
|
||||
</div>
|
||||
</div>
|
||||
142
layouts/partials/elements/monitor-screen.html
Normal file
142
layouts/partials/elements/monitor-screen.html
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
{{ $width := .width | default "400px" }}
|
||||
{{ $height := .height | default "350px" }}
|
||||
{{ $type := .type | default "metrics" }}
|
||||
{{ $title := .title | default "System Monitor" }}
|
||||
{{ $color := .color | default "green" }}
|
||||
|
||||
<div class="monitor-screen" style="width: {{ $width }}; height: {{ $height }};">
|
||||
<div class="monitor-bezel monitor-bezel-{{ $color }}">
|
||||
<div class="monitor-display monitor-display-{{ $color }} crt">
|
||||
<div class="monitor-content screen-display">
|
||||
|
||||
{{ if eq $type "metrics" }}
|
||||
<!-- System Metrics Display -->
|
||||
<div class="metrics-header">{{ $title }}</div>
|
||||
<div class="metrics-grid">
|
||||
<div class="metric-item">
|
||||
<div class="metric-label">CPU</div>
|
||||
<div class="metric-bar">
|
||||
<div class="metric-fill metric-fill-animated" style="width: 67%; animation-delay: 0s;"></div>
|
||||
</div>
|
||||
<div class="metric-value">67%</div>
|
||||
</div>
|
||||
<div class="metric-item">
|
||||
<div class="metric-label">RAM</div>
|
||||
<div class="metric-bar">
|
||||
<div class="metric-fill metric-fill-animated" style="width: 82%; animation-delay: 0.2s;"></div>
|
||||
</div>
|
||||
<div class="metric-value">82%</div>
|
||||
</div>
|
||||
<div class="metric-item">
|
||||
<div class="metric-label">DISK</div>
|
||||
<div class="metric-bar">
|
||||
<div class="metric-fill metric-fill-animated" style="width: 45%; animation-delay: 0.4s;"></div>
|
||||
</div>
|
||||
<div class="metric-value">45%</div>
|
||||
</div>
|
||||
<div class="metric-item">
|
||||
<div class="metric-label">NET</div>
|
||||
<div class="metric-bar">
|
||||
<div class="metric-fill metric-fill-animated" style="width: 34%; animation-delay: 0.6s;"></div>
|
||||
</div>
|
||||
<div class="metric-value">34%</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ else if eq $type "graph" }}
|
||||
<!-- Live Graph Display -->
|
||||
<div class="metrics-header">{{ $title }}</div>
|
||||
<div class="graph-container">
|
||||
<div class="graph-wrapper">
|
||||
<!-- First instance of the graph -->
|
||||
<svg class="graph-svg graph-instance" viewBox="0 0 300 150" preserveAspectRatio="none">
|
||||
<polyline class="graph-line graph-line-{{ $color }}"
|
||||
points="0,80 10,75 20,85 30,78 40,65 50,70 60,60 70,55 80,65 90,58 100,45 110,50 120,40 130,35 140,45 150,38 160,25 170,30 180,20 190,15 200,25 210,18 220,12 230,20 240,15 250,25 260,22 270,28 280,25 290,35 300,80"
|
||||
fill="none" />
|
||||
<polyline class="graph-fill graph-fill-{{ $color }}"
|
||||
points="0,80 10,75 20,85 30,78 40,65 50,70 60,60 70,55 80,65 90,58 100,45 110,50 120,40 130,35 140,45 150,38 160,25 170,30 180,20 190,15 200,25 210,18 220,12 230,20 240,15 250,25 260,22 270,28 280,25 290,35 300,80 300,150 0,150"
|
||||
/>
|
||||
</svg>
|
||||
<!-- Second instance (duplicate for seamless loop) -->
|
||||
<svg class="graph-svg graph-instance" viewBox="0 0 300 150" preserveAspectRatio="none">
|
||||
<polyline class="graph-line graph-line-{{ $color }}"
|
||||
points="0,80 10,75 20,85 30,78 40,65 50,70 60,60 70,55 80,65 90,58 100,45 110,50 120,40 130,35 140,45 150,38 160,25 170,30 180,20 190,15 200,25 210,18 220,12 230,20 240,15 250,25 260,22 270,28 280,25 290,35 300,80"
|
||||
fill="none" />
|
||||
<polyline class="graph-fill graph-fill-{{ $color }}"
|
||||
points="0,80 10,75 20,85 30,78 40,65 50,70 60,60 70,55 80,65 90,58 100,45 110,50 120,40 130,35 140,45 150,38 160,25 170,30 180,20 190,15 200,25 210,18 220,12 230,20 240,15 250,25 260,22 270,28 280,25 290,35 300,80 300,150 0,150"
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="graph-grid"></div>
|
||||
</div>
|
||||
<div class="graph-legend">
|
||||
<span class="graph-legend-item">▲ Throughput: 2.4 GB/s</span>
|
||||
</div>
|
||||
|
||||
{{ else if eq $type "terminal" }}
|
||||
<!-- Terminal Output -->
|
||||
<div class="terminal-output">
|
||||
<div class="terminal-line">$ systemctl status</div>
|
||||
<div class="terminal-line">● {{ $title }}</div>
|
||||
<div class="terminal-line"> Loaded: loaded (/etc/systemd/system/)</div>
|
||||
<div class="terminal-line"> Active: <span class="status-active">active (running)</span></div>
|
||||
<div class="terminal-line"> Memory: 2.4G</div>
|
||||
<div class="terminal-line"> CPU: 12.5%</div>
|
||||
<div class="terminal-line terminal-cursor">$<span class="cursor-blink">_</span></div>
|
||||
</div>
|
||||
|
||||
{{ else if eq $type "logs" }}
|
||||
<!-- Scrolling Logs -->
|
||||
<div class="metrics-header">{{ $title }}</div>
|
||||
<div class="log-container">
|
||||
<div class="log-line">[OK] Started Network Manager</div>
|
||||
<div class="log-line">[OK] Started User Login Management</div>
|
||||
<div class="log-line log-warning">[WARN] High memory usage detected</div>
|
||||
<div class="log-line">[INFO] Service nginx.service reloaded</div>
|
||||
<div class="log-line">[OK] Mounted /mnt/storage</div>
|
||||
<div class="log-line log-success">[OK] System backup completed</div>
|
||||
<div class="log-line">[INFO] Connection established</div>
|
||||
<div class="log-line">[OK] Started Docker Engine</div>
|
||||
<div class="log-line log-error">[ERR] Failed to resolve hostname</div>
|
||||
<div class="log-line">[INFO] Firewall rules updated</div>
|
||||
</div>
|
||||
|
||||
{{ else if eq $type "network" }}
|
||||
<!-- Network Traffic -->
|
||||
<div class="metrics-header">{{ $title }}</div>
|
||||
<div class="network-stats">
|
||||
<div class="network-row">
|
||||
<div class="network-label">↓ RX</div>
|
||||
<div class="network-graph">
|
||||
{{ range seq 20 }}
|
||||
<div class="network-bar network-bar-rx"></div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="network-value">24.3 MB/s</div>
|
||||
</div>
|
||||
<div class="network-row">
|
||||
<div class="network-label">↑ TX</div>
|
||||
<div class="network-graph">
|
||||
{{ range seq 20 }}
|
||||
<div class="network-bar network-bar-tx"></div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="network-value">12.8 MB/s</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ end }}
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Screen scanlines effect -->
|
||||
<div class="monitor-scanlines"></div>
|
||||
</div>
|
||||
|
||||
<!-- Monitor power LED -->
|
||||
<div class="monitor-power-led monitor-led-{{ $color }}"></div>
|
||||
</div>
|
||||
|
||||
<!-- Monitor stand -->
|
||||
<div class="monitor-stand"></div>
|
||||
</div>
|
||||
116
layouts/partials/elements/server-rack.html
Normal file
116
layouts/partials/elements/server-rack.html
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
{{ $height := .height | default "600px" }}
|
||||
{{ $title := .title | default "" }}
|
||||
{{ $units := .units | default (slice) }}
|
||||
|
||||
<div class="server-rack" style="height: {{ $height }};">
|
||||
<div class="rack-frame">
|
||||
{{ if $title }}
|
||||
<div class="rack-label">{{ $title }}</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if $units }}
|
||||
{{ range $units }}
|
||||
{{ if eq .type "server" }}
|
||||
<div class="server-unit {{ if .size }}server-{{ .size }}u{{ end }}">
|
||||
<div class="server-front-panel">
|
||||
<div class="server-led led-{{ .led1 | default "green" }}"></div>
|
||||
<div class="server-led led-{{ .led2 | default "amber" }}"></div>
|
||||
{{ if .label }}
|
||||
<div class="server-label">{{ .label }}</div>
|
||||
{{ end }}
|
||||
<div class="server-drive-bays">
|
||||
{{ range seq (.drives | default 2) }}
|
||||
<div class="drive-bay"></div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="server-vents"></div>
|
||||
</div>
|
||||
</div>
|
||||
{{ else if eq .type "switch" }}
|
||||
<div class="network-switch {{ if .size }}server-{{ .size }}u{{ end }}">
|
||||
<div class="switch-front-panel">
|
||||
{{ if .label }}
|
||||
<div class="switch-label">{{ .label }}</div>
|
||||
{{ end }}
|
||||
<div class="switch-ports">
|
||||
{{ range seq (.ports | default 24) }}
|
||||
<div class="switch-port {{ if mod . 2 }}active{{ end }}"></div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="switch-leds">
|
||||
<div class="switch-status-led led-green"></div>
|
||||
<div class="switch-status-led led-green"></div>
|
||||
<div class="switch-status-led led-amber"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ else if eq .type "patch-panel" }}
|
||||
<div class="patch-panel {{ if .size }}server-{{ .size }}u{{ end }}">
|
||||
<div class="patch-front">
|
||||
{{ if .label }}
|
||||
<div class="patch-label">{{ .label }}</div>
|
||||
{{ end }}
|
||||
<div class="patch-ports">
|
||||
{{ range seq (.ports | default 24) }}
|
||||
<div class="patch-port"></div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ else if eq .type "ups" }}
|
||||
<div class="ups-unit {{ if .size }}server-{{ .size }}u{{ end }}">
|
||||
<div class="ups-front-panel">
|
||||
{{ if .label }}
|
||||
<div class="ups-label">{{ .label }}</div>
|
||||
{{ end }}
|
||||
<div class="ups-display">
|
||||
<div class="ups-lcd">
|
||||
<span style="font-size: 10px;">{{ .capacity | default "100" }}%</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ups-indicators">
|
||||
<div class="ups-led led-green"></div>
|
||||
<div class="ups-led led-green"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ else if eq .type "storage" }}
|
||||
<div class="storage-unit {{ if .size }}server-{{ .size }}u{{ end }}">
|
||||
<div class="storage-front-panel">
|
||||
{{ if .label }}
|
||||
<div class="storage-label">{{ .label }}</div>
|
||||
{{ end }}
|
||||
<div class="storage-drive-grid">
|
||||
{{ range seq (.drives | default 12) }}
|
||||
<div class="storage-drive">
|
||||
<div class="storage-drive-led led-{{ if mod . 3 }}green{{ else }}amber{{ end }}"></div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ else if eq .type "blank" }}
|
||||
<div class="blank-panel {{ if .size }}server-{{ .size }}u{{ end }}"></div>
|
||||
{{ else if eq .type "spacer" }}
|
||||
<div class="rack-spacer {{ if .size }}server-{{ .size }}u{{ end }}"></div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<!-- Default configuration if no units specified -->
|
||||
{{ range seq 8 }}
|
||||
<div class="server-unit">
|
||||
<div class="server-front-panel">
|
||||
<div class="server-led led-green"></div>
|
||||
<div class="server-led led-amber"></div>
|
||||
<div class="server-drive-bays">
|
||||
<div class="drive-bay"></div>
|
||||
<div class="drive-bay"></div>
|
||||
</div>
|
||||
<div class="server-vents"></div>
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="rack-legs"></div>
|
||||
</div>
|
||||
23
layouts/partials/elements/whiteboard.html
Normal file
23
layouts/partials/elements/whiteboard.html
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{{ $file := .file }}
|
||||
{{ $context := .context }}
|
||||
{{ with $context.Resources.GetMatch $file }}
|
||||
<div class="whiteboard" style="width: {{ .Params.width }}; height: {{ .Params.height }}">
|
||||
<div class="whiteboard-surface">
|
||||
<div class="whiteboard-title">{{ .Title }}</div>
|
||||
<div class="whiteboard-content">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
{{ if .Params.sticky_notes }}
|
||||
<div class="wb-notes">
|
||||
{{ range $index, $note := .Params.sticky_notes }}
|
||||
{{ if lt $index 3 }}
|
||||
<div class="wb-note wb-note-{{ $note.color | default "yellow" }}">
|
||||
<div class="wb-note-content">{{ $note.text }}</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
Loading…
Add table
Add a link
Reference in a new issue