Open kiaking opened 3 years ago
@LinusBorg I heard you were able to embed SFC Playground into Slidev 👀 Is it true? If so, can same technique applied to VitePress as well?
I think this will do:
<iframe src="https://sfc.vuejs.org/#eyJBcHAudnVlIjoiPHRlbXBsYXRlPlxuXHRIaSBLaWEgOilcbjwvdGVtcGxhdGU+In0=" />
Ideally we could have some custom syntax to extend the markdown and transform to the iframe with corresponding hash via a simple Vite plugin. Like
```vue {repl}
<template>
<h1>{{ msg }}</h1>
</template>
<script setup>
const msg = 'Hello World!'
</script>
```
Yes I did, in a crude kind of way:
https://github.com/LinusBorg/slidev-theme-vuetiful/blob/main/layouts/sfc.vue
The most hackish part is using negative margins to move the playground's header out of the way. We could instead add a URL parameter to the playground to have it render without the header and other cruft we don't want while embedding.
Also, a simple iframe might not be what we cant in the docs as it won't be able to adjust hight-wise to the different examples
Oh cool, seems like embedding is quite straight forward.
We could instead add a URL parameter to the playground to have it render without the header and other cruft we don't want while embedding.
This is definitely great idea 👍
Also, a simple iframe might not be what we cant in the docs as it won't be able to adjust hight-wise to the different examples.
Hm. We can adjust the iframe height by css right...? So maybe import component and set height via props might work? 🤔
<SFCPlayground height="320px" />
Oh, btw, here's how I imported the src snippets in slidev - might be able to do this differently in vitepress:
https://github.com/LinusBorg/slidev-theme-vuetiful/blob/main/setup/main.ts
The plan is to enable REPL on the docs via SFC Playground instead of codepen (initial idea from Evan).
Now, how can we embed SFC Playground...? 👀