Erstellen Sie einfach und schnell benutzerdefinierte Audio-Wiedergabelisten (.m3u, .xspf, .json) aus Ihren MP3-, WAV- oder FLAC-Dateien. Sortieren, benennen und laden Sie Ihre Wiedergabeliste herunter
翻译准备中
媒体TypeScript · VueGitHub @KodiniTools在线运营者未确认
试用过了吗? 点一下就好,无需登录。
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Audio-Playlist-Generator für M3U, XSPF und JSON-Playlists
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Eine moderne Vue 3-Anwendung zum Erstellen von Audio-Playlists in verschiedenen Formaten (M3U, XSPF, JSON).
tw:-Präfix, Theme aus den --ds-*-Tokens)npm install
npm run dev
Die Anwendung läuft dann auf http://localhost:5173
npm run test:unit # Vitest
npm run build && CI=1 npm run test:e2e -- --project=chromium # Playwright gegen den Preview-Build
Die E2E-Tests in e2e/ decken zwei Bereiche ab:
pages.spec.ts: Jede Seite (Start, App, FAQ, Blog) in DE/EN und hell/dunkel. Geprüft werden Überschrift,
data-theme und die Body-Farben aus tokens-v2.json; ein Screenshot hängt am Playwright-Report.playlist.spec.ts: Dateien hinzufügen, Formate (M3U, PLS, JSON), Abwahl, Entfernen mit Rückgängig,
Speichern (mit gestubbtem showSaveFilePicker), Kopieren und Wiederherstellen nach dem Neuladen.Ohne CI=1 startet Playwright den Dev-Server auf Port 5173.
npm run build
Die Build-Dateien werden im dist-Ordner erstellt.
npm run preview
src/
├── components/ # Vue-Komponenten
│ ├── AppHeader.vue
│ ├── PlaylistConfig.vue
│ ├── PlaylistPreview.vue
│ ├── ToolsGrid.vue
│ ├── blog/ # Blog-Artikel DE/EN
│ ├── landing/ # Abschnitte der Landing-Seite
│ └── ui/ # Design-System-Komponenten (Ui*)
├── stores/ # Pinia-Stores (playlist, toast)
├── composables/ # Wiederverwendbare Logik
│ ├── usePlaylist.ts
│ ├── useTheme.ts
│ └── useTranslation.ts
├── assets/
│ └── main.css # Globale Styles
├── App.vue # Haupt-Komponente
└── main.ts # App-Einstiegspunkt
src/components/ui/): Dateiliste als DOM-Liste mit Tastatur- und Drag-Sortierungsrc/views/): Häufig gestellte FragenNavigation, Footer und Cookie-Banner kommen als SSI-Partials vom Server (/partials/*.html) und
liegen nicht im Repo. src/assets/main.css gleicht sie an die Tokens an: Die Navigation stylt sich
über eigene Custom Properties auf .global-nav (--nav-bg, --nav-text, …); diese werden auf
--ds-* gelegt und die festen Dark-Mode-Hintergründe des Partials mit höherer Spezifität
überschrieben. Die Leiste sitzt so auf derselben Fläche wie der AppHeader und folgt dem Theme.
Eine Kopie des Partials zum Nachlesen liegt im Texteditor-Repo unter partials/nav.html.
src/assets/tailwind.css bindet Tailwind v4 ein, mit drei Einschränkungen:
main.css (@layer base). Preflight würde die SSI-Navigation
und den SSI-Footer verändern.var(--ds-*) auf
tokens-v2.css, Hell/Dunkel funktioniert also ohne dark:-Varianten. Beispiele: tw:bg-surface-1,
tw:text-text-2, tw:p-4 (= --ds-space-4), tw:rounded-md, tw:h-control-md, tw:max-tablet:hidden.
Werte außerhalb der Tokens (tw:p-7, tw:bg-red-500) erzeugen nichts.tw:. Bestehende Klassennamen wie .hidden oder .container bleiben unberührt.Utilities liegen in @layer utilities und verlieren gegen ungelayerte scoped Styles. Beim Umstellen einer
Komponente deshalb die scoped Regel für dieselbe Eigenschaft entfernen. Neue Komponenten nutzen
Utilities, bestehende werden bei Bedarf umgestellt (Pilot: LandingCta.vue).
src/assets/__tests__/tailwind.spec.ts sichert diese Regeln ab.
Nach Kopieren oder Speichern unter… bietet ein Dialog an, die Wiedergabeliste im
Kodini Texteditor weiterzubearbeiten („Im Texteditor
öffnen“ / „Nicht jetzt“). Bei Zustimmung legt die App die Datei unter
localStorage['kodinitools-texteditor-handoff-v1'] ab ({ version: 1, source, name, content, mimeType, sharedAt }) und öffnet https://kodinitools.com/texteditor/app?source=playlist_generator
in einem neuen Tab. Der Editor übernimmt den Eintrag beim Start als neues Dokument und entfernt ihn.
Umsetzung: src/utils/textEditorHandoff.ts (getestet), Dialog in src/views/AppPage.vue.
Die Anwendung nutzt moderne Web-APIs:
MIT License
Diese Anwendung wurde von Vanilla JavaScript zu Vue 3 migriert. Wichtige Änderungen: