javascript - Er det mulig å gjengi TS-typer eller verdier av variabler inne i markdown-filer ved bruk av statiske nettstedgeneratorer som VitePress?
Jeg vil lage en dokumentasjon ved hjelp av Vitepress (eller lignende). Denne appen bruker en pakke som inneholder typer og Zod-skjemaer. Rotbibliotekets index.ts kunne være
import { z } from 'zod';
const userSchema = z
.object({
username: z.string().min(1),
})
.strict();
type User = z.infer<typeof userSchema>;
export { userSchema, type User }
Finnes det en måte å enten gjengi skjemaet eller typen inne i markdown-filen på?
Kanskje med hjelp av Vue-filer (VitePress)
Jeg vil bare beskrive skjemaet eller typen, men vil ikke kopiere alle feltene fra det fordi da må jeg passe på at alt er synkronisert.
Svar #1
- Bruk https://www.npmjs.com/package/zod-to-ts for å konvertere skjemaet ditt til en Runtime TypeScript-streng
- Bruk
ts-vue Code Blocksfor å gjengi det
<script setup lang="ts">
import { printNode, zodToTs } from 'zod-to-ts'
import { UserSchema } from './schemas'
const identifier = 'User'
const { node } = zodToTs(UserSchema, identifier)
const nodeString = printNode(node)
</script>
```ts-vue
// {{ identifier }} Schema
{{ nodeString }}
```
