diff options
author | 2021-09-05 23:16:44 +0800 | |
---|---|---|
committer | 2021-09-05 10:16:44 -0500 | |
commit | 8c69275f035c3ddf2d8770b4a16ea47718d97c29 (patch) | |
tree | 0fea1ee0728ea77e04f428dce2c5cce496b3c4ac | |
parent | 1953c6113f5c5c0bdbca250566ec697f5eaf22dc (diff) | |
download | astro-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.astro | 20 | ||||
-rw-r--r-- | docs/src/layouts/MainLayout.astro | 2 |
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> |