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: