add static routes including unpoly/ dasyui/ tailwind

This commit is contained in:
2025-01-11 20:27:32 +01:00
parent ddacf8e5aa
commit 1f421163cd
8 changed files with 122 additions and 82 deletions

View File

@@ -5,7 +5,7 @@ DB_USER="crow"
DB_PASS="4LlKpnQ2RZPzL13BSpkW4k" DB_PASS="4LlKpnQ2RZPzL13BSpkW4k"
go-run: go-run:
cd src; DB_USER=$(DB_USER) DB_PASS=$(DB_PASS) DB_NAME=$(DB_NAME) DB_HOST=$(DB_HOST) go run cmd/frontend/* cd src; DB_USER=$(DB_USER) DB_PASS=$(DB_PASS) DB_NAME=$(DB_NAME) DB_HOST=$(DB_HOST) go run cmd/frontend/main.go
docker-push: docker-build docker-push: docker-build
docker push git.kohout-dev.de/crowsnest/crowsnest:latest docker push git.kohout-dev.de/crowsnest/crowsnest:latest

20
src/assets/static/daisyui.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,75 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dark Mode Article Previews</title>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
background-color: #121212;
color: #ffffff;
}
.article-preview {
background-color: #1e1e1e;
border: 1px solid #2c2c2c;
}
a {
color: #0d6efd;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
p {
color: white
}
h5 {
color: white
}
</style>
</head>
<body>
<div class="container py-5">
<h1 class="text-center mb-auto">Article Previews</h1>
<div class="column">
<!-- Article 1 -->
<div class="col-md-6 mb-4">
<div class="card article-preview p-3">
<h5 class="card-title">Article Title 1</h5>
<p class="card-text">This is a short preview of the article content. It provides a quick summary to entice readers to click and read more.</p>
<a href="#" class="stretched-link">Read More</a>
</div>
</div>
<!-- Article 2 -->
<div class="col-md-6 mb-4">
<div class="card article-preview p-3">
<h5 class="card-title">Article Title 2</h5>
<p class="card-text">This is another preview of an article. It gives a brief overview to encourage users to explore further.</p>
<a href="#" class="stretched-link">Read More</a>
</div>
</div>
<!-- Article 3 -->
<div class="col-md-6 mb-4">
<div class="card article-preview p-3">
<h5 class="card-title">Article Title 3</h5>
<p class="card-text">A concise description of the article to pique interest and direct readers to the full content.</p>
<a href="#" class="stretched-link">Read More</a>
</div>
</div>
</div>
</div>
<!-- Bootstrap JS Bundle -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

83
src/assets/static/tailwindcss.min.js vendored Normal file

File diff suppressed because one or more lines are too long

6
src/assets/static/unpoly.min.css vendored Normal file
View File

@@ -0,0 +1,6 @@
[hidden][hidden]{display:none !important}
up-wrapper{display:inline-block}
up-bounds{position:absolute}.up-focus-hidden:focus-visible{outline-color:rgba(0,0,0,0) !important;outline-style:none !important}body.up-scrollbar-away{padding-right:calc(var(--up-scrollbar-width) + var(--up-original-padding-right)) !important}body.up-scrollbar-away,html:has(>body.up-scrollbar-away){overflow-y:hidden !important}body.up-scrollbar-away .up-scrollbar-away{right:calc(var(--up-scrollbar-width) + var(--up-original-right)) !important}
.up-request-loader{display:none}up-progress-bar{position:fixed;top:0;left:0;z-index:999999999;height:3px;background-color:#007bff}
up-focus-trap{position:fixed;top:0;left:0;width:0;height:0}up-cover-viewport,up-drawer-viewport,up-modal-viewport,up-drawer-backdrop,up-modal-backdrop,up-cover,up-drawer,up-modal{top:0;left:0;bottom:0;right:0}up-drawer-box,up-modal-box{box-shadow:0 0 10px 1px rgba(0,0,0,.3)}up-popup{box-shadow:0 0 4px rgba(0,0,0,.3)}up-popup:focus,up-cover-box:focus,up-drawer-box:focus,up-modal-box:focus,up-cover:focus,up-drawer:focus,up-modal:focus,up-popup:focus-visible,up-cover-box:focus-visible,up-drawer-box:focus-visible,up-modal-box:focus-visible,up-cover:focus-visible,up-drawer:focus-visible,up-modal:focus-visible{outline:none}up-cover,up-drawer,up-modal{z-index:2000;position:fixed}up-drawer-backdrop,up-modal-backdrop{position:absolute;background:rgba(0,0,0,.4)}up-cover-viewport,up-drawer-viewport,up-modal-viewport{position:absolute;overflow-y:scroll;overflow-x:hidden;overscroll-behavior:contain;display:flex;align-items:flex-start;justify-content:center}up-popup,up-cover-box,up-drawer-box,up-modal-box{position:relative;box-sizing:border-box;max-width:100%;background-color:#fff;padding:20px;overflow-x:hidden}up-popup-content,up-cover-content,up-drawer-content,up-modal-content{display:block}up-popup{z-index:1000}up-popup-dismiss,up-cover-dismiss,up-drawer-dismiss,up-modal-dismiss{color:#888;position:absolute;top:10px;right:10px;font-size:1.7rem;line-height:.5;cursor:pointer}up-modal[nesting="0"] up-modal-viewport{padding:25px 15px}up-modal[nesting="1"] up-modal-viewport{padding:50px 30px}up-modal[nesting="2"] up-modal-viewport{padding:75px 45px}up-modal[nesting="3"] up-modal-viewport{padding:100px 60px}up-modal[nesting="4"] up-modal-viewport{padding:125px 75px}up-modal[size=small] up-modal-box{width:350px}up-modal[size=medium] up-modal-box{width:650px}up-modal[size=large] up-modal-box{width:1000px}up-modal[size=grow] up-modal-box{width:auto}up-modal[size=full] up-modal-box{width:100%}up-drawer-viewport{justify-content:flex-start}up-drawer[position=right] up-drawer-viewport{justify-content:flex-end}up-drawer-box{min-height:100vh}up-drawer[size=small] up-drawer-box{width:150px}up-drawer[size=medium] up-drawer-box{width:340px}up-drawer[size=large] up-drawer-box{width:600px}up-drawer[size=grow] up-drawer-box{width:auto}up-drawer[size=full] up-drawer-box{width:100%}up-cover-box{width:100%;min-height:100vh;padding:0}up-popup{padding:15px;text-align:left}up-popup[size=small]{width:180px}up-popup[size=medium]{width:300px}up-popup[size=large]{width:550px}up-popup[size=grow] up-popup{width:auto}up-popup[size=full] up-popup{width:100%}
[up-clickable][role=link]{cursor:pointer}[up-expand]:not([role]),[up-expand][role=link]{cursor:pointer}

1
src/assets/static/unpoly.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +1,17 @@
{{ define "base" }} {{ define "base" }}
<!DOCTYPE html> <!DOCTYPE html>
<html lang="de" data-theme="dark"> <html lang="de" data-theme="dark">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/unpoly@3.9.5/unpoly.min.css">
<link href="https://cdn.jsdelivr.net/npm/daisyui@4.12.23/dist/full.min.css" rel="stylesheet" type="text/css" />
{{/* Unpoly */}}
<link rel="stylesheet" type="text/css" href="/static/unpoly.min.css" />
<script src="/static/unpoly.min.js"></script>
{{/* DasyUi */}}
<link rel="stylesheet" type="text/css" href="/static/daisyui.min.css" />
<script src="/static/tailwindcss.min.js"></script>
</head>
<body> <body>
<nav class="fixed top-0 z-50 w-full p-4"> <nav class="fixed top-0 z-50 w-full p-4">
<div class="navbar bg-base-300 rounded-box drop-shadow-md"> <div class="navbar bg-base-300 rounded-box drop-shadow-md">
@@ -52,7 +59,6 @@
{{ template "content" . }} {{ template "content" . }}
</div> </div>
<script src="https://cdn.jsdelivr.net/npm/unpoly@3.9.5/unpoly.min.js"></script>
<script src="https://cdn.tailwindcss.com"></script> <script src="https://cdn.tailwindcss.com"></script>
<script> <script>
up.link.config.followSelectors.push('a[href]') up.link.config.followSelectors.push('a[href]')

View File

@@ -25,8 +25,7 @@ func (app *App) Routes() http.Handler {
mux.Handle("POST /up/search", http.HandlerFunc(app.UpSearch)) mux.Handle("POST /up/search", http.HandlerFunc(app.UpSearch))
// serve files from the "static" directory // serve files from the "static" directory
fs := http.FileServer(http.Dir("assets/static")) mux.Handle("GET /static/", http.StripPrefix("/static/", http.FileServer(http.Dir("./assets/static"))))
mux.Handle("GET /static/", http.StripPrefix("/", fs))
return mux return mux
} }