docs(release): Dokumentation ins Englische übersetzen und v1.11.1 Docs
- README, CHANGELOG, DISCLAIMER, SECURITY auf Englisch übersetzen - Projekt-Docs (architecture, patterns, widget-schema, style-guide) übersetzen - CODEOWNERS für Master-Branch-Schutz hinzufügen - release.yml auf Englisch übersetzen - STYLE_GUIDE von src/css/ nach docs/ verschieben
This commit is contained in:
@@ -4,31 +4,31 @@
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
[](https://ko-fi.com/hellionmedia)
|
||||
|
||||
**Kein Account. Kein Abo. Keine Cloud. Alle Daten bleiben 100% lokal.**
|
||||
**No account. No subscription. No cloud. All data stays 100% local.**
|
||||
|
||||
Ein persönlicher Bookmark-Dashboard als Browser-Extension.
|
||||
Boards, Drag & Drop, 8 Themes, Suchleiste, Sticky Notes — alles im Browser, alles offline.
|
||||
Keine externe Datenübertragung, keine Tracker, keine Analytics, keine Werbung.
|
||||
A personal bookmark dashboard as a browser extension.
|
||||
Boards, drag & drop, 11 themes, search bar, widget system with notes, calculator, timer and more. All in the browser, all offline.
|
||||
No external data transmission, no trackers, no analytics, no ads.
|
||||
|
||||
Entwickelt von **[Hellion Online Media — Florian Wathling](https://hellion-media.de)** — JonKazama-Hellion.
|
||||
Developed by **[Hellion Online Media — Florian Wathling](https://hellion-media.de)** — JonKazama-Hellion.
|
||||
|
||||
---
|
||||
|
||||
## Was diese Extension NICHT ist
|
||||
## What this extension is NOT
|
||||
|
||||
- Kein Cloud-Sync und kein Account-System
|
||||
- Keine Datenerfassung oder Telemetrie
|
||||
- Keine Drittanbieter-Abhängigkeiten oder Build-Tools
|
||||
- Kein Netzwerkverkehr außer Favicon-Abruf (Google Favicons API)
|
||||
- No cloud sync and no account system
|
||||
- No data collection or telemetry
|
||||
- No third-party dependencies or build tools
|
||||
- No network traffic except favicon fetching (Google Favicons API)
|
||||
|
||||
## Was diese Extension IST
|
||||
## What this extension IS
|
||||
|
||||
Ein lokaler, privater NewTab-Ersatz für alle gängigen Browser.
|
||||
Bookmarks werden in `chrome.storage.local` gespeichert — nichts verlässt den Browser.
|
||||
Was angezeigt wird, ist was gespeichert ist. Keine Magie.
|
||||
A local, private NewTab replacement for all major browsers.
|
||||
Bookmarks are stored in `chrome.storage.local`, nothing leaves the browser.
|
||||
What you see is what's saved. No magic.
|
||||
|
||||
---
|
||||
|
||||
@@ -36,25 +36,30 @@ Was angezeigt wird, ist was gespeichert ist. Keine Magie.
|
||||
|
||||
### Boards & Bookmarks
|
||||
|
||||
- Boards als Gruppen für Links — per Drag & Drop umsortierbar
|
||||
- Bookmarks mit Favicon, Titel, optionaler Beschreibung
|
||||
- Boards per Blur-Button verstecken (Privat-Modus)
|
||||
- HTML-Import von Browser-Lesezeichen (Chrome, Edge, Firefox)
|
||||
- JSON Export & Import (Backup & Restore)
|
||||
- Boards as groups for links, sortable via drag & drop
|
||||
- Bookmarks with favicon, title and optional description
|
||||
- Hide boards with the blur button (privacy mode)
|
||||
- HTML import from browser bookmarks (Chrome, Edge, Firefox)
|
||||
- JSON export & import (backup & restore)
|
||||
|
||||
### Suchleiste
|
||||
### Search Bar
|
||||
|
||||
- Google, DuckDuckGo oder Bing — per Klick wechselbar
|
||||
- Ein/ausblendbar über Settings
|
||||
- Google, DuckDuckGo or Bing, switchable with a click
|
||||
- Toggleable via Settings
|
||||
|
||||
### Sticky Note
|
||||
### Widget System
|
||||
|
||||
- Schwebendes Notiz-Widget, frei positionierbar
|
||||
- Text und Position werden persistent gespeichert
|
||||
- **Notes & Checklists** — Floating note widgets with text or checklist template (max. 5)
|
||||
- **Calculator** — Shunting-yard parser (no `eval()`), history, keyboard input
|
||||
- **Timer / Countdown** — Saveable presets, Web Audio API alarm, mute toggle, tab title blinks on completion
|
||||
- **Image Reference** — Images as floating reference widgets, Canvas API WebP conversion (max. 3, enable in Settings)
|
||||
- **Notebook Sidebar** — All notes at a glance
|
||||
- **Widget Toolbar** — Floating buttons for quick access, position (left/right) configurable in Settings
|
||||
- All widgets: draggable, resizable, z-index stacking on click
|
||||
|
||||
### 8 Themes
|
||||
### 11 Themes
|
||||
|
||||
| Theme | Akzent | Stil |
|
||||
| Theme | Accent | Style |
|
||||
|---|---|---|
|
||||
| Nebula | `#b359ff` Magenta | Cosmic Nebula |
|
||||
| Crescent | `#d4bd8a` Gold | Minimalist Night |
|
||||
@@ -64,60 +69,58 @@ Was angezeigt wird, ist was gespeichert ist. Keine Magie.
|
||||
| SC Sunset | `#ff8c3d` Amber | Planet-Side |
|
||||
| Hellion HUD | `#32ff6a` Neon Green | Circuit Board |
|
||||
| Hellion Energy | `#1eff8e` Acid Green | Tactical |
|
||||
| Satisfactory | `#00b4d8` Cyan | Industrial Desert |
|
||||
| Avorion | `#2ec4a0` Turquoise | Deep Void |
|
||||
| Hellion Stealth | `#5ec2ff` Tech Blue | Tactical Recon |
|
||||
|
||||
### Bild-Credits
|
||||
### Image Credits
|
||||
|
||||
| Theme | Quelle | Lizenz |
|
||||
| Theme | Source | License |
|
||||
|---|---|---|
|
||||
| Nebula | [Temel / mrwashingt0n](https://pixabay.com/de/users/mrwashingt0n-15745216/) auf Pixabay | Pixabay License (frei) |
|
||||
| Crescent | [Daniil Silantev](https://unsplash.com) auf Unsplash | Unsplash License (frei) |
|
||||
| Event Horizon | Eigenes Werk — Stillframe von [hellion-initiative.online](https://hellion-initiative.online) | Hellion Online Media |
|
||||
| Merchantman | [Roberts Space Industries](https://robertsspaceindustries.com) — Made by the community | RSI Community Content |
|
||||
| SC Sunset | Screenshot aus Star Citizen von Cloud Imperium Games | Fan Content |
|
||||
| Julia & Jin | Eigenes Werk — Final Fantasy XIV Screenshot, bearbeitet in Photoshop | Hellion Online Media |
|
||||
| Hellion HUD | Eigenes Werk — AI-generiert und nachbearbeitet für hellion-media.de | Hellion Online Media |
|
||||
| Hellion Energy | Eigenes Werk — AI-generiert für hellion-media.de | Hellion Online Media |
|
||||
| Nebula | [Temel / mrwashingt0n](https://pixabay.com/de/users/mrwashingt0n-15745216/) on Pixabay | Pixabay License (free) |
|
||||
| Crescent | [Daniil Silantev](https://unsplash.com) on Unsplash | Unsplash License (free) |
|
||||
| Event Horizon | Own work, still frame from [hellion-initiative.online](https://hellion-initiative.online) | Hellion Online Media |
|
||||
| Merchantman | [Roberts Space Industries](https://robertsspaceindustries.com), made by the community | RSI Community Content |
|
||||
| SC Sunset | Screenshot from Star Citizen by Cloud Imperium Games | Fan Content |
|
||||
| Julia & Jin | Own work, Final Fantasy XIV screenshot, edited in Photoshop | Hellion Online Media |
|
||||
| Hellion HUD | Own work, AI-generated and post-processed for hellion-media.de | Hellion Online Media |
|
||||
| Hellion Energy | Own work, AI-generated for hellion-media.de | Hellion Online Media |
|
||||
| Satisfactory | Screenshot from Satisfactory by Coffee Stain Studios | Fan Content |
|
||||
| Avorion | Own work, screenshot from Avorion, Hellion Initiative ship | Hellion Online Media |
|
||||
| Hellion Stealth | Screenshot from Star Citizen by Cloud Imperium Games | Fan Content |
|
||||
|
||||
### Onboarding & Dialoge
|
||||
### Onboarding & Dialogs
|
||||
|
||||
- 6-stufiger Willkommens-Flow beim ersten Start
|
||||
- Custom Frosted-Glass-Dialoge statt nativer Browser-Popups
|
||||
- Backup-Reminder alle 7 Tage (warnt vor Datenverlust bei Browser-Reset)
|
||||
- 7-step welcome flow on first launch with widget explanation and optional gaming starter board
|
||||
- Custom frosted glass dialogs instead of native browser popups
|
||||
- Backup reminder every 7 days (warns about data loss on browser reset)
|
||||
|
||||
### Settings (Accordion)
|
||||
### Appearance & Settings
|
||||
|
||||
- Einklappbare Sektionen mit Chevron — About/Danger Zone standardmäßig geschlossen
|
||||
- Compact Mode — reduziert Abstände für mehr Bookmarks
|
||||
- Shorten Titles — kürzt lange Titel auf eine Zeile
|
||||
- Open in New Tab — Bookmarks in neuem Tab öffnen
|
||||
- Show Descriptions — Beschreibungen unter Bookmarks anzeigen
|
||||
- Hide Extra Bookmarks — Boards ab 5/10/20 Bookmarks einklappen
|
||||
- Suchleiste ein/ausblenden
|
||||
- JSON Export / Import
|
||||
- Onboarding wiederholbar
|
||||
- Danger Zone — Reset aller Daten
|
||||
|
||||
### Theme-Picker (eigener Header-Button)
|
||||
|
||||
- 8 Themes als zentriertes Modal
|
||||
- Hintergrundbild per URL oder lokaler Upload
|
||||
- **Appearance modal** (header button), theme picker, background image and all display options in one modal
|
||||
- **Settings panel** (header button), widgets, data & help, danger zone
|
||||
- **About footer**, developer info, license and support links permanently visible
|
||||
- Compact mode, shorten titles, search bar toggle, open links in new tab, descriptions, hide extra bookmarks
|
||||
- JSON export & import (backup & restore)
|
||||
- Onboarding repeatable
|
||||
- All UI labels in German (English coming in v2.1)
|
||||
|
||||
---
|
||||
|
||||
## Browser-Kompatibilität
|
||||
## Browser Compatibility
|
||||
|
||||
| Browser | Status | Manifest |
|
||||
|---|---|---|
|
||||
| Chrome | ✅ Kompatibel | V3 (`manifest.json`) |
|
||||
| Edge | ✅ Kompatibel | V3 (`manifest.json`) |
|
||||
| Brave | ✅ Kompatibel | V3 (`manifest.json`) |
|
||||
| Opera | ✅ Kompatibel | V3 (`manifest.opera.json`) |
|
||||
| Opera GX | ✅ Kompatibel | V3 (`manifest.opera.json`) |
|
||||
| Vivaldi | ✅ Kompatibel | V3 (`manifest.json`) |
|
||||
| Firefox | ✅ Kompatibel | V3 (`manifest.firefox.json`) |
|
||||
| Chrome | ✅ Compatible | V3 (`manifest.json`) |
|
||||
| Edge | ✅ Compatible | V3 (`manifest.json`) |
|
||||
| Brave | ✅ Compatible | V3 (`manifest.json`) |
|
||||
| Opera | ✅ Compatible | V3 (`manifest.opera.json`) |
|
||||
| Opera GX | ✅ Compatible | V3 (`manifest.opera.json`) |
|
||||
| Vivaldi | ✅ Compatible | V3 (`manifest.json`) |
|
||||
| Firefox | ✅ Compatible | V3 (`manifest.firefox.json`) |
|
||||
|
||||
> **Firefox-Hinweis:** Ab v1.2.0 läuft die Extension auf Manifest V3 — identisch zu Chrome/Edge.
|
||||
> `manifest.firefox.json` bleibt als separate Datei erhalten für Firefox-spezifische Anpassungen.
|
||||
> **Firefox note:** From v1.2.0 onwards the extension runs on Manifest V3, identical to Chrome/Edge.
|
||||
> `manifest.firefox.json` remains a separate file for Firefox-specific adjustments.
|
||||
|
||||
---
|
||||
|
||||
@@ -126,144 +129,154 @@ Was angezeigt wird, ist was gespeichert ist. Keine Magie.
|
||||
### Chrome / Edge / Brave / Vivaldi
|
||||
|
||||
```text
|
||||
1. Repository als ZIP herunterladen oder git clone
|
||||
2. chrome://extensions öffnen (bzw. edge:// / brave://)
|
||||
3. Entwicklermodus aktivieren
|
||||
4. "Entpackte Erweiterung laden" → Ordner auswählen in dem manifest.json liegt
|
||||
5. Neuen Tab öffnen
|
||||
1. Download the repository as ZIP or git clone
|
||||
2. Open chrome://extensions (or edge:// / brave://)
|
||||
3. Enable developer mode
|
||||
4. Click "Load unpacked" and select the folder containing manifest.json
|
||||
5. Open a new tab
|
||||
```
|
||||
|
||||
### Opera / Opera GX
|
||||
|
||||
```bash
|
||||
# manifest.opera.json als manifest.json verwenden:
|
||||
# Use manifest.opera.json as manifest.json:
|
||||
copy manifest.opera.json manifest.json # Windows
|
||||
cp manifest.opera.json manifest.json # Linux/Mac
|
||||
```
|
||||
|
||||
```text
|
||||
1. opera://extensions öffnen
|
||||
2. Entwicklermodus aktivieren
|
||||
3. "Entpackte Erweiterung laden" → Ordner auswählen
|
||||
4. Neuen Tab öffnen
|
||||
1. Open opera://extensions
|
||||
2. Enable developer mode
|
||||
3. Click "Load unpacked" and select the folder
|
||||
4. Open a new tab
|
||||
```
|
||||
|
||||
> **Opera-Hinweis:** Opera GX priorisiert Speed Dial — der enthaltene Workaround
|
||||
> übernimmt die New-Tab-Seite zuverlässig. Details: [src/js/opera/README.md](src/js/opera/README.md)
|
||||
> **Opera note:** Opera GX prioritizes Speed Dial, the included workaround
|
||||
> takes over the new tab page reliably. Details: [src/js/opera/README.md](src/js/opera/README.md)
|
||||
|
||||
### Firefox
|
||||
|
||||
```bash
|
||||
# manifest.firefox.json als manifest.json verwenden:
|
||||
# Use manifest.firefox.json as manifest.json:
|
||||
copy manifest.firefox.json manifest.json # Windows
|
||||
cp manifest.firefox.json manifest.json # Linux/Mac
|
||||
```
|
||||
|
||||
```text
|
||||
1. about:debugging#/runtime/this-firefox öffnen
|
||||
2. "Temporäres Add-on laden"
|
||||
3. Die manifest.json aus dem Projektordner auswählen
|
||||
1. Open about:debugging#/runtime/this-firefox
|
||||
2. Click "Load Temporary Add-on"
|
||||
3. Select the manifest.json from the project folder
|
||||
```
|
||||
|
||||
> **Hinweis:** Temporäre Add-ons werden beim Browser-Neustart entfernt.
|
||||
> Für dauerhafte Installation ist eine signierte `.xpi`-Datei nötig.
|
||||
> **Note:** Temporary add-ons are removed on browser restart.
|
||||
> For permanent installation a signed `.xpi` file is required.
|
||||
|
||||
---
|
||||
|
||||
## Browser-Bookmarks exportieren & importieren
|
||||
## Importing Browser Bookmarks
|
||||
|
||||
| Browser | Export-Pfad |
|
||||
| Browser | Export path |
|
||||
|---|---|
|
||||
| Chrome / Edge | Einstellungen → Lesezeichen → Exportieren |
|
||||
| Firefox | Lesezeichen → Alle Lesezeichen → Importieren und Sichern → Als HTML exportieren |
|
||||
| Chrome / Edge | Settings → Bookmarks → Export bookmarks |
|
||||
| Firefox | Bookmarks → All Bookmarks → Import and Backup → Export Bookmarks to HTML |
|
||||
|
||||
Die exportierte `.html`-Datei über den **Import**-Button in der Extension laden.
|
||||
Load the exported `.html` file via the **Import** button in the extension.
|
||||
|
||||
---
|
||||
|
||||
## Datenschutz
|
||||
## Privacy
|
||||
|
||||
- Keine externe Datenübertragung (außer Google Favicons API für Icons)
|
||||
- Speicherung in `chrome.storage.local` (Chromium) bzw. `browser.storage.local` (Firefox)
|
||||
- Keine Tracker, keine Analytics, keine Werbung
|
||||
- Keine Cookies, keine Session-Daten
|
||||
- Storage-Quota-Prüfung warnt bei 8 MB+ (Limit: 10 MB)
|
||||
- Permissions: `storage`, `bookmarks`
|
||||
- No external data transmission (except Google Favicons API for icons)
|
||||
- Storage in `chrome.storage.local` (Chromium) or `browser.storage.local` (Firefox)
|
||||
- No trackers, no analytics, no ads
|
||||
- No cookies, no session data
|
||||
- Storage quota check warns at 8 MB+ (limit: 10 MB)
|
||||
- Permissions: `storage`, `bookmarks` (all browsers) + `tabs` (Opera / Opera GX only)
|
||||
|
||||
---
|
||||
|
||||
## Tech-Stack
|
||||
## Tech Stack
|
||||
|
||||
| Komponente | Details |
|
||||
| Component | Details |
|
||||
|---|---|
|
||||
| Sprache | JavaScript (Vanilla ES2020, keine Frameworks) |
|
||||
| Styling | CSS Custom Properties (Theme-System) |
|
||||
| Fonts | Lokale Fonts (Rajdhani, Inter, Cinzel) |
|
||||
| Storage | `chrome.storage.local` / `localStorage` Fallback |
|
||||
| Language | JavaScript (Vanilla ES2020, no frameworks) |
|
||||
| Styling | CSS Custom Properties (theme system) |
|
||||
| Fonts | Local fonts (Rajdhani, Inter, Cinzel) |
|
||||
| Storage | `chrome.storage.local` / `localStorage` fallback |
|
||||
| Favicons | Google Favicons API (`/s2/favicons`) |
|
||||
| Drag & Drop | Pointer Events API (nativ) |
|
||||
| Build | Kein Build-Schritt — direkt lauffähig |
|
||||
| CI/CD | GitHub Actions (Security, Quality, Release) |
|
||||
| Drag & Drop | Pointer Events API (native) |
|
||||
| Build | No build step, runs directly |
|
||||
| CI/CD | GitHub Actions (security, quality, release) |
|
||||
|
||||
---
|
||||
|
||||
## Architektur
|
||||
## Architecture
|
||||
|
||||
```text
|
||||
hellion-newtab/
|
||||
├── manifest.json # Chrome, Edge, Brave, Vivaldi (MV3)
|
||||
├── manifest.firefox.json # Firefox (MV3)
|
||||
├── manifest.opera.json # Opera / Opera GX (MV3 + Workaround)
|
||||
├── newtab.html # Haupt-HTML (UI-Struktur, Modals, Settings Panel)
|
||||
├── manifest.opera.json # Opera / Opera GX (MV3 + workaround)
|
||||
├── newtab.html # Main HTML (UI structure, modals, settings panel)
|
||||
├── LICENSE # CC BY-NC-SA 4.0
|
||||
├── CHANGELOG.md # Versionshistorie
|
||||
├── SECURITY.md # Sicherheitsrichtlinie und Meldeprozess
|
||||
├── DISCLAIMER.md # Haftungsausschluss
|
||||
├── CHANGELOG.md # Version history
|
||||
├── SECURITY.md # Security policy and reporting
|
||||
├── DISCLAIMER.md # Disclaimer and legal
|
||||
│
|
||||
├── src/
|
||||
│ ├── js/
|
||||
│ │ ├── storage.js # Storage Abstraction + Quota-Prüfung
|
||||
│ │ ├── state.js # Globaler State, Defaults, Hilfsfunktionen
|
||||
│ │ ├── dialog.js # Custom Dialog-System (HellionDialog.alert/confirm)
|
||||
│ │ ├── themes.js # Theme-Definitionen & Anwendungslogik
|
||||
│ │ ├── boards.js # Board/Bookmark Rendering, Event Delegation, Modals
|
||||
│ │ ├── drag.js # Drag & Drop (Pointer Events, Board + Bookmark)
|
||||
│ │ ├── settings.js # Settings Panel, Theme-Modal, Accordion
|
||||
│ │ ├── search.js # Suchleiste (Google, DuckDuckGo, Bing)
|
||||
│ │ ├── sticky.js # Sticky Note Widget (Drag, Persist, Toggle)
|
||||
│ │ ├── data.js # JSON Export / Import mit Validierung
|
||||
│ │ ├── onboarding.js # Mehrstufiger Willkommens-Flow
|
||||
│ │ ├── app.js # Init, Clock, globale Events (Einstiegspunkt)
|
||||
│ │ └── opera/ # Opera GX Workaround-Skripte
|
||||
│ │ ├── background.js # Tab-Management gegen Speed Dial
|
||||
│ │ └── redirect.js # Content Script Redirect
|
||||
│ │ ├── storage.js # Storage abstraction + quota check
|
||||
│ │ ├── state.js # Global state, defaults, helpers
|
||||
│ │ ├── dialog.js # Custom dialog system (HellionDialog.alert/confirm)
|
||||
│ │ ├── themes.js # Theme definitions & application (11 themes)
|
||||
│ │ ├── boards.js # Board/bookmark rendering, event delegation, modals
|
||||
│ │ ├── drag.js # Drag & drop (Pointer Events, board + bookmark)
|
||||
│ │ ├── settings.js # Settings panel, appearance modal, accordion
|
||||
│ │ ├── search.js # Search bar (Google, DuckDuckGo, Bing)
|
||||
│ │ ├── widgets.js # Widget manager (registry, drag, resize, z-index)
|
||||
│ │ ├── notes.js # Notes & checklists (multi-instance, max. 5)
|
||||
│ │ ├── calculator.js # Calculator (shunting-yard, history)
|
||||
│ │ ├── timer.js # Timer/countdown (presets, Web Audio alarm)
|
||||
│ │ ├── image-ref.js # Image reference widget (Canvas API, sessionStorage)
|
||||
│ │ ├── data.js # JSON export / import with validation
|
||||
│ │ ├── onboarding.js # 7-step welcome flow + gaming board
|
||||
│ │ ├── app.js # Init, clock, global events (entry point)
|
||||
│ │ └── opera/ # Opera GX workaround scripts
|
||||
│ │ ├── background.js # Tab management against Speed Dial
|
||||
│ │ └── redirect.js # Content script redirect
|
||||
│ └── css/
|
||||
│ └── main.css # Styles + Theme-System + Responsive Breakpoints
|
||||
│ └── main.css # Styles + 11 themes + responsive breakpoints
|
||||
│
|
||||
├── assets/
|
||||
│ ├── fonts/ # Lokale Fonts (Rajdhani, Inter, Cinzel)
|
||||
│ ├── themes/ # 8 Theme-Hintergrundbilder
|
||||
│ ├── fonts/ # Local fonts (Rajdhani, Inter, Cinzel)
|
||||
│ ├── themes/ # 11 theme background images (WebP only)
|
||||
│ └── icons/
|
||||
│ ├── icon16.png
|
||||
│ ├── icon48.png
|
||||
│ └── icon128.png
|
||||
│
|
||||
├── docs/
|
||||
│ ├── architecture.md # Project architecture and init sequence
|
||||
│ ├── widget-schema.md # Widget system API and schema reference
|
||||
│ ├── patterns.md # Code patterns and conventions
|
||||
│ └── style-guide.md # Design system and theme documentation
|
||||
│
|
||||
└── .github/
|
||||
└── workflows/
|
||||
├── security.yml # CodeQL-Analyse + Dependency Review
|
||||
├── quality.yml # Struktur, Manifest, Syntax, Versions-Konsistenz
|
||||
└── release.yml # ZIP-Pakete (Chrome + Firefox + Opera) + SHA256
|
||||
├── security.yml # CodeQL analysis + dependency review
|
||||
├── quality.yml # Structure, manifest, syntax, version consistency
|
||||
└── release.yml # ZIP packages (Chrome + Firefox + Opera) + SHA256
|
||||
```
|
||||
|
||||
### Design-Prinzipien
|
||||
### Design Principles
|
||||
|
||||
- **Zero Dependencies** — Kein npm, kein Build, kein Framework. Direkt lauffähig
|
||||
- **Privacy First** — Alle Daten lokal, kein Server-Kontakt
|
||||
- **Modular** — 12 JS-Dateien mit klarer Zuständigkeit
|
||||
- **Responsive** — Tablet (768px) und Smartphone (480px) Breakpoints
|
||||
- **Secure** — `createElement` statt `innerHTML`, URL-Validierung, Storage-Fehlerbehandlung
|
||||
- **Event Delegation** — Ein Listener pro Board-Liste statt pro Bookmark (Performance)
|
||||
- **Theme-System** — CSS Custom Properties, 8 Themes, Custom-Background-Support
|
||||
- **Zero Dependencies** — No npm, no build, no framework. Runs directly
|
||||
- **Privacy First** — All data local, no server contact
|
||||
- **Modular** — 15 JS files with clear responsibilities
|
||||
- **Responsive** — Tablet (768px) and smartphone (480px) breakpoints
|
||||
- **Secure** — `createElement` instead of `innerHTML`, URL validation, storage error handling
|
||||
- **Event Delegation** — One listener per board list instead of per bookmark (performance)
|
||||
- **Theme System** — CSS Custom Properties, 11 themes, custom background support
|
||||
|
||||
---
|
||||
|
||||
@@ -271,85 +284,88 @@ hellion-newtab/
|
||||
|
||||
### Security Scan (`security.yml`)
|
||||
|
||||
- **CodeQL-Analyse** — Statische Sicherheitsanalyse für JavaScript
|
||||
- **Dependency Review** — Prüft Pull Requests auf bekannte Schwachstellen
|
||||
- **Zeitplan** — Automatisch wöchentlich (Montag 06:00 UTC) + bei Push/PR
|
||||
- **CodeQL analysis** — Static security analysis for JavaScript
|
||||
- **Dependency review** — Checks pull requests for known vulnerabilities
|
||||
- **Schedule** — Automatically weekly (Monday 06:00 UTC) + on push/PR
|
||||
|
||||
### Code Quality (`quality.yml`)
|
||||
|
||||
- **Projektstruktur** — Alle Pflichtdateien und -ordner vorhanden
|
||||
- **Manifest-Validierung** — JSON-Syntax, Version, Permissions
|
||||
- **JavaScript Syntax-Check** — `node --check` für alle JS-Dateien
|
||||
- **Versions-Konsistenz** — manifest.json, manifest.firefox.json und newtab.html müssen übereinstimmen
|
||||
- **Icon-Prüfung** — Alle Extension-Icons vorhanden
|
||||
- **Project structure** — All required files and folders present
|
||||
- **Manifest validation** — JSON syntax, version, permissions
|
||||
- **JavaScript syntax check** — `node --check` for all JS files
|
||||
- **Version consistency** — manifest.json, manifest.firefox.json and newtab.html must match
|
||||
- **Icon check** — All extension icons present
|
||||
|
||||
### Release (`release.yml`)
|
||||
|
||||
- **Trigger** — Bei Git-Tag (`v*`)
|
||||
- **Pakete** — Chrome-ZIP + Firefox-ZIP + Opera-ZIP (alle MV3)
|
||||
- **Checksummen** — SHA256 für alle Artefakte
|
||||
- **GitHub Release** — Automatisch mit Installationsanleitung
|
||||
- **Trigger** — On Git tag (`v*`)
|
||||
- **Packages** — Chrome ZIP + Firefox ZIP + Opera ZIP (all MV3)
|
||||
- **Checksums** — SHA256 for all artifacts
|
||||
- **GitHub Release** — Automatic with installation instructions
|
||||
|
||||
```bash
|
||||
# Release erstellen:
|
||||
git tag v1.5.2
|
||||
git push origin v1.5.2
|
||||
# → GitHub Action erstellt automatisch Release mit ZIP-Dateien
|
||||
# Create a release:
|
||||
git tag v1.10.0
|
||||
git push origin v1.10.0
|
||||
# → GitHub Action automatically creates release with ZIP files
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Entwicklung
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Repository klonen
|
||||
# Clone the repository
|
||||
git clone https://github.com/JonKazama-Hellion/Hellion-NewTab.git
|
||||
|
||||
# Extension im Browser laden (siehe Installation)
|
||||
# Load the extension in your browser (see Installation)
|
||||
|
||||
# Nach Änderungen: Extension neu laden
|
||||
chrome://extensions → Hellion NewTab → Neu laden
|
||||
# After changes: reload the extension
|
||||
chrome://extensions → Hellion NewTab → Reload
|
||||
```
|
||||
|
||||
Kein Build-Schritt nötig. Dateien ändern, Extension neu laden, fertig.
|
||||
No build step needed. Change files, reload extension, done.
|
||||
|
||||
---
|
||||
|
||||
## Sicherheit
|
||||
## Security
|
||||
|
||||
Sicherheitslücken bitte **nicht** über öffentliche Issues melden.
|
||||
Details zur Meldung, Reaktionszeiten und Sicherheitsarchitektur: [SECURITY.md](SECURITY.md)
|
||||
Please do **not** report security vulnerabilities through public GitHub issues.
|
||||
Details on reporting, response times and security architecture: [SECURITY.md](SECURITY.md)
|
||||
|
||||
---
|
||||
|
||||
## Lizenz & Impressum
|
||||
## License & Legal
|
||||
|
||||
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
|
||||
|
||||
- Kostenlos für private Nutzung
|
||||
- Teilen und Modifikation erlaubt mit Namensnennung
|
||||
- Kommerzielle Nutzung ohne Erlaubnis verboten
|
||||
- Free for private use
|
||||
- Sharing and modification allowed with attribution
|
||||
- Commercial use without permission prohibited
|
||||
|
||||
Vollständige Lizenz: [LICENSE](LICENSE) | [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)
|
||||
Full license: [LICENSE](LICENSE) | [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **Entwickler** | Florian Wathling |
|
||||
| **Unternehmen** | Hellion Online Media |
|
||||
| **Developer** | Florian Wathling |
|
||||
| **Company** | Hellion Online Media |
|
||||
| **Web** | [hellion-media.de](https://hellion-media.de) |
|
||||
| **Impressum** | [hellion-media.de/impressum](https://hellion-media.de/impressum) |
|
||||
| **Imprint** | [hellion-media.de/impressum](https://hellion-media.de/impressum) |
|
||||
| **Bug Reports** | [kontakt@hellion-media.de](mailto:kontakt@hellion-media.de?subject=Hellion%20NewTab%20%E2%80%93%20Bug%20Report) |
|
||||
| **Security** | [SECURITY.md](SECURITY.md) |
|
||||
| **Support** | [Ko-fi](https://ko-fi.com/hellionmedia) |
|
||||
|
||||
---
|
||||
|
||||
### Einsatz von AI
|
||||
### Use of AI
|
||||
|
||||
AI (Claude Code, Opus 4.6 von Anthropic) wurde als Hilfsmittel eingesetzt — für Fehleridentifikation, Code-Review und Qualitätssicherung. Architektur, Features und alle Entscheidungen sind Eigenleistung.
|
||||
**Claude:** Code analysis, bug fixing, documentation and proofreading.
|
||||
**Me:** Architecture, features and logic are planned, thought through and written by me.
|
||||
|
||||
Details: [DISCLAIMER.md](DISCLAIMER.md)
|
||||
|
||||
---
|
||||
|
||||
> Vollständige Versionshistorie: [CHANGELOG.md](CHANGELOG.md)
|
||||
> Full version history: [CHANGELOG.md](CHANGELOG.md)
|
||||
|
||||
**Hellion NewTab** — [Hellion Online Media](https://hellion-media.de) — JonKazama-Hellion
|
||||
**Hellion NewTab** — [Hellion Online Media](https://hellion-media.de) — JonKazama-Hellion
|
||||
|
||||
Reference in New Issue
Block a user