diff options
| author | 2026-01-15 15:03:51 +0800 | |
|---|---|---|
| committer | 2026-01-15 15:03:51 +0800 | |
| commit | 10e6048cfbbc5c2b69c9c7bdbd0ab062724fd34d (patch) | |
| tree | 5084a888f01eda13437554644b8124a7cec451af | |
| parent | fd61cbe823c51c300de7cb6a634c8960a4ee2207 (diff) | |
| download | DropOut-10e6048cfbbc5c2b69c9c7bdbd0ab062724fd34d.tar.gz DropOut-10e6048cfbbc5c2b69c9c7bdbd0ab062724fd34d.zip | |
docs: Update README.md with enhanced feature descriptions, improved UI terminology, and added installation instructions; update image alt text for accessibility
| -rw-r--r-- | README.md | 60 | ||||
| -rw-r--r-- | assets/image.png | bin | 161028 -> 163436 bytes | |||
| -rw-r--r-- | ui/src/components/HomeView.svelte | 14 |
3 files changed, 46 insertions, 28 deletions
@@ -1,39 +1,42 @@ # DropOut -DropOut is a modern, fast, and efficient Minecraft launcher built with the latest web and system technologies. It leverages **Tauri v2** to deliver a lightweight application with a robust **Rust** backend and a reactive **Svelte 5** frontend. +DropOut is a modern, minimalist, and efficient Minecraft launcher built with the latest web and system technologies. It leverages **Tauri v2** to deliver a lightweight application with a robust **Rust** backend and a reactive **Svelte 5** frontend. <div align="center"> - <img width="700" src="assets/image.png" /> + <img width="700" src="assets/image.png" alt="DropOut Launcher Interface" /> </div> ## Features -- **High Performance**: Built with Rust and Tauri for minimal resource usage. -- **Microsoft Authentication**: Secure login support via official Xbox Live & Microsoft OAuth flows. -- **Cross-Platform**: Native support for **Windows**, **Linux**, and **macOS**. -- **Modern UI**: Clean and responsive interface built with Svelte 5 and Tailwind CSS 4. +- **High Performance**: Built with Rust and Tauri for minimal resource usage and fast startup times. +- **Modern Industrial UI**: A clean, distraction-free interface designed with **Svelte 5** and **Tailwind CSS 4**. +- **Microsoft Authentication**: Secure login support via official Xbox Live & Microsoft OAuth flows (Device Code Flow). +- **Mod Loader Support**: + - **Fabric**: Built-in installer and version management. + - **Forge**: Support for installing and launching Forge versions. +- **Java Management**: + - Automatic detection of installed Java versions. + - Built-in downloader for Adoptium JDK/JRE. +- **GitHub Integration**: View the latest project updates and changelogs directly from the launcher home screen. - **Game Management**: - - - Version isolation and management - - Efficient asset and library downloading - - Custom Java arguments support + - Complete version isolation. + - Efficient concurrent asset and library downloading. + - Customizable memory allocation and resolution settings. ## Roadmap -- [X] **Account Persistence** — Save login state between sessions -- [X] **Token Refresh** — Auto-refresh expired Microsoft tokens -- [X] **JVM Arguments Parsing** — Parse `arguments.jvm` from version.json for Mac M1/ARM support -- [X] **Java Auto-detection** — Scan common paths for Java installations -- [X] **Fabric Loader Support** — Install and launch with Fabric -- [X] **Forge Loader Support** — Install and launch with Forge (basic support) -- [X] **Version Filtering** — Filter by release/snapshot/modded in UI +- [x] **Account Persistence** — Save login state between sessions +- [x] **Token Refresh** — Auto-refresh expired Microsoft tokens +- [x] **JVM Arguments Parsing** — Full support for `arguments.jvm` and `arguments.game` parsing +- [x] **Java Auto-detection & Download** — Scan system and download Java runtimes +- [x] **Fabric Loader Support** — Install and launch with Fabric +- [x] **Forge Loader Support** — Install and launch with Forge +- [x] **GitHub Releases Integration** — View changelogs in-app - [ ] **Instance/Profile System** — Multiple isolated game directories with different versions/mods -- [ ] **Multi-account Support** — Switch between multiple accounts +- [ ] **Multi-account Support** — Switch between multiple accounts seamlessly - [ ] **Custom Game Directory** — Allow users to choose game files location - [ ] **Launcher Auto-updater** — Self-update mechanism via Tauri updater plugin -- [ ] **Mods Manager** — Enable/disable mods without deletion -- [ ] **Resource Packs Manager** — Browse and manage resource packs -- [ ] **Quilt Loader Support** — Install and launch with Quilt +- [ ] **Mods Manager** — Enable/disable mods directly in the launcher - [ ] **Import from Other Launchers** — Migration tool for MultiMC/Prism profiles ## Installation @@ -42,18 +45,18 @@ Download the latest release for your platform from the [Releases](https://github | Platform | Files | | -------------- | ----------------------- | -| Linux x86_64 | `.deb`, `.AppImage` | -| Linux ARM64 | `.deb`, `.AppImage` | -| macOS ARM64 | `.dmg` | -| Windows x86_64 | `.msi`, `.exe` | -| Windows ARM64 | `.msi`, `.exe` | +| Linux x86_64 | `.deb`, `.AppImage` | +| Linux ARM64 | `.deb`, `.AppImage` | +| macOS ARM64 | `.dmg` | +| Windows x86_64 | `.msi`, `.exe` | +| Windows ARM64 | `.msi`, `.exe` | ## Building from Source ### Prerequisites 1. **Rust**: Install from [rustup.rs](https://rustup.rs/). -2. **Node.js** & **pnpm**: Used for the frontend. +2. **Node.js** & **pnpm**: Used for the frontend dependencies. 3. **System Dependencies**: Follow the [Tauri Prerequisites](https://v2.tauri.app/start/prerequisites/) for your OS. ### Steps @@ -64,6 +67,7 @@ Download the latest release for your platform from the [Releases](https://github git clone https://github.com/HsiangNianian/DropOut.git cd DropOut ``` + 2. **Install Frontend Dependencies** ```bash @@ -71,12 +75,14 @@ Download the latest release for your platform from the [Releases](https://github pnpm install cd .. ``` + 3. **Run in Development Mode** ```bash # This will start the frontend server and the Tauri app window cargo tauri dev ``` + 4. **Build Release Version** ```bash diff --git a/assets/image.png b/assets/image.png Binary files differindex ddda96f..db6ada3 100644 --- a/assets/image.png +++ b/assets/image.png diff --git a/ui/src/components/HomeView.svelte b/ui/src/components/HomeView.svelte index 2794712..732545f 100644 --- a/ui/src/components/HomeView.svelte +++ b/ui/src/components/HomeView.svelte @@ -22,10 +22,22 @@ }); } + function escapeHtml(unsafe: string) { + return unsafe + .replace(/&/g, "&") + .replace(/</g, "<") + .replace(/>/g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); + } + // Enhanced markdown parser with Emoji and GitHub specific features function formatBody(body: string) { if (!body) return ''; + // Escape HTML first to prevent XSS + let processed = escapeHtml(body); + // Emoji map (common GitHub emojis) const emojiMap: Record<string, string> = { ':tada:': '🎉', ':sparkles:': '✨', ':bug:': '🐛', ':memo:': '📝', @@ -89,7 +101,7 @@ </div> <!-- Scrollable Container --> -<div class="relative z-10 h-full {releasesState.isLoading || releasesState.releases.length === 0 ? 'overflow-hidden' : 'overflow-y-auto custom-scrollbar scroll-smooth'}"> +<div class="relative z-10 h-full {releasesState.isLoading ? 'overflow-hidden' : 'overflow-y-auto custom-scrollbar scroll-smooth'}"> <!-- Hero Section (Full Height) --> <div class="min-h-full flex flex-col justify-end p-12 pb-32"> |