vue2 md文件预览和下载

vue2 md文件预览和下载

javascript 复制代码
本文展示预览md文件,以及将md内容下载成md和pdf文件的方法
1、使用vue-meditor插件
2、使用@kangc/v-md-editor插件

3、md内容下载成md文件
4、md内容下载成pdf文件
复制代码
注意:markdown-it、vue-markdown、marked插件也试了,效果不好,不推荐

(1)vue-meditor

步骤1:下载依赖
复制代码
npm i vue-meditor -S
步骤2:使用
javascript 复制代码
<!--    md编辑器,需要-->
    <MarkdownPro :initialValue="markdownContent" :isPreview="false"/>
<!--    md预览-->
    <MarkdownPreview :initialValue="markdownContent"></MarkdownPreview>
javascript 复制代码
<script>
import Markdown from 'vue-meditor';
import { MarkdownPro } from 'vue-meditor'
import { MarkdownPreview } from 'vue-meditor'

export default {
  data() {
    return {
      markdownContent: '',
    };
  },
  components: {
    Markdown,
    MarkdownPro,
    MarkdownPreview
  },
  mounted() {
    this.loadMarkdownFile();
  },
  methods: {
    async loadMarkdownFile() {
      try {
        //引入在public文件夹下的md文件
        const response = await fetch('/api.md');
        const markdownText = await response.text();
        this.markdownContent = markdownText;
      } catch (error) {
        console.error('Failed to load the Markdown file:', error);
      }
    },
  }
};
</script>

(2)方法二:@kangc/v-md-editor

步骤1:下载依赖
复制代码
1、npm i @kangc/v-md-editor -S
2、npm install --save highlight.js
步骤2:使用
javascript 复制代码
 <VMdPreview :text="markdownContent"></VMdPreview>
<script>
import VMdPreview from '@kangc/v-md-editor/lib/preview';
import '@kangc/v-md-editor/lib/style/preview.css';
import githubTheme from '@kangc/v-md-editor/lib/theme/github';
import '@kangc/v-md-editor/lib/theme/style/github.css';
import hljs from 'highlight.js';

VMdPreview.use(githubTheme, {
  Hljs: hljs,
});

const markdownContent = ref('# Hello md-e 👋\n\n- 支持实时预览\n- 支持图片上传\n- 支持快捷键(如 Ctrl+S 保存)')
const loadMarkdownFile = async () =>{
  try {
    //引入在public文件夹下的md文件
    const response = await fetch('/api.md');
    const markdownText = await response.text();
    markdownContent.value = markdownText;
  } catch (error) {
    console.error('Failed to load the Markdown file:', error);
  }
}

loadMarkdownFile()
</script>

(3)下载md文件

方法1:
javascript 复制代码
// * 保存.md文件 
const onSaveMD = () => {
  const blob = new Blob([markdownContent.value], { type: 'text/markdown' });

  const link = document.createElement('a');
  link.href = URL.createObjectURL(blob);
  link.download = `1.md`;

  link.click();

  URL.revokeObjectURL(link.href);
};
方法2:
javascript 复制代码
import download from "downloadjs" //(只能下载源文件,不能下载需要转格式的)
const onSaveMD = () => {
  download(this.markdownContent, 'test12.md', "text/markdown");
};

(4)md内容下载成pdf文件

javascript 复制代码
<VMdPreview :text="markdownContent"  id="content-to-pdf"></VMdPreview>
<script setup>
import html2pdf from 'html2pdf.js';
// * 保存.pdf文件
const onSavePDF = () => {
  // 获取要转换的元素或创建临时元素
  const element = document.getElementById('content-to-pdf');

  const options = {
    margin: 10,
    filename: 'document.pdf',
    image: { type: 'jpeg', quality: 0.98 },
    html2canvas: { scale: 2 },
    jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }
  };
  html2pdf().from(element).set(options).save();
    // html2pdf().from(tableElement).save()
};

</script>
相关推荐
黑臂麒麟3 分钟前
Electron for OpenHarmony 跨平台实战开发:Electron 文件系统操作实战
前端·javascript·electron·openharmony
wordbaby3 分钟前
Tanstack Router 文件命名速查表
前端
用户7227868123449 分钟前
Vue2中能否实现输入中文自动转化为拼音, 且不带音调
vue.js
1024肥宅11 分钟前
工程化工具类:模块化系统全解析与实践
前端·javascript·面试
软件技术NINI11 分钟前
如何学习前端
前端·学习
weixin_4225554213 分钟前
ezuikit-js官网使用示例
前端·javascript·vue·ezuikit-js
鱼鱼块16 分钟前
从零搭一个 Vue 小家:用 Vite + 路由轻松入门现代前端开发
vue.js·面试·前端框架
梓仁沐白23 分钟前
CSAPP-Attacklab
前端
郑州光合科技余经理39 分钟前
海外国际版同城服务系统开发:PHP技术栈
java·大数据·开发语言·前端·人工智能·架构·php
一行注释1 小时前
前端数据加密:保护用户数据的第一道防线
前端