vue-files-preview-inno
Version:
A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.
3 lines (2 loc) • 1.38 kB
JavaScript
;const t=require("vue"),m=require("../../../../node_modules/markdown-it/lib/index.js"),f=require("../../../../node_modules/markdown-it-footnote/index.js"),p=require("../../../../node_modules/markdown-it-container/index.js"),o=require("../../../../node_modules/highlight.js/lib/index.js"),u=require("../../utils/utils.js"),g={class:"md-preview hljs"},_=["innerHTML"],x=t.defineComponent({__name:"index",props:{file:{default:()=>null},url:{default:()=>null},name:{}},emits:["rendered","error"],setup(a,{emit:d}){const n=a,i=d,c=t.ref();function h(){const r=m({html:!0,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!0,typographer:!0,quotes:"“”‘’",highlight(e,l){if(l&&o.getLanguage(l))try{return`<pre><code class="hljs">${o.highlight(e,{language:l,ignoreIllegals:!0}).value}</code></pre>`}catch{}return`<pre><code class="hljs">${r.utils.escapeHtml(e)}</code></pre>`}});return r.use(f).use(p)}function s(r){const e=h();c.value=e.render(r),i("rendered")}return t.watch(()=>n.file,r=>{r&&u.getFileRenderByFile(r).then(e=>{s(e)}).catch(e=>{i("error",e)})},{immediate:!0}),t.watch(()=>n.url,r=>{r&&!n.file&&u.getFileRenderByUrl(r).then(e=>{s(e)}).catch(e=>{i("error",e)})},{immediate:!0}),(r,e)=>(t.openBlock(),t.createElementBlock("div",g,[t.createElementVNode("div",{innerHTML:c.value},null,8,_)]))}});module.exports=x;
//# sourceMappingURL=index.vue2.js.map