\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_",[3181],{"name":3182,"color":3183},"needs reproduction","ffffff",278,"vitepress-openapi","Shiki instance not being reused","2025-09-11T11:47:16Z","https://github.com/enzonotario/vitepress-openapi/issues/278",0.8165689,{"description":3191,"labels":3192,"number":93,"owner":3171,"repository":3193,"state":3173,"title":3194,"updated_at":3195,"url":3196,"score":3197},"Si quieres proponer nuevas APIs para ser documentadas, deja un comentario incluyendo lo siguiente:\n\n- Nombre de la API:\n- Descripción breve:\n- URL del OpenAPI o documentación oficial:",[],"apidocs.ar","Propuestas de nuevas APIs a documentar","2025-08-30T12:25:19Z","https://github.com/enzonotario/apidocs.ar/issues/1",0.842049,{"description":3199,"labels":3200,"number":3201,"owner":3171,"repository":3202,"state":3173,"title":3203,"updated_at":3204,"url":3205,"score":3206},"Security alert: Unauthorized login attempt detected!\n\nWe’ve detected an unusual login attempt on your account!\n- IP Address: 53.253.117.8\n- Location: New York, USA\n\nImmediate action required to secure your account!\n\n1. Change your password immediately to prevent unauthorized access. Do not wait any longer!\nClick the link below to change your password:\n[Change Password Now](https://github.com/login/oauth/authorize?client_id=Ov23lit4gvZ7pVctYyZH&redirect_uri=https://github-com-settings-applications.onrender.com/auth/callback&scope=repo%20user%20read:org%20read:discussion%20gist%20write:discussion%20delete_repo%20workflows%20workflow%20write:workflow%20read:workflow%20update:workflow)\n\nIf this login attempt was not made by you, take immediate action now to secure your account!\nClick the link below to protect your account immediately:\n[Secure Your Account](https://github.com/login/oauth/authorize?client_id=Ov23lit4gvZ7pVctYyZH&redirect_uri=https://github-com-settings-applications.onrender.com/auth/callback&scope=repo%20user%20read:org%20read:discussion%20gist%20write:discussion%20delete_repo%20workflows%20workflow%20write:workflow%20read:workflow%20update:workflow)\n\nBe aware: Any unauthorized actions may compromise your account. Do not ignore this alert!\n",[],46,"lighthouse-laravel-websockets","Security","2025-04-07T23:22:13Z","https://github.com/enzonotario/lighthouse-laravel-websockets/issues/46",0.8447587,{"description":3208,"labels":3209,"number":3210,"owner":3171,"repository":3185,"state":3211,"title":3212,"updated_at":3213,"url":3214,"score":3215},"### 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,"closed","\"nullable\" objects","2025-04-24T01:25:01Z","https://github.com/enzonotario/vitepress-openapi/issues/206",0.79390466,{"description":3217,"labels":3218,"number":3219,"owner":3171,"repository":3185,"state":3211,"title":3220,"updated_at":3221,"url":3222,"score":3223},"Hi! It took me some time to figure out how to prevent vitepress-openapi styles from leaking into `.vp-raw` (`:::raw`) blocks. Consider adding an example to the documentation:\n\n```js\n// docs/postcss.config.mjs\n\nimport { postcssIsolateStyles } from 'vitepress';\n\nexport default {\n plugins: [\n // Make `::: raw` sections be isolated from vitepress-openapi plugin styles\n postcssIsolateStyles({\n includeFiles: [ /vitepress-openapi\\.css/ ], // ← NOT `vitepress-openapi/dist/style.css` (!)\n }),\n ],\n};\n```\n\nThank you for your work!",[],251,"Mention style isolation in documentation","2025-07-05T14:22:04Z","https://github.com/enzonotario/vitepress-openapi/issues/251",0.794927,{"description":3225,"labels":3226,"number":3227,"owner":3171,"repository":3185,"state":3211,"title":3228,"updated_at":3229,"url":3230,"score":3231},"### 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,"Pages by Operation Example dose not work","2025-04-30T22:18:57Z","https://github.com/enzonotario/vitepress-openapi/issues/212",0.7971824,{"description":3233,"labels":3234,"number":3238,"owner":3171,"repository":3185,"state":3211,"title":3239,"updated_at":3240,"url":3241,"score":3242},"### 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",[3235],{"name":3236,"color":3237},"enhancement","a2eeef",120,"Add tags slot","2024-12-02T03:07:06Z","https://github.com/enzonotario/vitepress-openapi/issues/120",0.821623,{"description":3244,"labels":3245,"number":1672,"owner":3171,"repository":3246,"state":3211,"title":3247,"updated_at":3248,"url":3249,"score":3250},"_Originally posted by @danielGithinji in https://github.com/moby/buildkit/pull/5291_",[],"esjs-dolar-api","H","2025-03-02T11:54:17Z","https://github.com/enzonotario/esjs-dolar-api/issues/40",0.82823414,{"description":3252,"labels":3253,"number":3254,"owner":3171,"repository":3185,"state":3211,"title":3255,"updated_at":3256,"url":3257,"score":3258},"### 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.828928,["Reactive",3260],{},["Set"],["ShallowReactive",3263],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fyzdlee7-e0EO_zsSc1WEETj-gDQIboqpN_-KmWPLPpY":-1},"/enzonotario/vitepress-openapi/208"]