vue-hooks-plus
Version:
Vue hooks library
33 lines (32 loc) • 819 B
JavaScript
import { marked } from "marked";
import { ref, computed, unref, watchEffect, createApp } from "vue";
function usePreview(md) {
const container = ref();
const mdCompute = computed(() => unref(md));
watchEffect((onInvalidate) => {
if (mdCompute.value && container.value) {
try {
if (typeof mdCompute.value === "string") {
const html = marked.parse(mdCompute.value);
if (html)
container.value.innerHTML = html;
} else {
const app = createApp(mdCompute.value);
app.mount(container.value);
}
} catch (error) {
console.log(error);
}
}
onInvalidate(() => {
if (container.value)
container.value.innerHTML = "";
});
});
return {
container
};
}
export {
usePreview as default
};