Compare commits
2 Commits
5000bfc0fe
...
bfddca6495
Author | SHA1 | Date | |
---|---|---|---|
|
bfddca6495 | ||
|
1ebc4c4ec2 |
24
README.md
24
README.md
@@ -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
|
||||||
|
10
index.html
10
index.html
@@ -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>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user