Skip to content

Commit

Permalink
feat: overwrite prev/next link (#61)
Browse files Browse the repository at this point in the history
* feat: set Prev/Next to page data

* feat: set links at the bottom of page

* feat: hide next/prev links when themeConfig expressly set false

* feat: disable links when explicity set false

* feat: set customized link when explicity set

* fix: merge import from vitepress
  • Loading branch information
Spice-Z authored Sep 5, 2020
1 parent 5538af6 commit 1b96f63
Showing 1 changed file with 30 additions and 1 deletion.
31 changes: 30 additions & 1 deletion src/client/theme-default/components/NextAndPrevLinks.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,42 @@
import { defineComponent, computed } from 'vue'
import { usePageData } from 'vitepress'
import { usePageData, useSiteData } from 'vitepress'

export default defineComponent({
setup() {
const pageData = usePageData()
const siteData = useSiteData()
const resolveLink = (targetLink: string) => {
let target: any = undefined
Object.keys(siteData.value.themeConfig.sidebar).some((k) => {
return siteData.value.themeConfig.sidebar[k].some(
(v: { children: any }) => {
if (Array.isArray(v.children)) {
target = v.children.find((value: any) => {
return value.link === targetLink
})
}
return !!target
}
)
})
return target
}
const next = computed(() => {
if (pageData.value.frontmatter.next === false) {
return undefined
}
if (typeof pageData.value.frontmatter.next === 'string') {
return resolveLink(pageData.value.frontmatter.next)
}
return pageData.value.next
})
const prev = computed(() => {
if (pageData.value.frontmatter.prev === false) {
return undefined
}
if (typeof pageData.value.frontmatter.prev === 'string') {
return resolveLink(pageData.value.frontmatter.prev)
}
return pageData.value.prev
})
const hasLinks = computed(() => {
Expand Down

0 comments on commit 1b96f63

Please sign in to comment.