diff --git a/app/lib/frontend/templates/package_versions.dart b/app/lib/frontend/templates/package_versions.dart index 10ddff7bf6..253bc1b95e 100644 --- a/app/lib/frontend/templates/package_versions.dart +++ b/app/lib/frontend/templates/package_versions.dart @@ -4,6 +4,7 @@ import 'package:_pub_shared/data/package_api.dart'; import 'package:collection/collection.dart' show IterableExtension; +import 'package:pub_dev/frontend/static_files.dart'; import 'package:pub_semver/pub_semver.dart'; import '../../package/model_properties.dart'; @@ -58,7 +59,32 @@ String renderPkgVersionsPage( } } - final blocks = []; + final versionsPlural = versions.length > 1 ? 'versions' : 'version'; + + final blocks = [ + d.p(classes: [ + 'pub-monochrome-icon-hoverable', + ], children: [ + d.text('${versions.length} $versionsPlural'), + d.a( + href: urls.pkgFeedUrl(data.package.name!), + title: 'Versions feed', + child: d.img( + classes: [ + 'pub-monochrome-icon', + 'filter-invert-on-dark', + 'versions-rss-image', + ], + image: d.Image( + src: staticUrls.getAssetUrl('/static/img/rss-feed-icon-4a4a4a.svg'), + alt: 'Versions feed', + width: 15, + height: 15, + ), + ), + ), + ]), + ]; if (stableVersionRows.isNotEmpty && prereleaseVersionRows.isNotEmpty && latestPrereleaseVersion != null) { diff --git a/app/test/frontend/golden/pkg_versions_page.html b/app/test/frontend/golden/pkg_versions_page.html index c7eb454616..b177f237fd 100644 --- a/app/test/frontend/golden/pkg_versions_page.html +++ b/app/test/frontend/golden/pkg_versions_page.html @@ -212,6 +212,12 @@

Metadata

+

+ 3 versions + + Versions feed + +

The latest prerelease was 2.0.0-dev diff --git a/app/test/task/testdata/goldens/packages/oxygen/versions.html b/app/test/task/testdata/goldens/packages/oxygen/versions.html index 473b77d01a..66a049f973 100644 --- a/app/test/task/testdata/goldens/packages/oxygen/versions.html +++ b/app/test/task/testdata/goldens/packages/oxygen/versions.html @@ -204,6 +204,12 @@

Metadata

+

+ 2 versions + + Versions feed + +

Stable versions of oxygen

diff --git a/pkg/web_css/lib/src/_pkg.scss b/pkg/web_css/lib/src/_pkg.scss index 655558fa14..27fd0245c1 100644 --- a/pkg/web_css/lib/src/_pkg.scss +++ b/pkg/web_css/lib/src/_pkg.scss @@ -47,6 +47,12 @@ margin-right: 3px; } +.versions-rss-image { + margin-left: 8px; + position: relative; + top: 2px; +} + .version-table { width: 100%; border-spacing: 0; diff --git a/static/img/rss-feed-icon-4a4a4a.svg b/static/img/rss-feed-icon-4a4a4a.svg new file mode 100755 index 0000000000..23fcc0ccfb --- /dev/null +++ b/static/img/rss-feed-icon-4a4a4a.svg @@ -0,0 +1 @@ + \ No newline at end of file