It is now possible import and export decks. Decks can be imported from
OPML files. For each import a new deck is created. If the OPML file
contains nested outline tags, we will create one column for each
parent outline tag. Otherwise we will create a column named Unknown
and all sources to this column. When a deck is exported we will create
one outline tag for each column with it's sources as siblings.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/feeddeck/feeddeck/pull/251
**Author:** [@ricoberger](https://github.com/ricoberger)
**Created:** 4/26/2025
**Status:** ✅ Merged
**Merged:** 4/26/2025
**Merged by:** [@ricoberger](https://github.com/ricoberger)
**Base:** `main` ← **Head:** `allow-importing-exporting-of-decks`
---
### 📝 Commits (1)
- [`fcbb3a9`](https://github.com/feeddeck/feeddeck/commit/fcbb3a994ef38bd9e4674926ad218572d99d7332) Allow Importing / Exporting of Decks
### 📊 Changes
**25 files changed** (+1273 additions, -137 deletions)
<details>
<summary>View changed files</summary>
📝 `app/android/.gitignore` (+1 -0)
📝 `app/android/app/build.gradle` (+3 -0)
📝 `app/ios/Podfile` (+3 -0)
📝 `app/ios/Podfile.lock` (+7 -1)
📝 `app/ios/Runner/Info.plist` (+3 -1)
📝 `app/lib/models/column.dart` (+38 -5)
📝 `app/lib/models/source.dart` (+140 -35)
📝 `app/lib/models/sources/github.dart` (+70 -25)
📝 `app/lib/models/sources/googlenews.dart` (+57 -19)
📝 `app/lib/models/sources/stackoverflow.dart` (+49 -28)
📝 `app/lib/repositories/app_repository.dart` (+13 -0)
📝 `app/lib/widgets/item/details/utils/item_piped/item_piped_video_web.dart` (+2 -2)
📝 `app/lib/widgets/item/details/utils/item_youtube/item_youtube_video_web.dart` (+2 -2)
➕ `app/lib/widgets/settings/app_settings/app_settings.dart` (+29 -0)
➕ `app/lib/widgets/settings/app_settings/app_settings_export.dart` (+356 -0)
➕ `app/lib/widgets/settings/app_settings/app_settings_import.dart` (+435 -0)
📝 `app/lib/widgets/settings/settings.dart` (+11 -9)
📝 `app/macos/Flutter/GeneratedPluginRegistrant.swift` (+2 -0)
📝 `app/macos/Podfile.lock` (+6 -0)
📝 `app/macos/Runner/DebugProfile.entitlements` (+2 -0)
_...and 5 more files_
</details>
### 📄 Description
It is now possible import and export decks. Decks can be imported from
OPML files. For each import a new deck is created. If the OPML file
contains nested `outline` tags, we will create one column for each
parent `outline` tag. Otherwise we will create a column named `Unknown`
and all sources to this column. When a deck is exported we will create
one `outline` tag for each column with it's sources as siblings.
Closes #229
<!--
Keep PR title verbose enough and add prefix telling about what source it touches e.g "[rss] Add feature xyz" or if the
the PR is not realated to a source use "[core]", e.g. "[core] Fix xyz".
If you add a breaking change within your PR you should add ":warning:" to the title,
e.g. ":warning: [core] My breaking change"
-->
<!--
Description of what have been changed. Please also reference an issue, when available.
-->
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/feeddeck/feeddeck/pull/251
Author: @ricoberger
Created: 4/26/2025
Status: ✅ Merged
Merged: 4/26/2025
Merged by: @ricoberger
Base:
main← Head:allow-importing-exporting-of-decks📝 Commits (1)
fcbb3a9Allow Importing / Exporting of Decks📊 Changes
25 files changed (+1273 additions, -137 deletions)
View changed files
📝
app/android/.gitignore(+1 -0)📝
app/android/app/build.gradle(+3 -0)📝
app/ios/Podfile(+3 -0)📝
app/ios/Podfile.lock(+7 -1)📝
app/ios/Runner/Info.plist(+3 -1)📝
app/lib/models/column.dart(+38 -5)📝
app/lib/models/source.dart(+140 -35)📝
app/lib/models/sources/github.dart(+70 -25)📝
app/lib/models/sources/googlenews.dart(+57 -19)📝
app/lib/models/sources/stackoverflow.dart(+49 -28)📝
app/lib/repositories/app_repository.dart(+13 -0)📝
app/lib/widgets/item/details/utils/item_piped/item_piped_video_web.dart(+2 -2)📝
app/lib/widgets/item/details/utils/item_youtube/item_youtube_video_web.dart(+2 -2)➕
app/lib/widgets/settings/app_settings/app_settings.dart(+29 -0)➕
app/lib/widgets/settings/app_settings/app_settings_export.dart(+356 -0)➕
app/lib/widgets/settings/app_settings/app_settings_import.dart(+435 -0)📝
app/lib/widgets/settings/settings.dart(+11 -9)📝
app/macos/Flutter/GeneratedPluginRegistrant.swift(+2 -0)📝
app/macos/Podfile.lock(+6 -0)📝
app/macos/Runner/DebugProfile.entitlements(+2 -0)...and 5 more files
📄 Description
It is now possible import and export decks. Decks can be imported from
OPML files. For each import a new deck is created. If the OPML file
contains nested
outlinetags, we will create one column for eachparent
outlinetag. Otherwise we will create a column namedUnknownand all sources to this column. When a deck is exported we will create
one
outlinetag for each column with it's sources as siblings.Closes #229
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.