diff --git a/app/lib/frontend/templates/layout.dart b/app/lib/frontend/templates/layout.dart index 4cec68a38f..20fb88715b 100644 --- a/app/lib/frontend/templates/layout.dart +++ b/app/lib/frontend/templates/layout.dart @@ -51,6 +51,10 @@ String renderLayoutPage( /// The canonical content link that will be put in the header. /// https://support.google.com/webmasters/answer/139066?hl=en String? canonicalUrl, + + /// The URL for the package versions feed. + String? versionsFeedUrl, + String? versionsFeedTitle, SearchForm? searchForm, bool noIndex = false, PageData? pageData, @@ -120,6 +124,8 @@ String renderLayoutPage( schemaOrgSearchActionJson: isRoot ? _schemaOrgSearchAction : null, moderationUrl: moderationUrl, moderationSubject: moderationSubject, + versionsFeedUrl: versionsFeedUrl, + versionsFeedTitle: versionsFeedTitle, ).toString(); } diff --git a/app/lib/frontend/templates/package.dart b/app/lib/frontend/templates/package.dart index 7c574b7547..ccad207151 100644 --- a/app/lib/frontend/templates/package.dart +++ b/app/lib/frontend/templates/package.dart @@ -290,6 +290,9 @@ String _renderPkgPage({ data.version, editable: pkgPageTab == urls.PkgPageTab.admin, ), + versionsFeedUrl: urls.pkgFeedUrl(data.package.name!), + versionsFeedTitle: + 'Recently published versions of package ${data.package.name!} on pub.dev', ); } diff --git a/app/lib/frontend/templates/views/shared/layout.dart b/app/lib/frontend/templates/views/shared/layout.dart index c96dcd735f..8cb5befeb0 100644 --- a/app/lib/frontend/templates/views/shared/layout.dart +++ b/app/lib/frontend/templates/views/shared/layout.dart @@ -30,6 +30,8 @@ d.Node pageLayoutNode({ required Map? schemaOrgSearchActionJson, required String? moderationUrl, required ModerationSubject? moderationSubject, + required String? versionsFeedUrl, + required String? versionsFeedTitle, }) { final appleTouchIconUrl = faviconUrl.endsWith('.png') ? faviconUrl @@ -112,9 +114,16 @@ d.Node pageLayoutNode({ d.link( rel: 'alternate', type: 'application/atom+xml', - title: 'Updated Packages Feed for Pub', + title: 'Recently published packages on pub.dev', href: '/feed.atom', ), + if (versionsFeedUrl != null && versionsFeedTitle != null) + d.link( + rel: 'alternate', + type: 'application/atom+xml', + title: versionsFeedTitle, + href: versionsFeedUrl, + ), d.link( rel: 'stylesheet', type: 'text/css', diff --git a/app/test/frontend/golden/authorized_page.html b/app/test/frontend/golden/authorized_page.html index 731488f299..b836bae691 100644 --- a/app/test/frontend/golden/authorized_page.html +++ b/app/test/frontend/golden/authorized_page.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/consent_page.html b/app/test/frontend/golden/consent_page.html index 5d4ae6b029..6be2b8c71d 100644 --- a/app/test/frontend/golden/consent_page.html +++ b/app/test/frontend/golden/consent_page.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/create_publisher_page.html b/app/test/frontend/golden/create_publisher_page.html index 8411ffb961..3ae2502de8 100644 --- a/app/test/frontend/golden/create_publisher_page.html +++ b/app/test/frontend/golden/create_publisher_page.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/error_page.html b/app/test/frontend/golden/error_page.html index e68a39a2b0..abd0777418 100644 --- a/app/test/frontend/golden/error_page.html +++ b/app/test/frontend/golden/error_page.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/help_page.html b/app/test/frontend/golden/help_page.html index 5de3cf8fa0..f6129aa618 100644 --- a/app/test/frontend/golden/help_page.html +++ b/app/test/frontend/golden/help_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/frontend/golden/landing_page.html b/app/test/frontend/golden/landing_page.html index 80cb7cff00..564bd9bc05 100644 --- a/app/test/frontend/golden/landing_page.html +++ b/app/test/frontend/golden/landing_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/frontend/golden/my_activity_log_page.html b/app/test/frontend/golden/my_activity_log_page.html index 9da8542383..f8b8e40ce8 100644 --- a/app/test/frontend/golden/my_activity_log_page.html +++ b/app/test/frontend/golden/my_activity_log_page.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/my_liked_packages.html b/app/test/frontend/golden/my_liked_packages.html index 031de8560f..dcba119b0c 100644 --- a/app/test/frontend/golden/my_liked_packages.html +++ b/app/test/frontend/golden/my_liked_packages.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/my_packages.html b/app/test/frontend/golden/my_packages.html index 63b8f021bc..0b6951dd63 100644 --- a/app/test/frontend/golden/my_packages.html +++ b/app/test/frontend/golden/my_packages.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/my_publishers.html b/app/test/frontend/golden/my_publishers.html index b45a812a04..13f8fe30b3 100644 --- a/app/test/frontend/golden/my_publishers.html +++ b/app/test/frontend/golden/my_publishers.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/pkg_activity_log_page.html b/app/test/frontend/golden/pkg_activity_log_page.html index 3909e292a2..c91318bc02 100644 --- a/app/test/frontend/golden/pkg_activity_log_page.html +++ b/app/test/frontend/golden/pkg_activity_log_page.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/pkg_admin_page.html b/app/test/frontend/golden/pkg_admin_page.html index c9de9a189f..7cdfe8ac6b 100644 --- a/app/test/frontend/golden/pkg_admin_page.html +++ b/app/test/frontend/golden/pkg_admin_page.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/pkg_changelog_page.html b/app/test/frontend/golden/pkg_changelog_page.html index 2ee006ad8f..69cad5e8fa 100644 --- a/app/test/frontend/golden/pkg_changelog_page.html +++ b/app/test/frontend/golden/pkg_changelog_page.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_example_page.html b/app/test/frontend/golden/pkg_example_page.html index 6132b90466..b3df481285 100644 --- a/app/test/frontend/golden/pkg_example_page.html +++ b/app/test/frontend/golden/pkg_example_page.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_index_page.html b/app/test/frontend/golden/pkg_index_page.html index 3dcd20c9be..670d5a12b7 100644 --- a/app/test/frontend/golden/pkg_index_page.html +++ b/app/test/frontend/golden/pkg_index_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/frontend/golden/pkg_install_page.html b/app/test/frontend/golden/pkg_install_page.html index 585a5e5b72..c709265254 100644 --- a/app/test/frontend/golden/pkg_install_page.html +++ b/app/test/frontend/golden/pkg_install_page.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_score_page.html b/app/test/frontend/golden/pkg_score_page.html index 4b9af22a62..46e5c0f8f0 100644 --- a/app/test/frontend/golden/pkg_score_page.html +++ b/app/test/frontend/golden/pkg_score_page.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html b/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html index 4b9af22a62..46e5c0f8f0 100644 --- a/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html +++ b/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_show_page.html b/app/test/frontend/golden/pkg_show_page.html index f1d4adfcd7..ff7577f5af 100644 --- a/app/test/frontend/golden/pkg_show_page.html +++ b/app/test/frontend/golden/pkg_show_page.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_show_page_discontinued.html b/app/test/frontend/golden/pkg_show_page_discontinued.html index ac5ee56fc9..34ad63852f 100644 --- a/app/test/frontend/golden/pkg_show_page_discontinued.html +++ b/app/test/frontend/golden/pkg_show_page_discontinued.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_show_page_flutter_plugin.html b/app/test/frontend/golden/pkg_show_page_flutter_plugin.html index 1f102ef8f3..4cc5f122d7 100644 --- a/app/test/frontend/golden/pkg_show_page_flutter_plugin.html +++ b/app/test/frontend/golden/pkg_show_page_flutter_plugin.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_show_page_publisher.html b/app/test/frontend/golden/pkg_show_page_publisher.html index cff2e8423b..e5c0a75c53 100644 --- a/app/test/frontend/golden/pkg_show_page_publisher.html +++ b/app/test/frontend/golden/pkg_show_page_publisher.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_show_page_retracted.html b/app/test/frontend/golden/pkg_show_page_retracted.html index 942a4fe114..aaef9b5752 100644 --- a/app/test/frontend/golden/pkg_show_page_retracted.html +++ b/app/test/frontend/golden/pkg_show_page_retracted.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_show_page_retracted_non_retracted_version.html b/app/test/frontend/golden/pkg_show_page_retracted_non_retracted_version.html index 2c97990830..404479b1f3 100644 --- a/app/test/frontend/golden/pkg_show_page_retracted_non_retracted_version.html +++ b/app/test/frontend/golden/pkg_show_page_retracted_non_retracted_version.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_show_version_page.html b/app/test/frontend/golden/pkg_show_version_page.html index 0282186d60..4a35d9411a 100644 --- a/app/test/frontend/golden/pkg_show_version_page.html +++ b/app/test/frontend/golden/pkg_show_version_page.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/frontend/golden/pkg_versions_page.html b/app/test/frontend/golden/pkg_versions_page.html index c7eb454616..14cafc00fc 100644 --- a/app/test/frontend/golden/pkg_versions_page.html +++ b/app/test/frontend/golden/pkg_versions_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/frontend/golden/publisher_activity_log_page.html b/app/test/frontend/golden/publisher_activity_log_page.html index 6b8e5c090b..aeca2eb3fe 100644 --- a/app/test/frontend/golden/publisher_activity_log_page.html +++ b/app/test/frontend/golden/publisher_activity_log_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/frontend/golden/publisher_admin_page.html b/app/test/frontend/golden/publisher_admin_page.html index b0d4c25187..54f30dae27 100644 --- a/app/test/frontend/golden/publisher_admin_page.html +++ b/app/test/frontend/golden/publisher_admin_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/frontend/golden/publisher_list_page.html b/app/test/frontend/golden/publisher_list_page.html index 18ab7205d2..12d8a57073 100644 --- a/app/test/frontend/golden/publisher_list_page.html +++ b/app/test/frontend/golden/publisher_list_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/frontend/golden/publisher_packages_page.html b/app/test/frontend/golden/publisher_packages_page.html index c26a6e32dc..da8403e8ac 100644 --- a/app/test/frontend/golden/publisher_packages_page.html +++ b/app/test/frontend/golden/publisher_packages_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/frontend/golden/publisher_unlisted_packages_page.html b/app/test/frontend/golden/publisher_unlisted_packages_page.html index cc9990ebd1..cbce1c5aec 100644 --- a/app/test/frontend/golden/publisher_unlisted_packages_page.html +++ b/app/test/frontend/golden/publisher_unlisted_packages_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/frontend/golden/report_page.html b/app/test/frontend/golden/report_page.html index 1289be58da..f846102373 100644 --- a/app/test/frontend/golden/report_page.html +++ b/app/test/frontend/golden/report_page.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/report_page_appeal.html b/app/test/frontend/golden/report_page_appeal.html index 90b6850d42..5beaa3410b 100644 --- a/app/test/frontend/golden/report_page_appeal.html +++ b/app/test/frontend/golden/report_page_appeal.html @@ -24,7 +24,7 @@ - + diff --git a/app/test/frontend/golden/search_page.html b/app/test/frontend/golden/search_page.html index e6c6f5427a..a8312433f7 100644 --- a/app/test/frontend/golden/search_page.html +++ b/app/test/frontend/golden/search_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/frontend/golden/topics_page.html b/app/test/frontend/golden/topics_page.html index 4af91d2b54..bb30b311c2 100644 --- a/app/test/frontend/golden/topics_page.html +++ b/app/test/frontend/golden/topics_page.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/task/testdata/goldens/packages/oxygen.html b/app/test/task/testdata/goldens/packages/oxygen.html index ff9d1af675..8a5cad3406 100644 --- a/app/test/task/testdata/goldens/packages/oxygen.html +++ b/app/test/task/testdata/goldens/packages/oxygen.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/changelog.html b/app/test/task/testdata/goldens/packages/oxygen/changelog.html index a2894ef786..53c454f450 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/changelog.html +++ b/app/test/task/testdata/goldens/packages/oxygen/changelog.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/example.html b/app/test/task/testdata/goldens/packages/oxygen/example.html index 17b242bc63..1919dcbc5c 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/example.html +++ b/app/test/task/testdata/goldens/packages/oxygen/example.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/install.html b/app/test/task/testdata/goldens/packages/oxygen/install.html index 8438ca9d13..ee7adb904a 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/install.html +++ b/app/test/task/testdata/goldens/packages/oxygen/install.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/license.html b/app/test/task/testdata/goldens/packages/oxygen/license.html index 4cfbc0c009..289bbc55c9 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/license.html +++ b/app/test/task/testdata/goldens/packages/oxygen/license.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/score.html b/app/test/task/testdata/goldens/packages/oxygen/score.html index fbc4fa454e..21996826a6 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/score.html +++ b/app/test/task/testdata/goldens/packages/oxygen/score.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/versions.html b/app/test/task/testdata/goldens/packages/oxygen/versions.html index 473b77d01a..98e9f15e71 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/versions.html +++ b/app/test/task/testdata/goldens/packages/oxygen/versions.html @@ -25,7 +25,7 @@ - + diff --git a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0.html b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0.html index 4214843329..5345aa5a88 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0.html +++ b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/changelog.html b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/changelog.html index 5ecdbc10b1..de33860e3f 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/changelog.html +++ b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/changelog.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/example.html b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/example.html index 48b0857d80..0015d0709d 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/example.html +++ b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/example.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/install.html b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/install.html index 7598273941..0daa7500da 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/install.html +++ b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/install.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/license.html b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/license.html index 7db6cce3cc..ba6dcc35df 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/license.html +++ b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/license.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/score.html b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/score.html index 59995c4e88..a619308fd4 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/score.html +++ b/app/test/task/testdata/goldens/packages/oxygen/versions/1.0.0/score.html @@ -25,7 +25,8 @@ - + + diff --git a/app/test/task/testdata/goldens/packages/oxygen/versions/2.0.0.html b/app/test/task/testdata/goldens/packages/oxygen/versions/2.0.0.html index ff9d1af675..8a5cad3406 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/versions/2.0.0.html +++ b/app/test/task/testdata/goldens/packages/oxygen/versions/2.0.0.html @@ -25,7 +25,8 @@ - + +