Skip to content

Commit 06d85f4

Browse files
committed
Rewrite breadcrumbs: always include a link to the pub package page.
1 parent 4acd663 commit 06d85f4

6 files changed

+38
-6
lines changed

app/lib/dartdoc/customization.dart

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,35 @@ class DartdocCustomizer {
2727

2828
String customizeHtml(String html) {
2929
final doc = html_parser.parse(html);
30+
final breadcrumbs = doc.body.querySelector('.breadcrumbs');
31+
if (breadcrumbs != null) {
32+
_addPubPackageLink(breadcrumbs);
33+
}
3034
return doc.outerHtml;
3135
}
32-
}
3336

37+
void _addPubPackageLink(Element breadcrumbs) {
38+
final pubPackageLink =
39+
'https://pub.dartlang.org/packages/$packageName/versions/$packageVersion';
40+
final pubPackageText = '$packageName package';
41+
if (breadcrumbs.children.length == 1) {
42+
// we are on the index page
43+
final firstLink = breadcrumbs.querySelector('a');
44+
firstLink.attributes['href'] = pubPackageLink;
45+
firstLink.text = pubPackageText;
46+
} else if (breadcrumbs.children.isNotEmpty) {
47+
// we are inside
48+
final firstLink = breadcrumbs.querySelector('a');
49+
firstLink.text = 'documentation';
50+
51+
final lead = new Element.tag('li');
52+
final leadLink = new Element.tag('a');
53+
leadLink.attributes['href'] = pubPackageLink;
54+
leadLink.text = pubPackageText;
55+
lead.append(leadLink);
56+
57+
breadcrumbs.insertBefore(lead, breadcrumbs.firstChild);
58+
breadcrumbs.insertBefore(new Text('\n '), breadcrumbs.firstChild);
59+
}
60+
}
61+
}

app/test/dartdoc/golden/pana_0.10.2_index.out.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
<header id="title">
2222
<ol class="breadcrumbs gt-separated dark hidden-xs">
23-
<li><a href="https://github.com/dart-lang/pana">pana package</a></li>
23+
<li><a href="https://pub.dartlang.org/packages/pana/versions/0.10.2">pana package</a></li>
2424
</ol>
2525
<div class="self-name">pana</div>
2626
<form class="search navbar-right" role="search">

app/test/dartdoc/golden/pana_0.10.2_license_file_class.out.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
<header id="title">
2323
<button id="sidenav-left-toggle" type="button">&nbsp;</button>
2424
<ol class="breadcrumbs gt-separated dark hidden-xs">
25-
<li><a href="index.html">pana</a></li>
25+
<li><a href="https://pub.dartlang.org/packages/pana/versions/0.10.2">pana package</a></li>
26+
<li><a href="index.html">documentation</a></li>
2627
<li><a href="pana/pana-library.html">pana</a></li>
2728
<li class="self-crumb">LicenseFile class</li>
2829
</ol>

app/test/dartdoc/golden/pana_0.10.2_license_file_constructor.out.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
<header id="title">
2323
<button id="sidenav-left-toggle" type="button">&nbsp;</button>
2424
<ol class="breadcrumbs gt-separated dark hidden-xs">
25-
<li><a href="index.html">pana</a></li>
25+
<li><a href="https://pub.dartlang.org/packages/pana/versions/0.10.2">pana package</a></li>
26+
<li><a href="index.html">documentation</a></li>
2627
<li><a href="pana/pana-library.html">pana</a></li>
2728
<li><a href="pana/LicenseFile-class.html">LicenseFile</a></li>
2829
<li class="self-crumb">LicenseFile constructor</li>

app/test/dartdoc/golden/pana_0.10.2_license_file_name_field.out.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
<header id="title">
2323
<button id="sidenav-left-toggle" type="button">&nbsp;</button>
2424
<ol class="breadcrumbs gt-separated dark hidden-xs">
25-
<li><a href="index.html">pana</a></li>
25+
<li><a href="https://pub.dartlang.org/packages/pana/versions/0.10.2">pana package</a></li>
26+
<li><a href="index.html">documentation</a></li>
2627
<li><a href="pana/pana-library.html">pana</a></li>
2728
<li><a href="pana/LicenseFile-class.html">LicenseFile</a></li>
2829
<li class="self-crumb">name property</li>

app/test/dartdoc/golden/pana_0.10.2_pretty_json.out.html

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
<header id="title">
2323
<button id="sidenav-left-toggle" type="button">&nbsp;</button>
2424
<ol class="breadcrumbs gt-separated dark hidden-xs">
25-
<li><a href="index.html">pana</a></li>
25+
<li><a href="https://pub.dartlang.org/packages/pana/versions/0.10.2">pana package</a></li>
26+
<li><a href="index.html">documentation</a></li>
2627
<li><a href="pana/pana-library.html">pana</a></li>
2728
<li class="self-crumb">prettyJson function</li>
2829
</ol>

0 commit comments

Comments
 (0)