UNPKG

@scalar/api-reference

Version:

Generate beautiful API references from OpenAPI documents

67 lines (66 loc) 2.12 kB
import { defineComponent, computed, createElementBlock, createCommentVNode, openBlock, Fragment, renderList, createBlock } from "vue"; import { splitContent, getHeadings } from "@scalar/code-highlight/markdown"; import GitHubSlugger from "github-slugger"; import _sfc_main$1 from "./InfoMarkdownSection.vue.js"; const _hoisted_1 = { key: 0, class: "introduction-description mt-6 flex flex-col" }; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "InfoDescription", props: { eventBus: {}, headingSlugGenerator: { type: Function }, description: {} }, setup(__props) { const sections = computed(() => { if (!__props.description) { return []; } const slugger = new GitHubSlugger(); const items = splitContent(__props.description).map((markdown) => { const headings = getHeadings(markdown); const heading = headings[0]; const id = heading ? __props.headingSlugGenerator({ ...heading, slug: slugger.slug(heading.value) }) : void 0; return { id, content: markdown }; }); return items; }); const transformHeading = (node) => { const slugger = new GitHubSlugger(); node.data = { hProperties: { id: __props.headingSlugGenerator({ depth: node.depth, value: node.children[0].value, slug: slugger.slug(node.children[0].value) }) } }; return node; }; return (_ctx, _cache) => { return __props.description ? (openBlock(), createElementBlock("div", _hoisted_1, [ (openBlock(true), createElementBlock(Fragment, null, renderList(sections.value, (section) => { return openBlock(), createBlock(_sfc_main$1, { id: section.id, key: section.id, content: section.content, eventBus: __props.eventBus, transformHeading }, null, 8, ["id", "content", "eventBus"]); }), 128)) ])) : createCommentVNode("", true); }; } }); export { _sfc_main as default };