summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Sam Chen <chenxsan@gmail.com> 2021-09-05 23:16:44 +0800
committerGravatar GitHub <noreply@github.com> 2021-09-05 10:16:44 -0500
commit8c69275f035c3ddf2d8770b4a16ea47718d97c29 (patch)
tree0fea1ee0728ea77e04f428dce2c5cce496b3c4ac
parent1953c6113f5c5c0bdbca250566ec697f5eaf22dc (diff)
downloadastro-8c69275f035c3ddf2d8770b4a16ea47718d97c29.tar.gz
astro-8c69275f035c3ddf2d8770b4a16ea47718d97c29.tar.zst
astro-8c69275f035c3ddf2d8770b4a16ea47718d97c29.zip
docs: add a link to next article (#1308)
Diffstat (limited to '')
-rw-r--r--docs/src/components/PageContent/PageContent.astro20
-rw-r--r--docs/src/layouts/MainLayout.astro2
2 files changed, 20 insertions, 2 deletions
diff --git a/docs/src/components/PageContent/PageContent.astro b/docs/src/components/PageContent/PageContent.astro
index fd1e9d242..564b8485b 100644
--- a/docs/src/components/PageContent/PageContent.astro
+++ b/docs/src/components/PageContent/PageContent.astro
@@ -1,9 +1,17 @@
---
-const {content, githubEditUrl} = Astro.props;
+const {content, githubEditUrl, currentPage} = Astro.props;
const title = content.title;
const headers = content.astro.headers;
import MoreMenu from '../RightSidebar/MoreMenu.astro';
import TableOfContents from '../RightSidebar/TableOfContents.tsx';
+import {getLanguageFromURL} from '../../util.ts';
+import {SIDEBAR} from '../../config.ts';
+const langCode = getLanguageFromURL(currentPage);
+const links = SIDEBAR[langCode].filter(x => x.link && typeof x.header === 'undefined');
+// handle cases with a trailing slash or not
+const index = links.findIndex(x => `/${x.link}/` === currentPage || `/${x.link}` === currentPage);
+const next = index !== -1 ? (index === links.length - 1 ? null : links[index + 1]) : null;
+const previous = index !== -1 ? (index === 0 ? null : links[index - 1]) : null;
---
<style>
.content {
@@ -38,4 +46,14 @@ import TableOfContents from '../RightSidebar/TableOfContents.tsx';
<nav class="block sm:hidden">
<MoreMenu editHref={githubEditUrl}/>
</nav>
+ {
+ (previous || next) && <aside>
+ {
+ previous && <div>Previous Article: <a rel="prev" href={new URL(previous.link, Astro.site).pathname}>{previous.text}</a></div>
+ }
+ {
+ next && <div>Next Article: <a rel="next" href={new URL(next.link, Astro.site).pathname}>{next.text}</a></div>
+ }
+ </aside>
+ }
</article> \ No newline at end of file
diff --git a/docs/src/layouts/MainLayout.astro b/docs/src/layouts/MainLayout.astro
index 45eab6d0f..234270a77 100644
--- a/docs/src/layouts/MainLayout.astro
+++ b/docs/src/layouts/MainLayout.astro
@@ -111,7 +111,7 @@ const formatTitle = (content, SITE) => content.title ? `${content.title} 🚀 ${
<LeftSidebar currentPage={currentPage} />
</aside>
<div id="grid-main">
- <PageContent content={content} githubEditUrl={githubEditUrl}>
+ <PageContent content={content} githubEditUrl={githubEditUrl} currentPage={currentPage}>
<slot />
</PageContent>
</div>