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>
相关推荐
郑州光合科技余经理1 小时前
本地生活系统:多业务订单字段怎么分账本导出
java·开发语言·前端·数据库·uni-app·php·ai编程
怕浪猫8 小时前
FDE 如何正确解决现场项目工程性的问题
前端·后端·ai编程
西瓜太郎12348 小时前
外层模型卡片与分组详情成功率不一致,应该怎么排查?
前端·typescript·go·软件工程·react
GreenTea9 小时前
vLLM 与 SGLang KV Cache 底层实现机制深度调研报告
前端·后端·算法
毕业设计70311 小时前
(免费领源码) 基于微信小程序的预制菜商城的设计与实现25172-java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
vue.js·python·mysql·微信小程序·pycharm·微信开发者工具·推荐算法
xifangge202512 小时前
AGENTS.md 怎么写?涵盖 Java、Python、Vue、Go 的 8 套开箱即用模板
java·vue.js·python
几何心凉12 小时前
没有万能模型:我用 AiiOnly Token Plan,把多款大模型的长处拼进同一个项目
前端
kyriewen12 小时前
Claude Code 的额度今天缩水了17%——官方公告上写的是"永久提高25%"
前端·ai编程·claude
雪芽蓝域zzs12 小时前
vue解构平铺VS对象包裹
前端·javascript·vue.js
风骏时光牛马13 小时前
从零到实战,完整AI学习路线
前端