Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 20 additions & 13 deletions FrontEnd/docc.scss
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,8 @@ header.spi,
footer.spi {
position: sticky;
width: 100%;
font-family:
-apple-system,
BlinkMacSystemFont,
'SF Hello',
'Segoe UI',
Roboto,
'Helvetica Neue',
Arial,
sans-serif,
'Apple Color Emoji',
'Segoe UI Emoji' !important;
font-family: -apple-system, BlinkMacSystemFont, 'SF Hello', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,
'Apple Color Emoji', 'Segoe UI Emoji' !important;
font-size: 16px;
line-height: 1.4;
color: var(--header-text);
Expand Down Expand Up @@ -191,9 +182,9 @@ header.spi {
span.stable,
span.beta,
span.branch {
padding-left: 18px;
padding-left: 16px;
font-weight: 600;
background-position: top 2px left;
background-position: center left;
background-repeat: no-repeat;
background-size: 14px;
}
Expand All @@ -209,6 +200,22 @@ header.spi {
span.branch {
background-image: var(--image-branch);
}

.reference {
display: inline-flex;
gap: 4px;
align-items: center;
justify-content: center;

.badge {
padding: 2px 4px;
font-size: 10px;
text-align: center;
color: var(--header-text);
background-color: rgba(255, 255, 255, 20%);
border-radius: 4px;
}
}
}

footer.spi {
Expand Down
18 changes: 15 additions & 3 deletions Sources/App/Views/DocumentationPageProcessor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -169,9 +169,13 @@ struct DocumentationPageProcessor {
Breadcrumb(title: packageName, url: SiteURL.package(.value(repositoryOwner), .value(repositoryName), .none).relativeURL()),
Breadcrumb(title: .init(
.text("Documentation for "),
.span(
.class(referenceKind.cssClass),
.text(docVersion.reference)
.div(
.class("reference"),
.span(
.class(referenceKind.cssClass),
.text(docVersion.reference)
),
latestBadge()
)
), choices: documentationVersionChoices.count > 0 ? documentationVersionChoices : nil)
]
Expand Down Expand Up @@ -244,6 +248,14 @@ struct DocumentationPageProcessor {
).render()
}

func latestBadge() -> Plot.Node<HTML.BodyContext> {
let isLatest = availableVersions.first(where: { $0.reference == docVersion.reference })?.isLatestStable ?? false
return isLatest ? .span(
.class("badge"),
.text("LATEST")
) : .empty
}

var footer: String {
@Dependency(\.environment) var environment
return Plot.Node.footer(
Expand Down
24 changes: 12 additions & 12 deletions Tests/AppTests/PackageController+routesTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -625,7 +625,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"var baseUrl = "/owner/package/~/""#))
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/~/favicon.ico" />"#))
XCTAssertFalse(body.contains(#"<link rel="canonical""#))
XCTAssert(body.contains(#"Documentation for <span class="stable">1.0.0</span>"#))
XCTAssert(body.contains(#"<span class="stable">1.0.0</span>"#))
}

// test catchall
Expand All @@ -640,7 +640,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/~/favicon.ico" />"#))
XCTAssertFalse(body.contains(#"<link rel="canonical""#))
XCTAssertFalse(body.contains(#"a/b#anchor"#))
XCTAssert(body.contains(#"Documentation for <span class="stable">1.0.0</span>"#))
XCTAssert(body.contains(#"<span class="stable">1.0.0</span>"#))
}

// Test case insensitive path.
Expand All @@ -655,7 +655,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/~/favicon.ico" />"#))
XCTAssertFalse(body.contains(#"<link rel="canonical""#))
XCTAssertFalse(body.contains(#"a/b#anchor"#))
XCTAssert(body.contains(#"Documentation for <span class="stable">1.0.0</span>"#))
XCTAssert(body.contains(#"<span class="stable">1.0.0</span>"#))
}
}
}
Expand Down Expand Up @@ -703,7 +703,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"var baseUrl = "/owner/package/~/""#))
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/~/favicon.ico" />"#))
XCTAssertFalse(body.contains(#"<link rel="canonical""#))
XCTAssert(body.contains(#"Documentation for <span class="stable">1.0.0</span>"#))
XCTAssert(body.contains(#"<span class="stable">1.0.0</span>"#))
}

// test catchall
Expand All @@ -717,7 +717,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/~/favicon.ico" />"#))
XCTAssertFalse(body.contains(#"<link rel="canonical""#))
XCTAssertFalse(body.contains(#"a/b#anchor"#))
XCTAssert(body.contains(#"Documentation for <span class="stable">1.0.0</span>"#))
XCTAssert(body.contains(#"<span class="stable">1.0.0</span>"#))
}

// Test case insensitive path.
Expand All @@ -731,7 +731,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/~/favicon.ico" />"#))
XCTAssertFalse(body.contains(#"<link rel="canonical""#))
XCTAssertFalse(body.contains(#"a/b#anchor"#))
XCTAssert(body.contains(#"Documentation for <span class="stable">1.0.0</span>"#))
XCTAssert(body.contains(#"<span class="stable">1.0.0</span>"#))
}
}
}
Expand Down Expand Up @@ -784,7 +784,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"var baseUrl = "/owner/package/1.2.3/""#))
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/1.2.3/favicon.ico" />"#))
XCTAssert(body.contains(#"<link rel="canonical" href="/owner/package/1.2.3/documentation/target" />"#))
XCTAssert(body.contains(#"Documentation for <span class="stable">1.2.3</span>"#))
XCTAssert(body.contains(#"<span class="stable">1.2.3</span>"#))
}

// test catchall
Expand All @@ -798,7 +798,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"var baseUrl = "/owner/package/1.2.3/""#))
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/1.2.3/favicon.ico" />"#))
XCTAssert(body.contains(#"<link rel="canonical" href="/owner/package/1.2.3/documentation/target/a/b#anchor" />"#))
XCTAssert(body.contains(#"Documentation for <span class="stable">1.2.3</span>"#))
XCTAssert(body.contains(#"<span class="stable">1.2.3</span>"#))
}

// Test case insensitive path.
Expand All @@ -812,7 +812,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"var baseUrl = "/owner/package/1.2.3/""#))
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/1.2.3/favicon.ico" />"#))
XCTAssert(body.contains(#"<link rel="canonical" href="/owner/package/1.2.3/documentation/target/A/b#Anchor" />"#))
XCTAssert(body.contains(#"Documentation for <span class="stable">1.2.3</span>"#))
XCTAssert(body.contains(#"<span class="stable">1.2.3</span>"#))
}
}
}
Expand Down Expand Up @@ -1204,7 +1204,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"var baseUrl = "/owner/package/~/""#))
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/~/favicon.ico" />"#))
XCTAssertFalse(body.contains(#"<link rel="canonical""#))
XCTAssert(body.contains(#"Documentation for <span class="branch">feature/1.2.3</span>"#))
XCTAssert(body.contains(#"<span class="branch">feature/1.2.3</span>"#))
XCTAssert(body.contains(#"<li class="current"><a href="/owner/package/feature-1.2.3/documentation/target"><span class="branch">feature/1.2.3</span></a></li>"#))
}

Expand All @@ -1218,7 +1218,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"var baseUrl = "/owner/package/feature-1.2.3/""#))
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/feature-1.2.3/favicon.ico" />"#))
XCTAssert(body.contains(#"<link rel="canonical" href="/owner/package/feature/1.2.3/documentation/target" />"#))
XCTAssert(body.contains(#"Documentation for <span class="branch">feature-1.2.3</span>"#))
XCTAssert(body.contains(#"<span class="branch">feature-1.2.3</span>"#))
}

// test path a/b
Expand All @@ -1232,7 +1232,7 @@ class PackageController_routesTests: SnapshotTestCase {
XCTAssert(body.contains(#"var baseUrl = "/owner/package/feature-1.2.3/""#))
XCTAssert(body.contains(#"<link rel="icon" href="/owner/package/feature-1.2.3/favicon.ico" />"#))
XCTAssert(body.contains(#"<link rel="canonical" href="/owner/package/feature/1.2.3/documentation/a/b" />"#))
XCTAssert(body.contains(#"Documentation for <span class="branch">feature-1.2.3</span>"#))
XCTAssert(body.contains(#"<span class="branch">feature-1.2.3</span>"#))
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<header class="spi"><div class="staging">This is a staging environment. For live and up-to-date documentation, <a href="https://swiftpackageindex.com">visit swiftpackageindex.com</a>.</div><div class="inner breadcrumbs"><nav><ul><li><a href="/"><span>Swift Package Index</span></a></li><li><a href="/owner"><span>Owner Name</span></a></li><li><a href="/owner/repo"><span>package</span></a></li><li><div class="choices"><span>Documentation for <span class="stable">main</span></span><ul><li class="current"><a href="/owner/repo/main/documentation/tecosigner"><span class="branch">main</span></a></li></ul></div></li><li><div class="choices"><span>Teco Signer</span><ul><li><a href="/owner/repo/main/documentation/tecocore">TecoCore</a></li><li class="current"><a href="/owner/repo/main/documentation/tecosigner">Teco Signer</a></li></ul></div></li></ul></nav></div></header>
<header class="spi"><div class="staging">This is a staging environment. For live and up-to-date documentation, <a href="https://swiftpackageindex.com">visit swiftpackageindex.com</a>.</div><div class="inner breadcrumbs"><nav><ul><li><a href="/"><span>Swift Package Index</span></a></li><li><a href="/owner"><span>Owner Name</span></a></li><li><a href="/owner/repo"><span>package</span></a></li><li><div class="choices"><span>Documentation for <div class="reference"><span class="stable">main</span></div></span><ul><li class="current"><a href="/owner/repo/main/documentation/tecosigner"><span class="branch">main</span></a></li></ul></div></li><li><div class="choices"><span>Teco Signer</span><ul><li><a href="/owner/repo/main/documentation/tecocore">TecoCore</a></li><li class="current"><a href="/owner/repo/main/documentation/tecosigner">Teco Signer</a></li></ul></div></li></ul></nav></div></header>
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@
<li><a href="/owner/package"><span>pkg</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="branch">feature/1.2.3</span></span>
<span>Documentation for
<div class="reference">
<span class="branch">feature/1.2.3</span>
</div></span>
<ul>
<li class="current"><a href="/owner/package/feature-1.2.3/documentation/target"><span class="branch">feature/1.2.3</span></a></li>
</ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@
<li><a href="/"><span>Swift Package Index</span></a></li>
<li><a href="/owner"><span>owner</span></a></li>
<li><a href="/owner/package"><span>pkg</span></a></li>
<li><span>Documentation for <span class="branch">feature-1.2.3</span></span></li>
<li><span>Documentation for
<div class="reference">
<span class="branch">feature-1.2.3</span>
</div></span></li>
</ul>
</nav>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,10 @@
<li><a href="/owner/package"><span>pkg</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="branch">feature-1.2.3</span></span>
<span>Documentation for
<div class="reference">
<span class="branch">feature-1.2.3</span>
</div></span>
<ul>
<li><a href="/owner/package/feature-1.2.3/documentation/target"><span class="branch">feature/1.2.3</span></a></li>
</ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@
<li><a href="/Owner/Package"><span>pkg</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="stable">1.0.0</span></span>
<span>Documentation for
<div class="reference">
<span class="stable">1.0.0</span>
<span class="badge">LATEST</span>
</div></span>
<ul>
<li><a href="/Owner/Package/main/documentation/target"><span class="branch">main</span></a></li>
<li class="current"><a href="/Owner/Package/1.0.0/documentation/target"><span class="stable">1.0.0</span></a></li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@
<li><a href="/owner/package"><span>pkg</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="stable">1.0.0</span></span>
<span>Documentation for
<div class="reference">
<span class="stable">1.0.0</span>
<span class="badge">LATEST</span>
</div></span>
<ul>
<li><a href="/owner/package/main/documentation/target"><span class="branch">main</span></a></li>
<li class="current"><a href="/owner/package/1.0.0/documentation/target"><span class="stable">1.0.0</span></a></li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@
<li><a href="/Owner/Package"><span>pkg</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="stable">1.0.0</span></span>
<span>Documentation for
<div class="reference">
<span class="stable">1.0.0</span>
<span class="badge">LATEST</span>
</div></span>
<ul>
<li><a href="/Owner/Package/main/documentation/target"><span class="branch">main</span></a></li>
<li class="current"><a href="/Owner/Package/1.0.0/documentation/target"><span class="stable">1.0.0</span></a></li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@
<li><a href="/owner/package"><span>pkg</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="stable">1.0.0</span></span>
<span>Documentation for
<div class="reference">
<span class="stable">1.0.0</span>
<span class="badge">LATEST</span>
</div></span>
<ul>
<li><a href="/owner/package/main/documentation/target"><span class="branch">main</span></a></li>
<li class="current"><a href="/owner/package/1.0.0/documentation/target"><span class="stable">1.0.0</span></a></li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@
<li><a href="/Owner/Package"><span>pkg</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="stable">1.2.3</span></span>
<span>Documentation for
<div class="reference">
<span class="stable">1.2.3</span>
<span class="badge">LATEST</span>
</div></span>
<ul>
<li><a href="/Owner/Package/main/documentation/target"><span class="branch">main</span></a></li>
<li class="current"><a href="/Owner/Package/1.2.3/documentation/target"><span class="stable">1.2.3</span></a></li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@
<li><a href="/owner/package"><span>pkg</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="stable">1.2.3</span></span>
<span>Documentation for
<div class="reference">
<span class="stable">1.2.3</span>
<span class="badge">LATEST</span>
</div></span>
<ul>
<li><a href="/owner/package/main/documentation/target"><span class="branch">main</span></a></li>
<li class="current"><a href="/owner/package/1.2.3/documentation/target"><span class="stable">1.2.3</span></a></li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@
<li><a href="/owner/package"><span>pkg</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="stable">1.2.3</span></span>
<span>Documentation for
<div class="reference">
<span class="stable">1.2.3</span>
<span class="badge">LATEST</span>
</div></span>
<ul>
<li><a href="/owner/package/main/documentation/target"><span class="branch">main</span></a></li>
<li class="current"><a href="/owner/package/1.2.3/documentation/target"><span class="stable">1.2.3</span></a></li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,11 @@
<li><a href="/"><span>Swift Package Index</span></a></li>
<li><a href="/owner"><span>owner</span></a></li>
<li><a href="/owner/package"><span>pkg</span></a></li>
<li><span>Documentation for <span class="stable">1.0.0</span></span></li>
<li><span>Documentation for
<div class="reference">
<span class="stable">1.0.0</span>
<span class="badge">LATEST</span>
</div></span></li>
</ul>
</nav>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@
<li><a href="/foo/bar"><span>bar</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="branch">main</span></span>
<span>Documentation for
<div class="reference">
<span class="branch">main</span>
</div></span>
<ul>
<li class="current"><a href="/foo/bar/main/documentation/target"><span class="branch">main</span></a></li>
</ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,10 @@
<li><a href="/owner/package"><span>Package Name</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="stable">main</span></span>
<span>Documentation for
<div class="reference">
<span class="stable">main</span>
</div></span>
<ul>
<li class="current"><a href="/owner/package/main/documentation/archive1"><span class="branch">main</span></a></li>
</ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@
<li><a href="/owner/package"><span>Package Name</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="branch">main</span></span>
<span>Documentation for
<div class="reference">
<span class="branch">main</span>
</div></span>
<ul>
<li class="current"><a href="/owner/package/main/documentation/archive1"><span class="branch">main</span></a></li>
<li><a href="/owner/package/1.0.0-beta1/documentation/archive1"><span class="beta">1.0.0-beta1</span></a></li>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@
<li><a href="/owner/package"><span>Package Name</span></a></li>
<li>
<div class="choices">
<span>Documentation for <span class="stable">1.1.0</span></span>
<span>Documentation for
<div class="reference">
<span class="stable">1.1.0</span>
</div></span>
<ul>
<li><a href="/owner/package/main/documentation/archive1"><span class="branch">main</span></a></li>
<li><a href="/owner/package/2.0.0/documentation/archive1"><span class="beta">2.0.0</span></a></li>
Expand Down
Loading