UNPKG

vue-markdown-wasm

Version:
13 lines (11 loc) 2.29 kB
/** * vue-markdown-wasm * * @description markdown-wasm for vue 2 & 3 * @author Logue <logue@hotmail.co.jp> * @copyright 2022-2025 By Masashi Yoshikawa All rights reserved. * @license MIT * @version 1.0.1 * @see {@link https://github.com/logue/vue-markdown-wasm} */ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var d=require("@logue/markdown-wasm"),l=require("vue-demi");const m={name:"vue-markdown-wasm",version:"1.0.1",author:{name:"Logue",email:"logue@hotmail.co.jp",url:"https://logue.dev/"},date:"2025-10-23T01:25:22.768Z"},c=e=>e?Object.entries(e).reduce((n,[a,r])=>(a=a.charAt(0).toUpperCase()+a.slice(1),a=`on${a}`,{...n,[a]:r}),{}):{};function f(e,n={},a){if(l.isVue2)return l.h(e,n,a);const{props:r,domProps:o,on:t,...i}=n,s=t!=null?c(t):{};return l.h(e,{...i,...r,...o,...s},a)}const u=l.defineComponent({name:"VueMarkdown",model:{prop:"modelValue"},props:{modelValue:{type:String,default:""},tag:{type:String,default:"article"},parseFlags:{type:Number,default:d.ParseFlags.DEFAULT},format:{type:String,default:"xhtml"},bytes:{type:Boolean,default:!1},allowJsUri:{type:Boolean,default:!1},onCodeBlock:{type:Function},debug:{type:Boolean,default:!1},verbatimEntities:{type:Boolean,default:!0},disableHeadlineAnchors:{type:Boolean,default:!1}},emits:{render:e=>!0},setup(e,n){const a=l.ref(),r=l.ref("");l.watch(()=>e,async t=>{r.value=o(t.modelValue,{parseFlags:t.parseFlags,xhtml:t.format==="xhtml",bytes:e.bytes,allowJSURIs:t.allowJsUri,onCodeBlock:t.onCodeBlock,debug:t.debug,verbatimEntities:t.verbatimEntities,disableHeadlineAnchors:t.disableHeadlineAnchors}),await l.nextTick()},{deep:!0}),l.onMounted(async()=>{globalThis.window!==void 0&&(await d.ready(),r.value=o(e.modelValue,{parseFlags:e.parseFlags,xhtml:e.format=="xhtml",bytes:e.bytes,allowJSURIs:e.allowJsUri,onCodeBlock:e.onCodeBlock,debug:e.debug,verbatimEntities:e.verbatimEntities,disableHeadlineAnchors:e.disableHeadlineAnchors}))});const o=(t,i)=>{if(globalThis.window===void 0)return"";const s=d.parse(t,i);return n.emit("render",s),s};return n.expose({render:o}),{placeholder:a,html:r}},render(){return f(this.$props.tag,{ref:"placeholder",class:"vue-markdown",innerHTML:this.html})}}),b=e=>e.component("VueMarkdown",u);exports.Meta=m;exports.default=u;exports.install=b;