\n\n \n\n### Desired behavior\n\nShiki should be initialized once and reused for subsequent highlight calls.\n\n### Reproduction\n\n_No response_\n\n### Steps to reproduce\n\nLoad a large vitepress project with any code in it\n\n### Logs and Error Messages\n\nvitepress-openapi.client.es.js:62532 [Shiki] 590 instances have been created. Shiki is supposed to be used as a singleton, consider refactoring your code to cache your highlighter instance; Or call `highlighter.dispose()` to release unused instances.\n\n### Other Information\n\n_No response_",[],278,"enzonotario","vitepress-openapi","open","Shiki instance not being reused","2025-07-20T22:19:25Z","https://github.com/enzonotario/vitepress-openapi/issues/278",0.7999706,{"description":3027,"labels":3028,"number":3029,"owner":3019,"repository":3020,"state":3021,"title":3030,"updated_at":3031,"url":3032,"score":3033},"### Current behavior\n\n`isDark` is not working when using `apparance: 'force-dark'`\n\n### Desired behavior\n\n`isDark = true` when using `apparance: 'force-dark'`\n\n### Reproduction\n\n_No response_\n\n### Steps to reproduce\n\nSet `apparance: 'force-dark'` in `.vitepress/config.js`\n\n### Logs and Error Messages\n\n_No response_\n\n### Other Information\n\nIt's because we are now trying to get `isDark` from the `useData` VitePress composable. However there is a pending issue for this: https://github.com/vuejs/vitepress/pull/4509\n\nDue to this, we are currently retrieving `isDark` from `@vueuse/core`, but it doesn't work when using `apparance: 'force-dark'`.\n\nA workaround would be to allow forcing `isDark` prop from Feature Components.",[],178,"`isDark` is not working when using `apparance: 'force-dark'`","2025-02-17T02:26:34Z","https://github.com/enzonotario/vitepress-openapi/issues/178",0.83135545,{"description":3035,"labels":3036,"number":3037,"owner":3019,"repository":3020,"state":3038,"title":3039,"updated_at":3040,"url":3041,"score":3042},"### Current behavior\n\nHello,guys\n\nWhen i use that example about the Pages By operation\n\n```md\n---\naside: false\noutline: false\ntitle: vitepress-openapi\n---\n\n\u003Cscript setup lang=\"ts\">\nimport { useRoute } from 'vitepress'\n\nconst route = useRoute()\n\nconst operationId = route.data.params.operationId\n\u003C/script>\n\n\u003COAOperation :operationId=\"operationId\" />\n\n```\n\n```js\nimport { usePaths } from 'vitepress-openapi'\nimport spec from '../../public/test.json' with {type: 'json'}\n\nexport default {\n paths() {\n return usePaths({ spec })\n .getPathsByVerbs()\n .map(({ operationId, summary }) => {\n return {\n params: {\n operationId,\n pageTitle: `${summary} - vitepress-openapi`,\n },\n }\n })\n },\n}\n```\n\nThe terminal show this error,but i dont understand what it mean\n\n\n\nThe terminal guide me the links https://cn.vite.dev/guide/troubleshooting which is show The CJS build of Vite's Node API is deprecated and will be removed in Vite 6. \n\nHope u give the answer thank u so much\n\n\n### Desired behavior\n\n_No response_\n\n### Reproduction\n\n_No response_\n\n### Steps to reproduce\n\n\n\n### Logs and Error Messages\n\n\n\n### Other Information\n\n_No response_",[],212,"closed","Pages by Operation Example dose not work","2025-04-30T22:18:57Z","https://github.com/enzonotario/vitepress-openapi/issues/212",0.7591612,{"description":3044,"labels":3045,"number":3046,"owner":3019,"repository":3047,"state":3038,"title":3048,"updated_at":3049,"url":3050,"score":3051},"_Originally posted by @danielGithinji in https://github.com/moby/buildkit/pull/5291_",[],40,"esjs-dolar-api","H","2025-03-02T11:54:17Z","https://github.com/enzonotario/esjs-dolar-api/issues/40",0.76996154,{"description":3053,"labels":3054,"number":3055,"owner":3019,"repository":3020,"state":3038,"title":3056,"updated_at":3057,"url":3058,"score":3059},"### Current behavior\n\nFirst of all, thank you for this fantastic theme/addon!\n\nWe are using multiple root levels in our vitepress API (`/api/` and `/sdk/`, etc.) like this. Openapi link generation works, however this way openapi links are not auto activated anymore when clicked or scrolled. \n\n### Desired behavior\n\nSidebar links are marked as active on click or hover.\n\n### Reproduction\n\nhttps://stackblitz.com/edit/enzonotario-vitepress-openapi-starter-2k5lx5mk\n\n### Steps to reproduce\n\n```js\n themeConfig: {\n sidebar: {\n '/api/': {\n base: '/api/',\n items: [\n {\n text: 'API Documentation',\n items: [\n {text: 'Quickstart', link: 'quickstart'},\n ]\n },\n {\n text: 'By Tags',\n items: [\n ...sidebar.itemsByTags(),\n ],\n },\n {\n text: 'By Operations',\n items: [\n ...sidebar.generateSidebarGroups(),\n ],\n }\n ]\n },\n '/sdk/': {\n base: '/sdk/',\n items: [\n {\n text: 'SDK Documentation',\n items: [\n {text: 'Getting Started', link: 'getting-started'},\n ]\n }\n ]\n }\n }\n }\n```\n\n### Logs and Error Messages\n\n_No response_\n\n### Other Information\n\n_No response_",[],213,"Sidebar items not activating when using base in parent in sidebar","2025-05-01T22:37:29Z","https://github.com/enzonotario/vitepress-openapi/issues/213",0.79407525,{"description":3061,"labels":3062,"number":3066,"owner":3019,"repository":3020,"state":3038,"title":3067,"updated_at":3068,"url":3069,"score":3070},"### Current behavior\n\n[plugin:vite:import-analysis] Failed to resolve import \"vitepress-openapi/client\" from \".vitepress/theme/index.ts\". Does the file exist?\n\n\n```\n~/demo2/.vitepress/theme/index.ts:1:44\n1 | import { theme, useOpenapi, useShiki } from \"vitepress-openapi/client\";\n | ^\n2 | import DefaultTheme from \"vitepress/theme\";\n3 | import spec from \"../../public/openapi.json\" with { type: \"json\" };\n```\n\n### Desired behavior\n\n_No response_\n\n### Reproduction\n\n_No response_\n\n### Steps to reproduce\n\n```\ngit clone https://github.com/enzonotario/vitepress-openapi\ncd vitepress-openapi\ncp -r docs ~/demos\n```\n\n\n### Logs and Error Messages\n\n_No response_\n\n### Other Information\n\n_No response_",[3063],{"name":3064,"color":3065},"question","d876e3",208,"init error","2025-04-20T13:05:55Z","https://github.com/enzonotario/vitepress-openapi/issues/208",0.8022133,{"description":3072,"labels":3073,"number":3074,"owner":3019,"repository":3020,"state":3038,"title":3075,"updated_at":3076,"url":3077,"score":3078},"Hi! I was working on my current project, where I have a schema that produces this UI:\n\nhttps://github.com/user-attachments/assets/21f90ff1-fb58-4aff-86e5-249e453c829f\n\nThis little screencast aims to show that it's a bit non-obvious - especially for people who are just starting to explore the site with the spec and don't know how the UI works - that object properties are there. Long description with some markdown/emojis makes it seem like the description is all that exists under this property.\n\nIn contrast, when there's no description, it's pretty obvious that the properties are expandable:\n\n\u003Cimg width=\"390\" height=\"113\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/5b945a5a-e471-44b3-8f18-0e0219c8caa0\" />\n\nBut in the case of a rich description - which is visible by default and draws attention away from the relatively small \"expand\" button icon on the top - a user who reads the description might reasonably assume that it's the only content. They may not think, \"Hmm, I read the description, but there must be properties - let me look for some element that will let me show them!\"\n\n## Suggestions:\n\n### Option 1:\n\nHide descriptions for objects when in Collapsed state, show only when Expanded:\n\nhttps://github.com/user-attachments/assets/40ead49f-6023-4cbb-9a7b-8e5a5c96b952\n\n### Option 2:\n\nShow a small hint after the description, like a verbose \"Expand\" text button or a similar UI element (only shown when it's an array/object and has a description):\n\nhttps://github.com/user-attachments/assets/c8a31a05-6b54-400d-84a9-b126b9762b1e\n\n---\n\nLet me know what you think, @enzonotario! Do you like any of the proposed options, or do you have some other idea of how to address this?",[],271,"[Discussion] When an object has a description, it's not obvious that its properties are expandable","2025-07-21T01:18:22Z","https://github.com/enzonotario/vitepress-openapi/issues/271",0.8042486,{"description":3080,"labels":3081,"number":3082,"owner":3019,"repository":3020,"state":3038,"title":3083,"updated_at":3084,"url":3085,"score":3086},"### Current behavior\n\nIn OpenAPI you can create a nullable object with:\n```yaml\ntype: [object, 'null']\nproperties:\n example:\n type: string\n```\n\nCurrently, vitepress-openapi will not display the properties correctly.\n\n### Desired behavior\n\nIf the object is nullable, it should still list all properties of nullable object and not just `object | null`\n\n### Reproduction\n\n_No response_\n\n### Steps to reproduce\n\n```json\n{\n \"openapi\": \"3.1.0\",\n \"info\": {\n \"title\": \"Nullable objects\"\n },\n \"servers\": [\n {\n \"url\": \"https://whatever.com\",\n \"description\": \"Mock Server\"\n }\n ],\n \"paths\": {\n \"/nullable\": {\n \"get\": {\n \"tags\": [\n \"Nullable\"\n ],\n \"summary\": \"Get nullable object\",\n \"description\": \"Yayy\",\n \"operationId\": \"getNullableObject\",\n \"responses\": {\n \"200\": {\n \"description\": \"OK\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"a\": {\n \"type\": [\n \"object\",\n \"null\"\n ],\n \"properties\": {\n \"a\": {\n \"type\": \"number\"\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n },\n \"tags\": [],\n \"externalDocs\": {}\n}\n```\n\n\n\n### Logs and Error Messages\n\n_No response_\n\n### Other Information\n\n_No response_",[],206,"\"nullable\" objects","2025-04-24T01:25:01Z","https://github.com/enzonotario/vitepress-openapi/issues/206",0.8056897,{"description":3088,"labels":3089,"number":3093,"owner":3019,"repository":3020,"state":3038,"title":3094,"updated_at":3095,"url":3096,"score":3097},"### What would you like?\r\n\r\nList of tags underneath the title\r\n\r\n### Why is this needed?\r\n\r\nWould be handy with tags pages, if one doesn't show tags in the sidebar (without `itemsByTags`)\r\n\r\n### How could it be implemented?\r\n\r\nI use following workaround\r\n\r\n```vue\r\n\u003COAOperation :operationId=\"operationId\" :isDark=\"isDark\" >\r\n \u003Ctemplate #description=\"description\">\r\n \u003Cdiv>\r\n \u003CBadge type=\"info\" v-for=\"tag in operation.tags\">\r\n \u003C!-- hardocde prefix, tell me if you know better way -->\r\n \u003Ca :href=\"`/tags/${tag}`\">{{ tag }}\u003C/a>\r\n \u003C/Badge>\r\n \u003C/div>\r\n \u003C/template>\r\n\u003C/OAOperation>\r\n```\r\n\r\nBut would be nice to have\r\n\r\n```ts\r\nuseTheme({\r\n operation: {\r\n slots: ['tags']\r\n }\r\n})\r\n```\r\n\r\n### Other information\r\n\r\nRelated: it would be nice to have more compact representation of endpoints lists for tags pages. For now I use\r\n\r\n```ts\r\nimport { useTheme } from 'vitepress-openapi'\r\nuseTheme({\r\n operation: {\r\n slots: [\r\n 'header',\r\n 'path',\r\n 'description',\r\n ],\r\n cols: 2,\r\n },\r\n})\r\n```\r\n\r\nWhich looks a bit strange",[3090],{"name":3091,"color":3092},"enhancement","a2eeef",120,"Add tags slot","2024-12-02T03:07:06Z","https://github.com/enzonotario/vitepress-openapi/issues/120",0.8151212,{"description":3099,"labels":3100,"number":3102,"owner":3019,"repository":3020,"state":3038,"title":3103,"updated_at":3104,"url":3105,"score":3106},"### What would you like?\n\nThe ability to change the default url/port for the \"Try It Out\" button. \n\n### Why is this needed?\n\nThe API I'm building has different ports for different things. In my specific case, the current behavior does not invoke my api. \n\n### How could it be implemented?\n\nCould we possibly have an additional env variable that overwrites the default behavior?\n\n### Other information\n\n_No response_",[3101],{"name":3091,"color":3092},127,"Overwrite \"Try It Out\" url","2024-12-21T01:51:19Z","https://github.com/enzonotario/vitepress-openapi/issues/127",0.8202507,["Reactive",3108],{},["Set"],["ShallowReactive",3111],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$frN-1JaZVlCBS9L36iZkmEQXWYnjTL_Wdyk6AYTTRFCE":-1},"/enzonotario/vitepress-openapi/251"]