From f52b1d576b024443f737604d2220a0edb1571355 Mon Sep 17 00:00:00 2001 From: Yugo Ogura Date: Thu, 3 Sep 2020 12:15:18 +0900 Subject: [PATCH 1/7] feat: add prev/next links (#56) * 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 --- .../components/NextAndPrevLinks.ts | 22 ++++++++++ .../components/NextAndPrevLinks.vue | 25 +++++++++++ src/client/theme-default/components/Page.vue | 8 ++++ src/node/server.ts | 41 ++++++++++++++++++- types/shared.d.ts | 2 + 5 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 src/client/theme-default/components/NextAndPrevLinks.ts create mode 100644 src/client/theme-default/components/NextAndPrevLinks.vue diff --git a/src/client/theme-default/components/NextAndPrevLinks.ts b/src/client/theme-default/components/NextAndPrevLinks.ts new file mode 100644 index 00000000..9080a73f --- /dev/null +++ b/src/client/theme-default/components/NextAndPrevLinks.ts @@ -0,0 +1,22 @@ +import { defineComponent, computed } from 'vue' +import { usePageData } from 'vitepress' + +export default defineComponent({ + setup() { + const pageData = usePageData() + const next = computed(() => { + return pageData.value.next + }) + const prev = computed(() => { + return pageData.value.prev + }) + const hasLinks = computed(() => { + return !!next || !!prev + }) + return { + next, + prev, + hasLinks + } + } +}) diff --git a/src/client/theme-default/components/NextAndPrevLinks.vue b/src/client/theme-default/components/NextAndPrevLinks.vue new file mode 100644 index 00000000..f15b9b07 --- /dev/null +++ b/src/client/theme-default/components/NextAndPrevLinks.vue @@ -0,0 +1,25 @@ + + + + + \ No newline at end of file diff --git a/src/client/theme-default/components/Page.vue b/src/client/theme-default/components/Page.vue index c2c3536c..676886ea 100644 --- a/src/client/theme-default/components/Page.vue +++ b/src/client/theme-default/components/Page.vue @@ -1,9 +1,17 @@ + + \ No newline at end of file diff --git a/src/client/theme-default/styles/layout.css b/src/client/theme-default/styles/layout.css index bbc68bb5..d440bf04 100644 --- a/src/client/theme-default/styles/layout.css +++ b/src/client/theme-default/styles/layout.css @@ -28,6 +28,11 @@ header { justify-content: space-between; padding: 0 1.75rem 0 1.5rem; } +@media screen and (max-width: 719px) { + header { + padding: 0 1.75rem 0 4rem; + } +} aside { position: fixed; @@ -41,11 +46,25 @@ aside { z-index: 3; overflow-y: auto; } +@media screen and (max-width: 719px) { + aside { + transition: transform .2s ease; + transform: translateX(-100%); + } + aside.open { + transform: translateX(0); + } +} main { margin-top: var(--header-height); margin-left: var(--sidebar-width); } +@media screen and (max-width: 719px) { + main { + margin-left: 0; + } +} a { text-decoration: none; @@ -69,7 +88,7 @@ h1 { h2 { font-size: 1.65rem; - padding-bottom: .3rem; + padding-bottom: 0.3rem; border-bottom: 1px solid var(--border-color); } diff --git a/src/client/theme-default/styles/vars.css b/src/client/theme-default/styles/vars.css index e188d548..264691a0 100644 --- a/src/client/theme-default/styles/vars.css +++ b/src/client/theme-default/styles/vars.css @@ -6,4 +6,9 @@ --text-color-light: #476582; --code-bg-color: #282c34; --accent-color: #3eaf7c; + + /* responsive breakpoints */ + /* --mq-narrow: 959px; */ + /* --mq-mobile: 719px; */ + /* --mq-mobile-narrow: 419px; */ } From d2b6d39228a03ad122ab09420dab2cba2c2b4167 Mon Sep 17 00:00:00 2001 From: Carlos Rodrigues Date: Thu, 3 Sep 2020 11:31:24 +0100 Subject: [PATCH 7/7] fix(sidebar): fix sidebar when you open a nested link (#73) --- src/client/theme-default/components/SideBar.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/client/theme-default/components/SideBar.ts b/src/client/theme-default/components/SideBar.ts index d12e3f20..8a8b677c 100644 --- a/src/client/theme-default/components/SideBar.ts +++ b/src/client/theme-default/components/SideBar.ts @@ -136,7 +136,8 @@ function resolveMultiSidebar( headers: Header[], depth: number ): ResolvedSidebar { - const item = config[getPathDirName(path)] + const paths = [path, Object.keys(config)[0]] + const item = paths.map((x) => config[getPathDirName(x)]).find(Boolean) if (Array.isArray(item)) { return resolveArraySidebar(item, depth)