Skip to content

Commit 3814e88

Browse files
committed
feat: expose layout slots for injecting custom content
1 parent ddb590d commit 3814e88

File tree

4 files changed

+12
-2
lines changed

4 files changed

+12
-2
lines changed

lib/default-theme/Layout.vue

+8-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,18 @@
55
@touchend="onTouchEnd">
66
<Navbar v-if="shouldShowNavbar" @toggle-sidebar="toggleSidebar"/>
77
<div class="sidebar-mask" @click="toggleSidebar(false)"></div>
8-
<Sidebar :items="sidebarItems" @toggle-sidebar="toggleSidebar"/>
8+
<Sidebar :items="sidebarItems" @toggle-sidebar="toggleSidebar">
9+
<slot name="sidebar-top" slot="top"/>
10+
<slot name="sidebar-bottom" slot="bottom"/>
11+
</Sidebar>
912
<div class="custom-layout" v-if="$page.frontmatter.layout">
1013
<component :is="$page.frontmatter.layout"/>
1114
</div>
1215
<Home v-else-if="$page.frontmatter.home"/>
13-
<Page v-else :sidebar-items="sidebarItems"/>
16+
<Page v-else :sidebar-items="sidebarItems">
17+
<slot name="page-top" slot="top"/>
18+
<slot name="page-bottom" slot="bottom"/>
19+
</Page>
1420
</div>
1521
</template>
1622

lib/default-theme/Page.vue

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
</span>
2020
</p>
2121
</div>
22+
<slot name="bottom"/>
2223
</div>
2324
</template>
2425

lib/default-theme/Sidebar.vue

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<template>
22
<div class="sidebar">
33
<NavLinks/>
4+
<slot name="top"/>
45
<ul class="sidebar-links" v-if="items.length">
56
<li v-for="(item, i) in items">
67
<SidebarGroup v-if="item.type === 'group'"
@@ -12,6 +13,7 @@
1213
<SidebarLink v-else :item="item"/>
1314
</li>
1415
</ul>
16+
<slot name="bottom"/>
1517
</div>
1618
</template>
1719

lib/webpack/createBaseConfig.js

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ module.exports = function createBaseConfig ({
4040
.set('@source', sourceDir)
4141
.set('@app', path.resolve(__dirname, '../app'))
4242
.set('@temp', path.resolve(__dirname, '../app/.temp'))
43+
.set('@default-theme', path.resolve(__dirname, '../default-theme'))
4344
.set('@AlgoliaSearchBox', isAlgoliaSearch
4445
? path.resolve(__dirname, '../default-theme/AlgoliaSearchBox.vue')
4546
: path.resolve(__dirname, '../noop.js'))

0 commit comments

Comments
 (0)