some View {
- HStack {
- Text(appCredit.name)
- Spacer()
- if let role = appCredit.role {
- Text(role)
- .foregroundColor(.secondary)
- }
- Image(systemName: "info.circle")
- .foregroundColor(.secondary)
- }
- .onTapGesture {
- guard let url = appCredit.url else { return }
- if let _ = URL(string: url) {
- Task { @MainActor in
- Browser.open(url, inBackground: false)
- }
- }
- }
- }
-}
-
-@available(macOS 12, *)
-struct CreditsNetNewsWireView_Previews: PreviewProvider {
- static var previews: some View {
- CreditsNetNewsWireView()
- }
-}
diff --git a/Mac/Resources/en-GB.lproj/Localizable.strings b/Mac/Resources/en-GB.lproj/Localizable.strings
index a15770112..20a466e6d 100644
--- a/Mac/Resources/en-GB.lproj/Localizable.strings
+++ b/Mac/Resources/en-GB.lproj/Localizable.strings
@@ -454,6 +454,12 @@
/* You've added all available extensions. */
"label.text.added-all-extensions" = "You've added all available extensions.";
+/* Primary Contributors */
+"label.text.primary-contributors" = "Primary Contributors";
+
+/* Additional Contributors */
+"label.text.additional-contributors" = "Additional Contributors";
+
/* Article */
"label.text.article" = "Article";
@@ -586,6 +592,15 @@
/* Subreddit */
"label.text.subreddit" = "Subreddit";
+/* Thanks */
+"label.text.thanks" = "Thanks";
+
+/* Thanks - Dedication */
+"label.text.thanks-details" = "
+Thanks to Sheila and my family; thanks to my friends in Seattle and around the globe; thanks to the ever-patient and ever-awesome NetNewsWire beta testers.
+Thanks to Gus Mueller for FMDB by Flying Meat Software. Thanks to GitHub and Slack for making open source collaboration easy and fun. Thanks to Ben Ubois at Feedbin for all the extra help with syncing and article rendering — and for hosting the server for the Reader view.
+NetNewsWire 6 is dedicated to everyone working to save democracy around the world.
";
+
/* Built-in */
"label.text.themes-builtin" = "Built-in Themes";
diff --git a/Mac/Resources/en.lproj/Localizable.strings b/Mac/Resources/en.lproj/Localizable.strings
index cba3a859f..729706083 100644
--- a/Mac/Resources/en.lproj/Localizable.strings
+++ b/Mac/Resources/en.lproj/Localizable.strings
@@ -447,6 +447,12 @@
/* You've added all available extensions. */
"label.text.added-all-extensions" = "You've added all available extensions.";
+/* Primary Contributors */
+"label.text.primary-contributors" = "Primary Contributors";
+
+/* Additional Contributors */
+"label.text.additional-contributors" = "Additional Contributors";
+
/* Article */
"label.text.article" = "Article";
@@ -579,6 +585,15 @@
/* Subreddit */
"label.text.subreddit" = "Subreddit";
+/* Thanks */
+"label.text.thanks" = "Thanks";
+
+/* Thanks - Dedication */
+"label.text.thanks-details" = "
+Thanks to Sheila and my family; thanks to my friends in Seattle and around the globe; thanks to the ever-patient and ever-awesome NetNewsWire beta testers.
+Thanks to Gus Mueller for FMDB by Flying Meat Software. Thanks to GitHub and Slack for making open source collaboration easy and fun. Thanks to Ben Ubois at Feedbin for all the extra help with syncing and article rendering — and for hosting the server for the Reader view.
+NetNewsWire 6 is dedicated to everyone working to save democracy around the world.
";
+
/* Built-in */
"label.text.themes-builtin" = "Built-in Themes";
diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj
index a319d30e9..cf07cc4fd 100644
--- a/NetNewsWire.xcodeproj/project.pbxproj
+++ b/NetNewsWire.xcodeproj/project.pbxproj
@@ -826,6 +826,8 @@
DF3630EF293618A900326FB8 /* SettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF3630EE293618A900326FB8 /* SettingsViewModel.swift */; };
DF394F0029357A180081EB6E /* NewArticleNotificationsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF394EFF29357A180081EB6E /* NewArticleNotificationsView.swift */; };
DF47CDB2294803AB00FCD57E /* AddExtensionListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF47CDB1294803AB00FCD57E /* AddExtensionListView.swift */; };
+ DF5124CA2A22D5FA00BBAB1F /* Html in Frameworks */ = {isa = PBXBuildFile; productRef = DF5124C92A22D5FA00BBAB1F /* Html */; };
+ DF5124CC2A22D62600BBAB1F /* AboutHTML.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF5124CB2A22D62600BBAB1F /* AboutHTML.swift */; };
DF59F072292085B800ACD33D /* ColorPaletteSelectorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF59F071292085B800ACD33D /* ColorPaletteSelectorView.swift */; };
DF59F0742920DB5100ACD33D /* AccountsManagementView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF59F0732920DB5100ACD33D /* AccountsManagementView.swift */; };
DF5AD10128D6922200CA3BF7 /* SmartFeedSummaryWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1768144D2564BCE000D98635 /* SmartFeedSummaryWidget.swift */; };
@@ -869,8 +871,7 @@
DFC14F0F28EA55BD00F6EE86 /* AboutWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFC14F0E28EA55BD00F6EE86 /* AboutWindowController.swift */; };
DFC14F1228EA5DC500F6EE86 /* AboutData.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF790D6128E990A900455FC7 /* AboutData.swift */; };
DFC14F1328EA677C00F6EE86 /* Bundle-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51F85BF42273625800C787DC /* Bundle-Extensions.swift */; };
- DFC14F1528EB177000F6EE86 /* AboutNetNewsWireView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFC14F1428EB177000F6EE86 /* AboutNetNewsWireView.swift */; };
- DFC14F1728EB17A800F6EE86 /* CreditsNetNewsWireView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFC14F1628EB17A800F6EE86 /* CreditsNetNewsWireView.swift */; };
+ DFC14F1728EB17A800F6EE86 /* AboutNewNewsWireView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFC14F1628EB17A800F6EE86 /* AboutNewNewsWireView.swift */; };
DFCE4F9128EF26F100405869 /* About.plist in Resources */ = {isa = PBXBuildFile; fileRef = DFCE4F9028EF26F000405869 /* About.plist */; };
DFCE4F9228EF26F100405869 /* About.plist in Resources */ = {isa = PBXBuildFile; fileRef = DFCE4F9028EF26F000405869 /* About.plist */; };
DFCE4F9428EF278300405869 /* Thanks.md in Resources */ = {isa = PBXBuildFile; fileRef = DFCE4F9328EF278300405869 /* Thanks.md */; };
@@ -1595,6 +1596,7 @@
DF3630EE293618A900326FB8 /* SettingsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewModel.swift; sourceTree = ""; };
DF394EFF29357A180081EB6E /* NewArticleNotificationsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewArticleNotificationsView.swift; sourceTree = ""; };
DF47CDB1294803AB00FCD57E /* AddExtensionListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddExtensionListView.swift; sourceTree = ""; };
+ DF5124CB2A22D62600BBAB1F /* AboutHTML.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutHTML.swift; sourceTree = ""; };
DF59F071292085B800ACD33D /* ColorPaletteSelectorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPaletteSelectorView.swift; sourceTree = ""; };
DF59F0732920DB5100ACD33D /* AccountsManagementView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountsManagementView.swift; sourceTree = ""; };
DF6DE5092965907A002EC085 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; };
@@ -1633,7 +1635,6 @@
DFB616AF29653A0600A359AB /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "../en-GB.lproj/MainWindow.strings"; sourceTree = ""; };
DFB616B029653A0600A359AB /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "../../../en-GB.lproj/RenameSheet.strings"; sourceTree = ""; };
DFB616B129653A0600A359AB /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "../en-GB.lproj/AddRedditFeedSheet.strings"; sourceTree = ""; };
- DFB616B229653A0600A359AB /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "../en-GB.lproj/AddTwitterFeedSheet.strings"; sourceTree = ""; };
DFB616B329653A0600A359AB /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "../en-GB.lproj/AddWebFeedSheet.strings"; sourceTree = ""; };
DFB616B429653A0600A359AB /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "../../en-GB.lproj/AddFolderSheet.strings"; sourceTree = ""; };
DFB616B529653A0600A359AB /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "../en-GB.lproj/Preferences.strings"; sourceTree = ""; };
@@ -1650,8 +1651,7 @@
DFBB4EAB2951BC0200639228 /* NNWThemeDocument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NNWThemeDocument.swift; sourceTree = ""; };
DFBB4EAF2951BCAC00639228 /* ArticleThemeManagerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleThemeManagerView.swift; sourceTree = ""; };
DFC14F0E28EA55BD00F6EE86 /* AboutWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutWindowController.swift; sourceTree = ""; };
- DFC14F1428EB177000F6EE86 /* AboutNetNewsWireView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutNetNewsWireView.swift; sourceTree = ""; };
- DFC14F1628EB17A800F6EE86 /* CreditsNetNewsWireView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreditsNetNewsWireView.swift; sourceTree = ""; };
+ DFC14F1628EB17A800F6EE86 /* AboutNewNewsWireView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutNewNewsWireView.swift; sourceTree = ""; };
DFCE4F9028EF26F000405869 /* About.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = About.plist; sourceTree = ""; };
DFCE4F9328EF278300405869 /* Thanks.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = Thanks.md; sourceTree = ""; };
DFD406F4291F79C900C02962 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; };
@@ -1791,6 +1791,7 @@
51C4CFF624D37DD500AF9874 /* Secrets in Frameworks */,
51A737AE24DB19730015FA66 /* RSCore in Frameworks */,
51A737C824DB19CC0015FA66 /* RSParser in Frameworks */,
+ DF5124CA2A22D5FA00BBAB1F /* Html in Frameworks */,
179C39EA26F76B0500D4E741 /* Zip in Frameworks */,
51E4DAED2425F6940091EB5B /* CloudKit.framework in Frameworks */,
514C16E124D2EF38009A3AFA /* RSCoreResources in Frameworks */,
@@ -3007,8 +3008,8 @@
isa = PBXGroup;
children = (
DFC14F0E28EA55BD00F6EE86 /* AboutWindowController.swift */,
- DFC14F1428EB177000F6EE86 /* AboutNetNewsWireView.swift */,
- DFC14F1628EB17A800F6EE86 /* CreditsNetNewsWireView.swift */,
+ DFC14F1628EB17A800F6EE86 /* AboutNewNewsWireView.swift */,
+ DF5124CB2A22D62600BBAB1F /* AboutHTML.swift */,
);
path = About;
sourceTree = "";
@@ -3303,6 +3304,7 @@
513277602590FC640064F1E7 /* ArticlesDatabase */,
513277632590FC640064F1E7 /* SyncDatabase */,
179C39E926F76B0500D4E741 /* Zip */,
+ DF5124C92A22D5FA00BBAB1F /* Html */,
);
productName = NetNewsWire;
productReference = 849C64601ED37A5D003D8FC0 /* NetNewsWire.app */;
@@ -3423,6 +3425,7 @@
17192AD82567B3D500AAEACA /* XCRemoteSwiftPackageReference "Sparkle-Binary" */,
519CA8E325841DB700EB079A /* XCRemoteSwiftPackageReference "plcrashreporter" */,
179D280926F6F93D003B2E0A /* XCRemoteSwiftPackageReference "Zip" */,
+ DF5124C82A22D5FA00BBAB1F /* XCRemoteSwiftPackageReference "swift-html" */,
);
productRefGroup = 849C64611ED37A5D003D8FC0 /* Products */;
projectDirPath = "";
@@ -3599,7 +3602,6 @@
511D43D2231FA62C00FB1562 /* GlobalKeyboardShortcuts.plist in Resources */,
84C9FCA12262A1B300D921D6 /* Main.storyboard in Resources */,
51BB7C312335ACDE008E8144 /* page.html in Resources */,
- 516A093723609A3600EAE89B /* SettingsComboTableViewCell.xib in Resources */,
51077C5A27A86D16000C71DB /* Hyperlegible.nnwtheme in Resources */,
DDF9E1D928EDF2FC000BC355 /* notificationSoundBlip.mp3 in Resources */,
DFD86796295D553D0070D62D /* Localizable.strings in Resources */,
@@ -4470,6 +4472,7 @@
841ABA5E20145E9200980E11 /* FolderInspectorViewController.swift in Sources */,
84DEE56522C32CA4005FC42C /* SmartFeedDelegate.swift in Sources */,
845213231FCA5B11003B6E93 /* ImageDownloader.swift in Sources */,
+ DF5124CC2A22D62600BBAB1F /* AboutHTML.swift in Sources */,
51FA73B72332D5F70090D516 /* LegacyArticleExtractorButton.swift in Sources */,
849A97431ED9EAA9007D329B /* AddFolderWindowController.swift in Sources */,
8405DDA522168C62008CE1BF /* TimelineContainerViewController.swift in Sources */,
@@ -4479,7 +4482,6 @@
849A97801ED9EC42007D329B /* DetailViewController.swift in Sources */,
173A64172547BE0900267F6E /* AccountType+Helpers.swift in Sources */,
518C3193237B00D9004D740F /* DetailIconSchemeHandler.swift in Sources */,
- DFC14F1528EB177000F6EE86 /* AboutNetNewsWireView.swift in Sources */,
84C9FC6722629B9000D921D6 /* AppDelegate.swift in Sources */,
510C417F24E5D1AE008226FD /* ExtensionContainersFile.swift in Sources */,
84C9FC7A22629E1200D921D6 /* PreferencesTableViewBackgroundView.swift in Sources */,
@@ -4487,7 +4489,7 @@
DFC14F1328EA677C00F6EE86 /* Bundle-Extensions.swift in Sources */,
8426119E1FCB6ED40086A189 /* HTMLMetadataDownloader.swift in Sources */,
849A976E1ED9EBC8007D329B /* TimelineViewController.swift in Sources */,
- DFC14F1728EB17A800F6EE86 /* CreditsNetNewsWireView.swift in Sources */,
+ DFC14F1728EB17A800F6EE86 /* AboutNewNewsWireView.swift in Sources */,
5154368B229404D1005E1CDF /* FaviconGenerator.swift in Sources */,
5183CCE6226F4E110010922C /* RefreshInterval.swift in Sources */,
849A97771ED9EC04007D329B /* TimelineCellData.swift in Sources */,
@@ -4676,15 +4678,6 @@
name = MainInterface.storyboard;
sourceTree = "";
};
- 514A897F244FD63F0085E65D /* AddTwitterFeedSheet.xib */ = {
- isa = PBXVariantGroup;
- children = (
- 514A8980244FD63F0085E65D /* Base */,
- DFB616B229653A0600A359AB /* en-GB */,
- );
- name = AddTwitterFeedSheet.xib;
- sourceTree = "";
- };
6581C73B20CED60100F4AD34 /* SafariExtensionViewController.xib */ = {
isa = PBXVariantGroup;
children = (
@@ -5267,6 +5260,14 @@
minimumVersion = 1.0.0;
};
};
+ DF5124C82A22D5FA00BBAB1F /* XCRemoteSwiftPackageReference "swift-html" */ = {
+ isa = XCRemoteSwiftPackageReference;
+ repositoryURL = "https://github.com/pointfreeco/swift-html.git";
+ requirement = {
+ kind = upToNextMajorVersion;
+ minimumVersion = 0.4.0;
+ };
+ };
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
@@ -5501,6 +5502,11 @@
package = 5102AE4324D17E820050839C /* XCRemoteSwiftPackageReference "RSCore" */;
productName = RSCore;
};
+ DF5124C92A22D5FA00BBAB1F /* Html */ = {
+ isa = XCSwiftPackageProductDependency;
+ package = DF5124C82A22D5FA00BBAB1F /* XCRemoteSwiftPackageReference "swift-html" */;
+ productName = Html;
+ };
/* End XCSwiftPackageProductDependency section */
};
rootObject = 849C64581ED37A5D003D8FC0 /* Project object */;
diff --git a/NetNewsWire.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/NetNewsWire.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
index 89207c710..063bafc61 100644
--- a/NetNewsWire.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ b/NetNewsWire.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
@@ -109,6 +109,24 @@
"version": "2.0.1"
}
},
+ {
+ "package": "swift-html",
+ "repositoryURL": "https://github.com/pointfreeco/swift-html.git",
+ "state": {
+ "branch": null,
+ "revision": "f53c38c4b841841f36afa1866093c908cadaa736",
+ "version": "0.4.0"
+ }
+ },
+ {
+ "package": "swift-snapshot-testing",
+ "repositoryURL": "https://github.com/pointfreeco/swift-snapshot-testing.git",
+ "state": {
+ "branch": null,
+ "revision": "cef5b3f6f11781dd4591bdd1dd0a3d22bd609334",
+ "version": "1.11.0"
+ }
+ },
{
"package": "Swifter",
"repositoryURL": "https://github.com/httpswift/swifter.git",