Skip to content

Commit 67b835d

Browse files
authored
Migrate pkg/header.mustache (#5000)
* Migrate pkg/header.mustache * rename node function
1 parent 7907a87 commit 67b835d

14 files changed

+124
-77
lines changed

app/lib/frontend/templates/package.dart

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'dart:convert';
66

77
import 'package:client_data/page_data.dart';
88
import 'package:pana/pana.dart' show getRepositoryUrl, LicenseNames;
9+
import 'package:pub_dev/frontend/templates/views/pkg/header.dart';
910
import 'package:pubspec_parse/pubspec_parse.dart' show HostedDependency;
1011

1112
import '../../package/model_properties.dart';
@@ -217,41 +218,19 @@ String renderPkgHeader(PackagePageData data) {
217218
final package = data.package!;
218219
final showPrereleaseVersion = data.latestReleases!.showPrerelease;
219220
final showPreviewVersion = data.latestReleases!.showPreview;
220-
final bool showUpdated =
221+
final bool showReleases =
221222
!data.isLatestStable || showPrereleaseVersion || showPreviewVersion;
222223

223224
final isNullSafe =
224225
data.toPackageView().tags.contains(PackageVersionTags.isNullSafe);
225-
final nullSafeBadgeHtml = isNullSafe ? nullSafeBadgeNode().toString() : null;
226+
final metadataHtml = packageHeaderNode(
227+
packageName: package.name!,
228+
publisherId: package.publisherId,
229+
published: data.version!.created!,
230+
isNullSafe: isNullSafe,
231+
releases: showReleases ? data.latestReleases : null,
232+
).toString();
226233

227-
final metadataHtml = templateCache.renderTemplate('pkg/header', {
228-
'publisher_id': package.publisherId,
229-
'publisher_url': package.publisherId == null
230-
? null
231-
: urls.publisherUrl(package.publisherId!),
232-
'null_safe_badge_html': nullSafeBadgeHtml,
233-
'latest': {
234-
'show_updated': showUpdated,
235-
'show_prerelease_version': showPrereleaseVersion,
236-
'show_preview_version': showPreviewVersion,
237-
'stable_url': urls.pkgPageUrl(package.name!),
238-
'stable_version': data.latestReleases!.stable.version,
239-
'prerelease_url': showPrereleaseVersion
240-
? urls.pkgPageUrl(package.name!,
241-
version: data.latestReleases!.prerelease!.version)
242-
: null,
243-
'prerelease_version': showPrereleaseVersion
244-
? data.latestReleases!.prerelease!.version
245-
: null,
246-
'preview_url': showPreviewVersion
247-
? urls.pkgPageUrl(package.name!,
248-
version: data.latestReleases!.preview!.version)
249-
: null,
250-
'preview_version':
251-
showPreviewVersion ? data.latestReleases!.preview!.version : null,
252-
},
253-
'short_created': data.version!.shortCreated,
254-
});
255234
final pkgView = data.toPackageView();
256235
return renderDetailHeader(
257236
titleHtml: titleContentNode(
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
2+
// for details. All rights reserved. Use of this source code is governed by a
3+
// BSD-style license that can be found in the LICENSE file.
4+
5+
import '../../../../package/models.dart';
6+
import '../../../../shared/urls.dart' as urls;
7+
import '../../../../shared/utils.dart' show shortDateFormat;
8+
import '../../../dom/dom.dart' as d;
9+
import '../../../static_files.dart';
10+
import '../../package_misc.dart';
11+
12+
d.Node packageHeaderNode({
13+
required String packageName,
14+
required String? publisherId,
15+
required DateTime published,
16+
required bool isNullSafe,
17+
required LatestReleases? releases,
18+
}) {
19+
return d.fragment([
20+
d.text('Published '),
21+
d.span(text: shortDateFormat.format(published)),
22+
if (publisherId != null) ..._publisher(publisherId),
23+
if (isNullSafe) nullSafeBadgeNode(),
24+
if (releases != null) ..._releases(packageName, releases),
25+
]);
26+
}
27+
28+
Iterable<d.Node> _publisher(String publisherId) {
29+
return [
30+
d.text('• '),
31+
d.a(
32+
classes: ['-pub-publisher'],
33+
href: urls.publisherUrl(publisherId),
34+
children: [
35+
d.img(
36+
classes: ['-pub-publisher-shield'],
37+
title: 'Published by a pub.dev verified publisher',
38+
src:
39+
staticUrls.getAssetUrl('/static/img/verified-publisher-blue.svg'),
40+
),
41+
d.text(publisherId),
42+
],
43+
),
44+
];
45+
}
46+
47+
List<d.Node> _releases(String package, LatestReleases releases) {
48+
return [
49+
d.text('• Latest: '),
50+
d.span(
51+
child: d.a(
52+
href: urls.pkgPageUrl(package),
53+
text: releases.stable.version,
54+
),
55+
),
56+
if (releases.showPreview)
57+
..._versionLink(
58+
package: package,
59+
version: releases.preview!.version,
60+
label: 'Preview',
61+
title: 'Preview is a stable version that depends on a prerelease SDK.',
62+
),
63+
if (releases.showPrerelease)
64+
..._versionLink(
65+
package: package,
66+
version: releases.prerelease!.version,
67+
label: 'Prerelease',
68+
),
69+
];
70+
}
71+
72+
List<d.Node> _versionLink({
73+
required String package,
74+
required String version,
75+
required String label,
76+
String? title,
77+
}) {
78+
return [
79+
d.text(' / '),
80+
d.span(
81+
attributes: title != null ? {'title': title} : null,
82+
children: [
83+
d.text('$label: '),
84+
d.a(href: urls.pkgPageUrl(package, version: version), text: version),
85+
],
86+
),
87+
];
88+
}

app/lib/frontend/templates/views/pkg/header.mustache

Lines changed: 0 additions & 29 deletions
This file was deleted.

app/pubspec.lock

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ packages:
6363
name: async
6464
url: "https://pub.dartlang.org"
6565
source: hosted
66-
version: "2.8.2"
66+
version: "2.8.1"
6767
basics:
6868
dependency: "direct main"
6969
description:
@@ -91,7 +91,7 @@ packages:
9191
name: build
9292
url: "https://pub.dartlang.org"
9393
source: hosted
94-
version: "2.1.0"
94+
version: "2.0.3"
9595
build_config:
9696
dependency: transitive
9797
description:
@@ -119,14 +119,14 @@ packages:
119119
name: build_runner
120120
url: "https://pub.dartlang.org"
121121
source: hosted
122-
version: "2.1.1"
122+
version: "2.0.6"
123123
build_runner_core:
124124
dependency: transitive
125125
description:
126126
name: build_runner_core
127127
url: "https://pub.dartlang.org"
128128
source: hosted
129-
version: "7.1.0"
129+
version: "7.0.1"
130130
build_verify:
131131
dependency: "direct dev"
132132
description:
@@ -147,7 +147,7 @@ packages:
147147
name: built_value
148148
url: "https://pub.dartlang.org"
149149
source: hosted
150-
version: "8.1.2"
150+
version: "8.1.1"
151151
charcode:
152152
dependency: transitive
153153
description:
@@ -301,7 +301,7 @@ packages:
301301
name: grpc
302302
url: "https://pub.dartlang.org"
303303
source: hosted
304-
version: "3.0.1"
304+
version: "3.0.0"
305305
html:
306306
dependency: "direct main"
307307
description:
@@ -623,7 +623,7 @@ packages:
623623
name: source_gen
624624
url: "https://pub.dartlang.org"
625625
source: hosted
626-
version: "1.0.5"
626+
version: "1.0.3"
627627
source_helper:
628628
dependency: transitive
629629
description:
@@ -749,7 +749,7 @@ packages:
749749
name: vm_service
750750
url: "https://pub.dartlang.org"
751751
source: hosted
752-
version: "7.2.0"
752+
version: "7.1.1"
753753
watcher:
754754
dependency: "direct main"
755755
description:

app/test/frontend/golden/pkg_activity_log_page.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,9 @@ <h1 class="title">
137137
<span>
138138
<a href="/packages/oxygen">1.2.0</a>
139139
</span>
140-
/ Prerelease:
140+
/
141141
<span>
142+
Prerelease:
142143
<a href="/packages/oxygen/versions/2.0.0-dev">2.0.0-dev</a>
143144
</span>
144145
</div>

app/test/frontend/golden/pkg_admin_page.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,9 @@ <h1 class="title">
137137
<span>
138138
<a href="/packages/oxygen">1.2.0</a>
139139
</span>
140-
/ Prerelease:
140+
/
141141
<span>
142+
Prerelease:
142143
<a href="/packages/oxygen/versions/2.0.0-dev">2.0.0-dev</a>
143144
</span>
144145
</div>

app/test/frontend/golden/pkg_changelog_page.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,9 @@ <h1 class="title">
138138
<span>
139139
<a href="/packages/oxygen">1.2.0</a>
140140
</span>
141-
/ Prerelease:
141+
/
142142
<span>
143+
Prerelease:
143144
<a href="/packages/oxygen/versions/2.0.0-dev">2.0.0-dev</a>
144145
</span>
145146
</div>

app/test/frontend/golden/pkg_example_page.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,9 @@ <h1 class="title">
138138
<span>
139139
<a href="/packages/oxygen">1.2.0</a>
140140
</span>
141-
/ Prerelease:
141+
/
142142
<span>
143+
Prerelease:
143144
<a href="/packages/oxygen/versions/2.0.0-dev">2.0.0-dev</a>
144145
</span>
145146
</div>

app/test/frontend/golden/pkg_install_page.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,9 @@ <h1 class="title">
138138
<span>
139139
<a href="/packages/oxygen">1.2.0</a>
140140
</span>
141-
/ Prerelease:
141+
/
142142
<span>
143+
Prerelease:
143144
<a href="/packages/oxygen/versions/2.0.0-dev">2.0.0-dev</a>
144145
</span>
145146
</div>

app/test/frontend/golden/pkg_score_page.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,9 @@ <h1 class="title">
138138
<span>
139139
<a href="/packages/oxygen">1.2.0</a>
140140
</span>
141-
/ Prerelease:
141+
/
142142
<span>
143+
Prerelease:
143144
<a href="/packages/oxygen/versions/2.0.0-dev">2.0.0-dev</a>
144145
</span>
145146
</div>

app/test/frontend/golden/pkg_show_page.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,9 @@ <h1 class="title">
138138
<span>
139139
<a href="/packages/oxygen">1.2.0</a>
140140
</span>
141-
/ Prerelease:
141+
/
142142
<span>
143+
Prerelease:
143144
<a href="/packages/oxygen/versions/2.0.0-dev">2.0.0-dev</a>
144145
</span>
145146
</div>

app/test/frontend/golden/pkg_show_page_publisher.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ <h1 class="title">
136136
<span>%%published-date%%</span>
137137
138138
<a class="-pub-publisher" href="/publishers/example.com">
139-
<img class="-pub-publisher-shield" title="Published by a pub.dev verified publisher" src="/static/img/verified-publisher-blue.svg"/>
139+
<img class="-pub-publisher-shield" src="/static/img/verified-publisher-blue.svg?hash=mocked_hash_919645162" title="Published by a pub.dev verified publisher"/>
140140
example.com
141141
</a>
142142
</div>

app/test/frontend/golden/pkg_show_version_page.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,9 @@ <h1 class="title">
138138
<span>
139139
<a href="/packages/oxygen">1.2.0</a>
140140
</span>
141-
/ Prerelease:
141+
/
142142
<span>
143+
Prerelease:
143144
<a href="/packages/oxygen/versions/2.0.0-dev">2.0.0-dev</a>
144145
</span>
145146
</div>

app/test/frontend/golden/pkg_versions_page.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,9 @@ <h1 class="title">
138138
<span>
139139
<a href="/packages/oxygen">1.2.0</a>
140140
</span>
141-
/ Prerelease:
141+
/
142142
<span>
143+
Prerelease:
143144
<a href="/packages/oxygen/versions/2.0.0-dev">2.0.0-dev</a>
144145
</span>
145146
</div>

0 commit comments

Comments
 (0)