considering tera and minijinja

This commit is contained in:
Per Stark
2024-12-18 18:24:18 +01:00
parent 291c473d00
commit fa6283485c
22 changed files with 1211 additions and 2125 deletions

47
templates/auth/login.html Normal file
View File

@@ -0,0 +1,47 @@
{% block content %}
<div class="max-w-md mx-auto">
<h2 class="text-2xl font-bold text-center mb-8">Sign in to your account</h2>
<form hx-post="/signin" hx-target="#signin-result" hx-indicator="#spinner" class="space-y-6">
<div class="form-control">
<label class="label">
<span class="label-text">Email</span>
</label>
<input type="email" name="email" placeholder="Enter your email" class="input input-bordered w-full" required
pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" />
</div>
<div class="form-control">
<label class="label">
<span class="label-text">Password</span>
</label>
<input type="password" name="password" placeholder="Enter your password" class="input input-bordered w-full"
required />
</div>
<div class="flex items-center justify-between">
<label class="label cursor-pointer">
<input type="checkbox" name="remember" class="checkbox checkbox-primary checkbox-sm mr-2" />
<span class="label-text">Remember me</span>
</label>
<a href="/forgot-password" class="link link-primary text-sm">Forgot password?</a>
</div>
<div class="form-control mt-6">
<button class="btn btn-primary w-full">
Sign in
<span id="spinner" class="loading loading-spinner text-primary htmx-indicator"></span>
</button>
</div>
<div id="signin-result"></div>
<div class="divider">OR</div>
<div class="text-center text-sm">
Don't have an account?
<a href="/signup" class="link link-primary">Create one</a>
</div>
</form>
</div>
{% endblock %}

View File

View File

@@ -0,0 +1,43 @@
{% block content %}
<div class="max-h-full grid place-items-center place-content-center">
<div class="max-w-md mx-auto">
<h2 class="text-2xl font-bold text-center mb-8">Create your account</h2>
<form hx-post="/signup" hx-target="#signup-result" hx-indicator="#spinner" class="" psac-y-e6>
<div class="form-control">
<label class="label">
<span class="label-text">Email</span>
</label>
<input type="email" name="email" placeholder="Enter your email" class="input input-bordered w-full" required
pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" />
</div>
<div class="form-control">
<label class="label">
<span class="label-text">Password</span>
</label>
<input type="password" name="password" placeholder="Create a password" class="input input-bordered w-full"
required minlength="8" />
<input type="password" name="confirm_password" placeholder="Confirm your password"
class="input mt-2 input-bordered w-full" required minlength="8" />
</div>
<div class="form-control mt-6">
<button class="btn btn-primary w-full">
Create Account
<span id="spinner" class="loading loading-spinner text-primary htmx-indicator"></span>
</button>
</div>
<div id="signup-result"></div>
<div class="divider">OR</div>
<div class="text-center text-sm">
Already have an account?
<a href="/signin" class="link link-primary">Sign in</a>
</div>
</form>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}minnet{% endblock %}</title>
<script src="https://unpkg.com/htmx.org@1.9.2"></script>
<link rel="stylesheet" href="assets/style.css">
{% block head %}{% endblock %}
</head>
{% block body %}{% endblock %}
</html>

31
templates/body_base.html Normal file
View File

@@ -0,0 +1,31 @@
{% extends "head_base.html" %}
{% block body %}
<body class="min-h-screen">
<nav class="navbar bg-base-200">
<div class="flex-1">
<a class="btn text-xl border-transparent btn-outline btn-primary" href="/">minnet</a>
</div>
<div class="flex-none">
<ul class="menu menu-horizontal px-1">
<li><a hx-boost="true" href="/signin">Login</a></li>
<li><a hx-boost="true" href="/signup">Sign up</a></li>
<li>
<details>
<summary>Parent</summary>
<ul class="bg-base-100 rounded-t-none p-2">
<li><a>Link 1</a></li>
<li><a>Link 2</a></li>
</ul>
</details>
</li>
</ul>
</div>
</nav>
<main class="container mx-auto px-4 py-8">
{% block content %}{% endblock %}
</main>
</body>
{% endblock %}

View File

@@ -0,0 +1,28 @@
<body class="min-h-screen">
<!-- Navbar -->
<nav class="navbar bg-base-200">
<div class="flex-1">
<a class="btn text-xl border-transparent btn-outline btn-primary" href="/">minnet</a>
</div>
<div class="flex-none">
<ul class="menu menu-horizontal px-1">
<li><a href="/signin">Login</a></li>
<li><a hx-boost="true" href="/signup">Sign up</a></li>
<li>
<details>
<summary>Parent</summary>
<ul class="bg-base-100 rounded-t-none p-2">
<li><a>Link 1</a></li>
<li><a>Link 2</a></li>
</ul>
</details>
</li>
</ul>
</div>
</nav>
<!-- Main Content -->
<main class="container mx-auto px-4 py-8">
{% block content %}{% endblock %}
</main>
</body>

14
templates/head_base.html Normal file
View File

@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}minnet{% endblock %}</title>
<script src="https://unpkg.com/htmx.org@1.9.2"></script>
<link rel="stylesheet" href="assets/style.css">
{% block head %}{% endblock %}
</head>
{% block body %}{% endblock %}
</html>

27
templates/index.html Normal file
View File

@@ -0,0 +1,27 @@
<div class="flex flex-col items-center justify-center min-h-[80vh] space-y-8">
<!-- Hero Section -->
<div class="text-center space-y-4 mb-8">
<h1
class="text-5xl font-bold bg-gradient-to-r from-blue-400 via-purple-500 to-pink-500 text-transparent bg-clip-text">
Welcome to Minnet
</h1>
<p class="text-gray-400 text-xl">
An experiment in creating a second brain
</p>
<p class="text-gray-400 text-lg">
There are {{queue_length}} messages queued for ingression.
</p>
</div>
<!-- Search Bar -->
<div class="w-full max-w-2xl">
<input type="text" placeholder="Enter your search query" class="input input-bordered w-full" name="query"
hx-get="/search" hx-target="#search-results" />
</div>
<!-- Search Results -->
<div id="search-results" class="w-full max-w-2xl mt-4">
<!-- Results will be populated here by HTMX -->
</div>
</div>

View File

@@ -0,0 +1,9 @@
<div class="border-">
<div class="chat chat-start">
<div class="chat-bubble">
{{result}}
<hr />
{{references}}
</div>
</div>
</div>