Compare commits

...

2 Commits

Author SHA1 Message Date
Markus Busche
bfddca6495 Reference to alster.space 2025-07-03 11:37:28 +02:00
Markus Busche
1ebc4c4ec2 Change title 2025-07-03 11:30:53 +02:00
2 changed files with 18 additions and 16 deletions

View File

@@ -2,18 +2,20 @@
Ein einfacher QR-Code-Generator, der vollständig im Browser läuft. Keine Daten werden an externe Server gesendet. Ein einfacher QR-Code-Generator, der vollständig im Browser läuft. Keine Daten werden an externe Server gesendet.
Dieses Projekt basiert auf dem Code von https://qr.alster.space/. Er wurde um verschiedene praktische Funktionen erweitert.
## Features ## Features
- Vollständig clientseitig (keine Server-Kommunikation) - Vollständig clientseitig (keine Server-Kommunikation)
- URL-Parameter für alle Einstellungen - URL-Parameter für alle Einstellungen
- Anpassbare Größen und Farben - Anpassbare Größen und Farben
- Verschiedene Fehlerkorrektur-Level - Verschiedene Fehlerkorrektur-Level
- Download-Funktion - Download-Funktion
- Responsive Design - Responsive Design
- **WiFi QR-Code Unterstützung mit eigener UI** - WiFi QR-Code Unterstützung mit eigener UI
- **Dynamische Klartext-Anzeige** - Dynamische Klartext-Anzeige
- **Automatische QR-Code-Generierung** - Automatische QR-Code-Generierung
- **Sicher gegen XSS (Content Security Policy, validierte Eingaben, kein Inline-JS)** - Sicher gegen XSS (Content Security Policy, validierte Eingaben, kein Inline-JS)
## Docker Setup ## Docker Setup
@@ -27,7 +29,7 @@ docker-compose up -d
docker-compose down docker-compose down
``` ```
### Mit Docker direkt ### Docker build/run
```bash ```bash
# Image bauen # Image bauen

View File

@@ -1,10 +1,10 @@
<!DOCTYPE html> <!DOCTYPE html>
<!-- saved from url=(0024)https://qr.alster.space/ -->
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; object-src 'none';"> <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; object-src 'none';">
<title>Just a QR Code</title> <title>QR ohne Schnickschnack</title>
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' fill='white' rx='6' ry='6'/><rect x='4' y='4' width='8' height='8' fill='black'/><rect x='20' y='4' width='8' height='8' fill='black'/><rect x='4' y='20' width='8' height='8' fill='black'/><rect x='14' y='14' width='4' height='4' fill='black'/></svg>"> <link rel="icon" type="image/svg+xml" href="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' fill='white' rx='6' ry='6'/><rect x='4' y='4' width='8' height='8' fill='black'/><rect x='20' y='4' width='8' height='8' fill='black'/><rect x='4' y='20' width='8' height='8' fill='black'/><rect x='14' y='14' width='4' height='4' fill='black'/></svg>">
<script src="./assets/qrious.min.js"></script> <script src="./assets/qrious.min.js"></script>
<script src="./main.js"></script> <script src="./main.js"></script>
@@ -299,13 +299,13 @@
</head> </head>
<body> <body>
<div class="container"> <div class="container">
<h1 id="title">Just a QR Code</h1> <h1 id="title">QR ohne Schnickschnack</h1>
<button id="info-button" class="info-button" aria-label="Information">?</button> <button id="info-button" class="info-button" aria-label="Information">?</button>
<div class="input-section"> <div class="input-section">
<label for="text">Text oder URL:</label> <label for="text">Text oder URL:</label>
<div class="text-input-wrapper"> <div class="text-input-wrapper">
<input type="text" id="text" placeholder="https://example.com" value="" autofocus=""> <input type="text" id="text" placeholder="https://qr.medisoftware.org" value="" autofocus="">
<button type="button" id="clear-text" class="clear-button" aria-label="Clear text" style="display: none;"></button> <button type="button" id="clear-text" class="clear-button" aria-label="Clear text" style="display: none;"></button>
</div> </div>
@@ -380,7 +380,7 @@
<p>Not today.</p> <p>Not today.</p>
<p>Rather than bemoan the fact that there's no easy way to get just a QR code without the low-key parasitic monetization, I found a library (qrious) and put together just enough Javascript code to generate QR codes in the browser. No ads, no trackers, no sending your data to someone else's server for who-knows-what-reason.</p> <p>Rather than bemoan the fact that there's no easy way to get QR ohne Schnickschnak without the low-key parasitic monetization, I found a library (qrious) and put together just enough Javascript code to generate QR codes in the browser. No ads, no trackers, no sending your data to someone else's server for who-knows-what-reason.</p>
<p>Go ahead and inspect the page source. Save it to your computer, copy it, remix it, whatever you want.</p> <p>Go ahead and inspect the page source. Save it to your computer, copy it, remix it, whatever you want.</p>