diff --git a/.vitepress/config.js b/.vitepress/config.js index 3bde9415..80156bdb 100644 --- a/.vitepress/config.js +++ b/.vitepress/config.js @@ -3,7 +3,8 @@ import { defineConfig } from "vitepress"; // https://vitepress.dev/reference/site-config export default defineConfig({ title: "Libation", - description: "Libation: Liberate your Library - A free application for downloading your Audible audiobooks", + description: + "Libation: Liberate your Library - A free application for downloading your Audible audiobooks", head: [["link", { rel: "icon", href: "/favicon.ico" }]], cleanUrls: true, themeConfig: { @@ -26,14 +27,20 @@ export default defineConfig({ nav: [ { text: "Getting Started", link: "/docs/getting-started" }, { text: "Docs", link: "/docs/index" }, - { text: "Download", link: "https://github.com/rmcrackan/Libation/releases/latest" }, - { text: "Issues & Requests", link: "https://github.com/rmcrackan/Libation/issues" }, + { + text: "Download", + link: "https://github.com/rmcrackan/Libation/releases/latest", + }, + { + text: "Issues & Requests", + link: "https://github.com/rmcrackan/Libation/issues", + }, { text: "Donate", link: "https://www.paypal.com/paypalme/mcrackan" }, ], sidebar: [ { items: [ - { text: "Overview", link: "/docs/index"}, + { text: "Overview", link: "/docs/index" }, { text: "Getting Started", link: "/docs/getting-started" }, { text: "FAQ", link: "/docs/frequently-asked-questions" }, { @@ -56,7 +63,10 @@ export default defineConfig({ text: "Features", collapsed: false, items: [ - { text: "Audio File Formats", link: "/docs/features/audio-file-formats" }, + { + text: "Audio File Formats", + link: "/docs/features/audio-file-formats", + }, { text: "Naming Templates", link: "/docs/features/naming-templates" }, { text: "Searching & Filtering", @@ -67,12 +77,19 @@ export default defineConfig({ { text: "Advanced", collapsed: false, + items: [{ text: "Advanced Topics", link: "/docs/advanced/advanced" }], + }, + { + text: "Development", + collapsed: false, items: [ - { text: "Advanced Topics", link: "/docs/advanced/advanced" }, { - text: "Linux Development Setup", - link: "/docs/advanced/linux-development-setup-using-nix", + text: "Getting Started", + link: "/docs/development/getting-started", }, + { text: "Contribute", link: "/docs/development/contribute" }, + { text: "Website & Docs", link: "/docs/development/website" }, + { text: "Linux Setup (Nix)", link: "/docs/development/nix-linux-setup" }, ], }, ], @@ -81,7 +98,9 @@ export default defineConfig({ level: "deep", }, - socialLinks: [{ icon: "github", link: "https://github.com/rmcrackan/Libation" }], + socialLinks: [ + { icon: "github", link: "https://github.com/rmcrackan/Libation" }, + ], search: { provider: "local", diff --git a/Documentation/Advanced.md b/Documentation/Advanced.md new file mode 100644 index 00000000..67644497 --- /dev/null +++ b/Documentation/Advanced.md @@ -0,0 +1 @@ +# This page has been moved to https://getlibation.com/docs/advanced/advanced \ No newline at end of file diff --git a/Documentation/AudioFileFormats.md b/Documentation/AudioFileFormats.md new file mode 100644 index 00000000..38b18140 --- /dev/null +++ b/Documentation/AudioFileFormats.md @@ -0,0 +1 @@ +# This page has been moved to https://getlibation.com/docs/features/audio-file-formats \ No newline at end of file diff --git a/Documentation/Docker.md b/Documentation/Docker.md new file mode 100644 index 00000000..8921cdfd --- /dev/null +++ b/Documentation/Docker.md @@ -0,0 +1 @@ +# This page has been moved to https://getlibation.com/docs/installation/docker \ No newline at end of file diff --git a/Documentation/FrequentlyAskedQuestions.md b/Documentation/FrequentlyAskedQuestions.md new file mode 100644 index 00000000..ca86d977 --- /dev/null +++ b/Documentation/FrequentlyAskedQuestions.md @@ -0,0 +1 @@ +# This page has been moved to https://getlibation.com/docs/frequently-asked-questions \ No newline at end of file diff --git a/Documentation/GettingStarted.md b/Documentation/GettingStarted.md new file mode 100644 index 00000000..92b8f28b --- /dev/null +++ b/Documentation/GettingStarted.md @@ -0,0 +1 @@ +# This page has been moved to https://getlibation.com/docs/getting-started \ No newline at end of file diff --git a/Documentation/InstallOnLinux.md b/Documentation/InstallOnLinux.md new file mode 100644 index 00000000..1d5880b4 --- /dev/null +++ b/Documentation/InstallOnLinux.md @@ -0,0 +1 @@ +# This page has been moved to https://getlibation.com/docs/installation/linux \ No newline at end of file diff --git a/Documentation/InstallOnMac.md b/Documentation/InstallOnMac.md new file mode 100644 index 00000000..24585f4a --- /dev/null +++ b/Documentation/InstallOnMac.md @@ -0,0 +1 @@ +# This page has been moved to https://getlibation.com/docs/installation/mac \ No newline at end of file diff --git a/Documentation/LinuxDevelopmentSetupUsingNix.md b/Documentation/LinuxDevelopmentSetupUsingNix.md new file mode 100644 index 00000000..29c4cb1f --- /dev/null +++ b/Documentation/LinuxDevelopmentSetupUsingNix.md @@ -0,0 +1 @@ +# This page has been moved to https://getlibation.com/docs/development/nix-linux-setup \ No newline at end of file diff --git a/Documentation/NamingTemplates.md b/Documentation/NamingTemplates.md new file mode 100644 index 00000000..6c750006 --- /dev/null +++ b/Documentation/NamingTemplates.md @@ -0,0 +1 @@ +# This page has been moved to https://getlibation.com/docs/features/naming-templates \ No newline at end of file diff --git a/Documentation/SearchingAndFiltering.md b/Documentation/SearchingAndFiltering.md new file mode 100644 index 00000000..1925e063 --- /dev/null +++ b/Documentation/SearchingAndFiltering.md @@ -0,0 +1 @@ +# This page has been moved to https://getlibation.com/docs/features/searching-and-filtering \ No newline at end of file diff --git a/README.md b/README.md index ac550d08..ac9ee6ae 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,15 @@ # Libation: Liberate your Library -## [Download Libation](https://github.com/rmcrackan/Libation/releases/latest) +**Libation** is a free, open-source application for downloading and managing your Audible audiobooks. It decrypts your library, removes DRM, and lets you own your audiobooks forever. -### If you found this useful, tell a friend. If you found this REALLY useful, you can click here to [PayPal.me](https://paypal.me/mcrackan?locale.x=en_us) +## Features -...or just tell more friends. As long as I'm maintaining this software, it will remain **free** and **open source**. +- **Unlock Your Library**: Download and remove DRM from your audiobooks. +- **Cross-Platform**: Fully supported on Windows, macOS, and Linux. +- **Region Support**: Works with Audible regions US, UK, Canada, Germany, France, Australia, Japan, India, and Spain. +- **Advanced Organization**: Search, filter, and tag your books. +- **Fast & Efficient**: Powered by AAXClean for fast decryption without heavy dependencies like ffmpeg. +- **Import**: Easily import your existing library, including cover art. ## Getting started with Libation @@ -17,26 +22,34 @@ All documentation has been moved to our new site: [getlibation.com](https://getl ## Development -### Documentation +Grab the latest release for your platform from the [Releases Page](https://github.com/rmcrackan/Libation/releases/latest). -The documentation is built with [VitePress](https://vitepress.dev/) and located in the `docs` directory. For more information like [markdown syntax](https://vitepress.dev/guide/markdown#advanced-configuration) and [routing](https://vitepress.dev/guide/routing) or other features, refer [VitePress documentation](https://vitepress.dev/guide). +## Documentation -**Prerequisites**: Node.js 18+ +Comprehensive documentation is available in the `docs` directory and on our [Documentation Site](https://getlibation.com/docs). -**Commands**: +- [Getting Started](https://getlibation.com/docs/getting-started) +- [FAQ](https://getlibation.com/docs/frequently-asked-questions) -```bash -# Install dependencies -npm install +## Development & Contributing -# Start local dev server (http://localhost:5173) -npm run docs:dev +We welcome contributions! -# Build for production (output: docs/.vitepress/dist) -npm run docs:build +- **[Development Getting Started](https://getlibation.com/docs/development/getting-started)**: Setup your environment. +- **[Contribute](https://getlibation.com/docs/development/contribute)**: How to contribute code. +- **[Website & Docs](https://getlibation.com/docs/development/website)**: How to run and improve the documentation. +- **[Linux Setup (Nix)](https://getlibation.com/docs/development/nix-linux-setup)**: Nix-based environment setup. -# Preview production build -npm run docs:preview -``` +## Community & Support -**Note**: New pages are automatically routed based on their folder structure (e.g., `docs/docs/index.md` maps to `/docs/index`). To add them to the sidebar, update the `sidebar` configuration in `.vitepress/config.js`. +- **[Issues](https://github.com/rmcrackan/Libation/issues)**: Report bugs or request features. +- **[PayPal](https://paypal.me/mcrackan?locale.x=en_us)**: Support the project if you find it useful. + +## License + +Libation is released under the GPL-3.0 License + +--- + +If you found this useful, tell a friend. If you found this REALLY useful, you can click here to PayPal.me +...or just tell more friends. As long as I'm maintaining this software, it will remain free and open source. diff --git a/docs/development/contribute.md b/docs/development/contribute.md new file mode 100644 index 00000000..9e588067 --- /dev/null +++ b/docs/development/contribute.md @@ -0,0 +1,35 @@ +# Contribute to Libation + +We welcome contributions! Whether it's fixing bugs, adding features, or improving documentation, your help is appreciated. + +> [!WARNING] +> Read the [Development - Getting Started](/docs/development/getting-started) guide first. + +## Getting Started + +1. **Fork the repository** on GitHub. +2. **Clone your fork** locally. +3. **Create a branch** for your feature or fix: + ```bash + git checkout -b feature/my-new-feature + ``` + +## Code Style + +- Follow standard C# coding conventions. +- Ensure your code builds and runs without errors. +- Clean up any unused dependencies or imports. + +## Submitting a Pull Request + +1. **Commit your changes** with a clear message. +2. **Push to your fork**: + ```bash + git push origin feature/my-new-feature + ``` +3. **Open a Pull Request** on the main repository. +4. Describe your changes and link any related issues. + +## Reporting Issues + +If you find a bug or have a feature request, please [open an issue](https://github.com/rmcrackan/Libation/issues) on GitHub. diff --git a/docs/development/getting-started.md b/docs/development/getting-started.md new file mode 100644 index 00000000..2b5599c4 --- /dev/null +++ b/docs/development/getting-started.md @@ -0,0 +1,65 @@ +# Developing Libation + +Libation is built using .NET and Avalonia UI. To get started with development, you'll need to set up your environment. + +## Prerequisites + +- **.NET SDK**: The project currently targets `.net10.0`. You will need the latest .NET SDK. +- **IDE**: We recommend [Visual Studio Code](https://code.visualstudio.com/), [JetBrains Rider](https://www.jetbrains.com/rider/), or Visual Studio. +- **Git**: For version control. + +## Setup + +1. **Clone the repository**: + + ```bash + git clone https://github.com/rmcrackan/Libation.git + cd Libation + ``` + +2. **Restore dependencies**: + ```bash + dotnet restore + ``` + +## Running Libation Locally + +You can run Libation directly from the source code using the .NET CLI or your IDE. + +### Using .NET CLI + +To run the desktop application (Avalonia): + +1. Navigate to the `Source/LibationAvalonia` directory: + + ```bash + cd Source/LibationAvalonia + ``` + +2. Run the application: + ```bash + dotnet run + ``` + +### Using Visual Studio / Rider + +1. Open `Libation.sln` (or open the root folder). +2. Set `LibationAvalonia` as the startup project. +3. Press Run/Debug. + +### Troubleshooting + +- **Assets/Cover Art**: If you encounter issues with missing assets, ensure you have run `git submodule update --init --recursive` if applicable, although Libation typically manages assets within the project. +- **Port/Network**: Libation makes network requests to Audible and other services. Ensure your firewall allows the application to connect. + +## Linux Specifics + +For Linux users, we have a specific guide using Nix: + +- [Linux Development Setup with Nix](./nix-linux-setup.md) + +## Documentation Specifics + +For Documentaion, we have a specific guide using VitePress: + +- [Website & Docs Development](./website.md) diff --git a/docs/advanced/linux-development-setup-using-nix.md b/docs/development/nix-linux-setup.md similarity index 100% rename from docs/advanced/linux-development-setup-using-nix.md rename to docs/development/nix-linux-setup.md diff --git a/docs/development/website.md b/docs/development/website.md new file mode 100644 index 00000000..4a5d720f --- /dev/null +++ b/docs/development/website.md @@ -0,0 +1,27 @@ +# Website & Docs + +This documentation is built with [VitePress](https://vitepress.dev/) and located in the `docs` directory. For more information like [markdown syntax](https://vitepress.dev/guide/markdown#advanced-configuration) and [routing](https://vitepress.dev/guide/routing) or other features, refer [VitePress documentation](https://vitepress.dev/guide). + +### Prerequisites + +- Node.js 18+ + +### Commands + +```bash +# Install dependencies +npm install + +# Start local dev server (http://localhost:5173) +npm run docs:dev + +# Build for production (output: docs/.vitepress/dist) +npm run docs:build + +# Preview production build +npm run docs:preview +``` + +### Note + +New pages are automatically routed based on their folder structure (e.g., `docs/docs/index.md` maps to `/docs/index`). To add them to the sidebar, update the `sidebar` configuration in `.vitepress/config.js`. diff --git a/docs/index.md b/docs/index.md index 32d80beb..3de7ce63 100644 --- a/docs/index.md +++ b/docs/index.md @@ -25,10 +25,16 @@ Learn about Libation's powerful features: ## Advanced -Advanced topics for power users and developers: +- **[Advanced Topics](/docs/advanced/advanced)** - Deep dives and configuration details -- **[Advanced Topics](/docs/advanced/advanced)** - Advanced configuration and usage -- **[Linux Development Setup](/docs/advanced/linux-development-setup-using-nix)** - Set up a development environment on Linux using Nix +## Development + +Join the community and contribute to Libation: + +- **[Getting Started](/docs/development/getting-started)** - Set up your development environment +- **[Contribute](/docs/development/contribute)** - How to contribute code and handle PRs +- **[Website & Docs](/docs/development/website)** - Help improve this documentation +- **[Linux Setup (Nix)](/docs/development/nix-linux-setup)** - Nix-based setup for Linux users ## Support & Community diff --git a/index.md b/index.md index 2006f11b..6c8a4946 100644 --- a/index.md +++ b/index.md @@ -80,10 +80,16 @@ Learn about Libation's powerful features: ### Advanced -Advanced topics for power users and developers: +- **[Advanced Topics](/docs/advanced/advanced)** - Deep dives and configuration details -- **[Advanced Topics](/docs/advanced/advanced)** - Advanced configuration and usage -- **[Linux Development Setup](/docs/advanced/linux-development-setup-using-nix)** - Set up a development environment on Linux using Nix +### Development + +Join the community and contribute to Libation: + +- **[Getting Started](/docs/development/getting-started)** - Set up your development environment +- **[Contribute](/docs/development/contribute)** - How to contribute code and handle PRs +- **[Website & Docs](/docs/development/website)** - Help improve this documentation +- **[Linux Setup (Nix)](/docs/development/nix-linux-setup)** - Nix-based setup for Linux users ### Support & Community diff --git a/package-lock.json b/package-lock.json index 5ef3aa4c..56edd4cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -172,7 +172,6 @@ "integrity": "sha512-22SHEEVNjZfFWkFks3P6HilkR3rS7a6GjnCIqR22Zz4HNxdfT0FG+RE7efTcFVfLUkTTMQQybvaUcwMrHXYa7Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@algolia/client-common": "5.46.0", "@algolia/requester-browser-xhr": "5.46.0", @@ -1525,7 +1524,6 @@ "integrity": "sha512-7ML6fa2K93FIfifG3GMWhDEwT5qQzPTmoHKCTvhzGEwdbQ4n0yYUWZlLYT75WllTGJCJtNUI0C1ybN4BCegqvg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@algolia/abtesting": "1.12.0", "@algolia/client-abtesting": "5.46.0", @@ -1719,7 +1717,6 @@ "integrity": "sha512-v/Z8bvMCajtx4mEXmOo7QEsIzlIOqRXTIwgUfsFOF9gEsespdbD0AkPIka1bSXZ8Y8oZ+2IVDQZePkTfEHZl7Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "tabbable": "^6.3.0" } @@ -2338,7 +2335,6 @@ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -2441,7 +2437,6 @@ "integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.25", "@vue/compiler-sfc": "3.5.25",