mirror of
https://github.com/sissbruecker/linkding.git
synced 2025-08-14 05:59:29 +02:00

* start converting * small fixes * reorganize theme files * cleanup search bar * increase spacing * small tweaks * fix select styles in Chrome * cleanup menus * improve button icons * restore badges * remove unused classes * restore some overrides * restore bookmark form * add summary outline * avoid layout shifts * restore bookmark details * increase border radius for modals * improve details modal * restore reader mode * restore settings * cleanup variables * start with dark theme * more dark theme... * more light theme... * more dark theme... * add postcss build * remove sass processor * update docker build * fix alt color * remove endless symbol * fix tests * update assets * remove sass files * fix docker build * cleanup spacing * improve theme * update test scripts * update CI workflow * fix test
135 lines
6.0 KiB
HTML
135 lines
6.0 KiB
HTML
{% load static %}
|
|
|
|
<!DOCTYPE html>
|
|
{# Use data attributes as storage for access in static scripts #}
|
|
<html lang="en" data-api-base-url="{% url 'bookmarks:api-root' %}">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<link rel="icon" href="{% static 'favicon.ico' %}" sizes="48x48">
|
|
<link rel="icon" href="{% static 'favicon.svg' %}" sizes="any" type="image/svg+xml">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="{% static 'apple-touch-icon.png' %}">
|
|
<link rel="mask-icon" href="{% static 'safari-pinned-tab.svg' %}" color="#5856e0">
|
|
<link rel="manifest" href="{% url 'bookmarks:manifest' %}">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimal-ui">
|
|
<meta name="description" content="Self-hosted bookmark service">
|
|
<meta name="robots" content="index,follow">
|
|
<meta name="author" content="Sascha Ißbrücker">
|
|
<title>linkding</title>
|
|
{# Include specific theme variant based on user profile setting #}
|
|
{% if request.user_profile.theme == 'light' %}
|
|
<link href="{% static 'theme-light.css' %}?v={{ app_version }}" rel="stylesheet" type="text/css"/>
|
|
<meta name="theme-color" content="#5856e0">
|
|
{% elif request.user_profile.theme == 'dark' %}
|
|
<link href="{% static 'theme-dark.css' %}?v={{ app_version }}" rel="stylesheet" type="text/css"/>
|
|
<meta name="theme-color" content="#161822">
|
|
{% else %}
|
|
{# Use auto theme as fallback #}
|
|
<link href="{% static 'theme-dark.css' %}?v={{ app_version }}" rel="stylesheet" type="text/css"
|
|
media="(prefers-color-scheme: dark)"/>
|
|
<link href="{% static 'theme-light.css' %}?v={{ app_version }}" rel="stylesheet" type="text/css"
|
|
media="(prefers-color-scheme: light)"/>
|
|
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#161822">
|
|
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#5856e0">
|
|
{% endif %}
|
|
{% if request.user_profile.custom_css %}
|
|
<style>{{ request.user_profile.custom_css }}</style>
|
|
{% endif %}
|
|
</head>
|
|
<body ld-global-shortcuts>
|
|
|
|
<div class="d-none">
|
|
<svg xmlns="http://www.w3.org/2000/svg">
|
|
<symbol id="ld-icon-unread" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
|
|
stroke-linecap="round" stroke-linejoin="round">
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
<path d="M3 19a9 9 0 0 1 9 0a9 9 0 0 1 9 0"></path>
|
|
<path d="M3 6a9 9 0 0 1 9 0a9 9 0 0 1 9 0"></path>
|
|
<path d="M3 6l0 13"></path>
|
|
<path d="M12 6l0 13"></path>
|
|
<path d="M21 6l0 13"></path>
|
|
</symbol>
|
|
</svg>
|
|
<svg xmlns="http://www.w3.org/2000/svg">
|
|
<symbol id="ld-icon-read" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
|
|
stroke-linecap="round" stroke-linejoin="round">
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
<path d="M3 19a9 9 0 0 1 9 0a9 9 0 0 1 5.899 -1.096"></path>
|
|
<path d="M3 6a9 9 0 0 1 2.114 -.884m3.8 -.21c1.07 .17 2.116 .534 3.086 1.094a9 9 0 0 1 9 0"></path>
|
|
<path d="M3 6v13"></path>
|
|
<path d="M12 6v2m0 4v7"></path>
|
|
<path d="M21 6v11"></path>
|
|
<path d="M3 3l18 18"></path>
|
|
</symbol>
|
|
</svg>
|
|
<svg xmlns="http://www.w3.org/2000/svg">
|
|
<symbol id="ld-icon-share" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
|
|
stroke-linecap="round" stroke-linejoin="round">
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
<path d="M6 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
|
|
<path d="M18 6m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
|
|
<path d="M18 18m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
|
|
<path d="M8.7 10.7l6.6 -3.4"></path>
|
|
<path d="M8.7 13.3l6.6 3.4"></path>
|
|
</symbol>
|
|
</svg>
|
|
<svg xmlns="http://www.w3.org/2000/svg">
|
|
<symbol id="ld-icon-unshare" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
|
|
stroke-linecap="round" stroke-linejoin="round">
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
<path d="M6 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
|
|
<path d="M18 6m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
|
|
<path d="M15.861 15.896a3 3 0 0 0 4.265 4.22m.578 -3.417a3.012 3.012 0 0 0 -1.507 -1.45"></path>
|
|
<path d="M8.7 10.7l1.336 -.688m2.624 -1.352l2.64 -1.36"></path>
|
|
<path d="M8.7 13.3l6.6 3.4"></path>
|
|
<path d="M3 3l18 18"></path>
|
|
</symbol>
|
|
</svg>
|
|
<svg xmlns="http://www.w3.org/2000/svg">
|
|
<symbol id="ld-icon-note" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none"
|
|
stroke-linecap="round" stroke-linejoin="round">
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
|
<path d="M5 3m0 2a2 2 0 0 1 2 -2h10a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-10a2 2 0 0 1 -2 -2z"></path>
|
|
<path d="M9 7l6 0"></path>
|
|
<path d="M9 11l6 0"></path>
|
|
<path d="M9 15l4 0"></path>
|
|
</symbol>
|
|
</svg>
|
|
</div>
|
|
|
|
<header class="container">
|
|
{% if has_toasts %}
|
|
<div class="toasts">
|
|
<form action="{% url 'bookmarks:toasts.acknowledge' %}?return_url={{ request.path | urlencode }}" method="post">
|
|
{% csrf_token %}
|
|
{% for toast in toast_messages %}
|
|
<div class="toast d-flex">
|
|
{{ toast.message }}
|
|
<button type="submit" name="toast" value="{{ toast.id }}" class="btn btn-clear"></button>
|
|
</div>
|
|
{% endfor %}
|
|
</form>
|
|
</div>
|
|
{% endif %}
|
|
<div class="d-flex justify-between">
|
|
<a href="{% url 'bookmarks:root' %}" class="d-flex align-center">
|
|
<img class="logo" src="{% static 'logo.png' %}" alt="Application logo">
|
|
<h1>LINKDING</h1>
|
|
</a>
|
|
{% if request.user.is_authenticated %}
|
|
{# Only show nav items menu when logged in #}
|
|
{% include 'bookmarks/nav_menu.html' %}
|
|
{% else %}
|
|
{# Otherwise show login link #}
|
|
<a href="{% url 'login' %}" class="btn btn-link">Login</a>
|
|
{% endif %}
|
|
</div>
|
|
</header>
|
|
<div class="content container">
|
|
{% block content %}
|
|
{% endblock %}
|
|
</div>
|
|
<script src="{% static "bundle.js" %}?v={{ app_version }}"></script>
|
|
</body>
|
|
</html>
|