UNPKG

@vuepress-reco/style-default

Version:
31 lines (30 loc) 1.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.headersToSidebarItemChildren = exports.headerToSidebarItem = exports.resolvePageHeaders = exports.usePageHeaders = exports.pageHeadersSymbol = void 0; const vue_1 = require("vue"); const client_1 = require("@vuepress/client"); exports.pageHeadersSymbol = Symbol('pageHeaders'); const usePageHeaders = () => { const pageHeaders = vue_1.inject(exports.pageHeadersSymbol); if (!pageHeaders) { throw new Error('usePageHeaders() is called without provider.'); } return pageHeaders; }; exports.usePageHeaders = usePageHeaders; function resolvePageHeaders() { const page = client_1.usePageData(); // if the sidebar item is current page and children is not set // use headers of current page as children return exports.headersToSidebarItemChildren(page.value.headers); } exports.resolvePageHeaders = resolvePageHeaders; const headerToSidebarItem = (header) => ({ text: header.title, link: `#${header.slug}`, level: header.level, children: exports.headersToSidebarItemChildren(header.children), }); exports.headerToSidebarItem = headerToSidebarItem; const headersToSidebarItemChildren = (headers) => headers.map((header) => exports.headerToSidebarItem(header)); exports.headersToSidebarItemChildren = headersToSidebarItemChildren;