-
Notifications
You must be signed in to change notification settings - Fork 89
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Vue Docs REPL implementation via SFC Playground #30
Comments
@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.
This is definitely great idea 👍
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...? 👀
The text was updated successfully, but these errors were encountered: