Skip to content

Commit aa63b6f

Browse files
authored
Link to the RSS/atom feed from the versions page. (#8731)
1 parent bb5f41f commit aa63b6f

File tree

5 files changed

+46
-1
lines changed

5 files changed

+46
-1
lines changed

app/lib/frontend/templates/package_versions.dart

+27-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import 'package:_pub_shared/data/package_api.dart';
66
import 'package:collection/collection.dart' show IterableExtension;
7+
import 'package:pub_dev/frontend/static_files.dart';
78
import 'package:pub_semver/pub_semver.dart';
89

910
import '../../package/model_properties.dart';
@@ -58,7 +59,32 @@ String renderPkgVersionsPage(
5859
}
5960
}
6061

61-
final blocks = <d.Node>[];
62+
final versionsPlural = versions.length > 1 ? 'versions' : 'version';
63+
64+
final blocks = <d.Node>[
65+
d.p(classes: [
66+
'pub-monochrome-icon-hoverable',
67+
], children: [
68+
d.text('${versions.length} $versionsPlural'),
69+
d.a(
70+
href: urls.pkgFeedUrl(data.package.name!),
71+
title: 'Versions feed',
72+
child: d.img(
73+
classes: [
74+
'pub-monochrome-icon',
75+
'filter-invert-on-dark',
76+
'versions-rss-image',
77+
],
78+
image: d.Image(
79+
src: staticUrls.getAssetUrl('/static/img/rss-feed-icon-4a4a4a.svg'),
80+
alt: 'Versions feed',
81+
width: 15,
82+
height: 15,
83+
),
84+
),
85+
),
86+
]),
87+
];
6288
if (stableVersionRows.isNotEmpty &&
6389
prereleaseVersionRows.isNotEmpty &&
6490
latestPrereleaseVersion != null) {

app/test/frontend/golden/pkg_versions_page.html

+6
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,12 @@ <h3 class="detail-lead-title">Metadata</h3>
212212
<div class="detail-container detail-body-main">
213213
<div class="detail-tabs-content">
214214
<section class="tab-content detail-tab-versions-content -active">
215+
<p class="pub-monochrome-icon-hoverable">
216+
3 versions
217+
<a href="/api/packages/oxygen/feed.atom" title="Versions feed">
218+
<img class="pub-monochrome-icon filter-invert-on-dark versions-rss-image" src="/static/hash-%%etag%%/img/rss-feed-icon-4a4a4a.svg" alt="Versions feed" width="15" height="15"/>
219+
</a>
220+
</p>
215221
<p>
216222
The latest prerelease was
217223
<a href="#prerelease">2.0.0-dev</a>

app/test/task/testdata/goldens/packages/oxygen/versions.html

+6
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,12 @@ <h3 class="detail-lead-title">Metadata</h3>
204204
<div class="detail-container detail-body-main">
205205
<div class="detail-tabs-content">
206206
<section class="tab-content detail-tab-versions-content -active">
207+
<p class="pub-monochrome-icon-hoverable">
208+
2 versions
209+
<a href="/api/packages/oxygen/feed.atom" title="Versions feed">
210+
<img class="pub-monochrome-icon filter-invert-on-dark versions-rss-image" src="/static/hash-%%etag%%/img/rss-feed-icon-4a4a4a.svg" alt="Versions feed" width="15" height="15"/>
211+
</a>
212+
</p>
207213
<h2 id="stable">Stable versions of oxygen</h2>
208214
<table class="version-table" data-package="oxygen">
209215
<thead>

pkg/web_css/lib/src/_pkg.scss

+6
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@
4747
margin-right: 3px;
4848
}
4949

50+
.versions-rss-image {
51+
margin-left: 8px;
52+
position: relative;
53+
top: 2px;
54+
}
55+
5056
.version-table {
5157
width: 100%;
5258
border-spacing: 0;

static/img/rss-feed-icon-4a4a4a.svg

+1
Loading

0 commit comments

Comments
 (0)