\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_",[3171],{"name":3172,"color":3173},"needs reproduction","ffffff",278,"enzonotario","vitepress-openapi","open","Shiki instance not being reused","2025-09-11T11:47:16Z","https://github.com/enzonotario/vitepress-openapi/issues/278",0.78005385,{"description":3183,"labels":3184,"number":93,"owner":3175,"repository":3185,"state":3177,"title":3186,"updated_at":3187,"url":3188,"score":3189},"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.8102983,{"description":3191,"labels":3192,"number":3193,"owner":3175,"repository":3176,"state":3177,"title":3194,"updated_at":3195,"url":3196,"score":3197},"So, following on from https://github.com/enzonotario/vitepress-openapi/issues/237#issuecomment-2994204686\n\nThis \"issue\" is rather a place to collect my thoughts and discuss, potentially some of these ideas are bad, but its the combination of thoughts given the `xxx` confusion I had, + pulling in thoughts from other tooling I have used.\n\n---\n\n\n\nThe display of `xxx` is unclear to me in terms of what it is trying to communicate.\nIt could be one of these things\n - xxx is the example, a placeholder for you to enter something into\n - It could be representing the fact that a value is there, but we dont want to show you (like `***` for passwords)\n - It could be the actual value saved in local storage? waiting for you to update it?\n\nWhen loading first time and making a request, I actually saw that it made a request with a literal `xxx`\n\n\n\nNot sure if this is something I had entered though?\n\nIt was indeed stored in local storage (and the UI didn't really help me figure that out...)\n\n\n\nDeleting the key from local storage, and I then correctly see the example appear in the latest version\n\n\n\nAs a result, im not sure if https://github.com/enzonotario/vitepress-openapi/issues/237 even was an issue, or rather just I had no idea where the `xxx` was coming from?\n\nSo, I would propose......\n\n**1)When key is stored and coming form local storage, keep it editable**\n\nCurrently when its coming form local storage, it is the placeholder for the field..\n\n\n\nThis makes it appear exactly like the example, and examples else where and thus is easily confused.\n\nI see other API sandboxes just keep / load the field into the text box and leave it there, so perhaps just do that?\n\n**2)Hover text for field saying it is stored between sessions in local storage?**\n\nAgain, a subtle way to make it easier for folks to understand what it going on?\n\n**3)Provide a way to clear from local storage**\n\nPerhaps a small clear button next to the APIKey name?\n\n\n\nMaybe there should even be a save button here rather than doing it automatically?\n\nPerhaps all of what I have said and am saying should be other in the other component?\n\n\n\n**4) Provide an optional button next to token field, to take a user to a page to setup the api key?**\n\nThis could be a custom dedicated page with custom content.\nIt thus could be as simple as just a page with instructions, and also a text box and save button that would put the key in local storage?\nIt could also just be a popup?\n\nPerhaps a default component for use on such as page could be used that takes the key and puts it in the right place in local storage?\n\nAnd perhaps another way of default option that could be provided would be a link to the route page that would generate the token, such as in my case http://localhost:8093/apis/v2/post-users-login\nOnce making the request and getting a response, next to the response would be a button to say \"set as API key\" or such?\nSo this would require some additional options on the route component?\n\nPerhaps something in one of these 3 green places?\n\n",[],246,"Ideas around Authorization saving and population","2025-06-23T08:01:09Z","https://github.com/enzonotario/vitepress-openapi/issues/246",0.82122225,{"description":3199,"labels":3200,"number":3201,"owner":3175,"repository":3176,"state":3202,"title":3203,"updated_at":3204,"url":3205,"score":3206},"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,"closed","Mention style isolation in documentation","2025-07-05T14:22:04Z","https://github.com/enzonotario/vitepress-openapi/issues/251",0.77174306,{"description":3208,"labels":3209,"number":3213,"owner":3175,"repository":3176,"state":3202,"title":3214,"updated_at":3215,"url":3216,"score":3217},"### Current behavior\n\nI installed the newest version of vitepress-openapi, but my Gitlab runner doesn't know what a **File** is, before this update that wasn't a problem.\n\n\u003Cimg width=\"1015\" height=\"171\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/14b865c3-be33-4ce1-9979-30a4cfdf80e4\" />\n\nThis is the code that crashes the runner\n\n\u003Cimg width=\"743\" height=\"433\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/1cc2321d-05e5-4e0a-9e2f-f0846ea8042a\" />\n\n\n### Desired behavior\n\n_No response_\n\n### Reproduction\n\n_No response_\n\n### Steps to reproduce\n\nInstall latest version of vitepress-openapi\nTry to build it with Gitlab Runner\n\n### Logs and Error Messages\n\n_No response_\n\n### Other Information\n\n_No response_",[3210],{"name":3211,"color":3212},"bug","d73a4a",303,"Newest release breaks Gitlab runner","2025-09-15T09:29:46Z","https://github.com/enzonotario/vitepress-openapi/issues/303",0.7782847,{"description":3219,"labels":3220,"number":3221,"owner":3175,"repository":3176,"state":3202,"title":3222,"updated_at":3223,"url":3224,"score":3225},"### 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.78247803,{"description":3227,"labels":3228,"number":3232,"owner":3175,"repository":3176,"state":3202,"title":3233,"updated_at":3234,"url":3235,"score":3236},"### 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_",[3229],{"name":3230,"color":3231},"question","d876e3",208,"init error","2025-04-20T13:05:55Z","https://github.com/enzonotario/vitepress-openapi/issues/208",0.7978695,{"description":3238,"labels":3239,"number":3241,"owner":3175,"repository":3176,"state":3202,"title":3242,"updated_at":3243,"url":3244,"score":3245},"### Current behavior\n\n\n\n### Desired behavior\n\nEither the text should wrap, or just be displayed in a better way\n\n### Reproduction\n\n_No response_\n\n### Steps to reproduce\n\n```\n \"securitySchemes\": {\n \"ApiKeyAuth\": {\n \"in\": \"header\",\n \"name\": \"Authorization\",\n \"type\": \"apiKey\",\n\"description\": \"API Key for authentication. Retrieval from either API version login routes, or other authentication token type. See \u003Ca href='/apis/authentication'>Authentication\u003C/a> for more details.\",\n\"example\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOjEsImlhdCI6MTY3Mjc2NjAyOCwiZXhwIjoxNjc0NDk0MDI4fQ.kCak9sLJr74frSRVQp0_27BY4iBCgQSmoT3vQVWKzJg\"\n }\n }\n```\n\n### Logs and Error Messages\n\n_No response_\n\n### Other Information\n\n_No response_",[3240],{"name":3211,"color":3212},236,"Long Authorization example doesnt display nicely","2025-06-22T12:55:43Z","https://github.com/enzonotario/vitepress-openapi/issues/236",0.79791844,{"description":3247,"labels":3248,"number":3252,"owner":3175,"repository":3176,"state":3202,"title":3253,"updated_at":3254,"url":3255,"score":3256},"### Current behavior\n\n\n\n### Desired behavior\n\nI'm not sure what the desired behaviour should be here.\nHowever the `xxx` is seemingly hardcoded in the components currently, and i half would have expected the example to override this based on the behaviours of other parameter and variables examples in the playground.\n\nIt might even be nicer to just have the default auth actually always be an empty string rather than xxx?\n\n### Reproduction\n\n_No response_\n\n### Steps to reproduce\n\nJust provide an example, and see it not appear in the playground...\n\n### Logs and Error Messages\n\n_No response_\n\n### Other Information\n\n_No response_",[3249],{"name":3250,"color":3251},"enhancement","a2eeef",237,"Authorization example not shown in playground, inconsistent with other examples?","2025-06-22T12:55:44Z","https://github.com/enzonotario/vitepress-openapi/issues/237",0.8073601,{"description":3258,"labels":3259,"number":1234,"owner":3175,"repository":3263,"state":3202,"title":3264,"updated_at":3265,"url":3266,"score":3267},"Antes que nada, ¡excelente API!. En cuanto al código python en los ejemplos de la `documentación`, contiene una mezcla de \r\n`js` y `python`😅 en cada una de las rutas. \r\n\r\nEl código básico podría ser algo así para imprimir el dict con cada tipo de cambio:\r\n```python\r\nimport requests\r\n\r\ndata = requests.get(\"https://dolarapi.com/v1/dolares\").json()\r\nfor item in data:\r\n print(item)\r\n```",[3260],{"name":3261,"color":3262},"documentation","0075ca","esjs-dolar-api","Ejemplos: Código Python Erróneo","2024-02-01T23:20:05Z","https://github.com/enzonotario/esjs-dolar-api/issues/6",0.8110946,["Reactive",3269],{},["Set"],["ShallowReactive",3272],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fTpChV7oj6w6eBGJC0hFeDDoOP6AnmL5xEqHjK0W19x8":-1},"/enzonotario/vitepress-openapi/212"]