-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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: