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>
相关推荐
踢足球09293 分钟前
寒假打卡:2026-2-7
java·开发语言·javascript
_果果然4 分钟前
这 7 个免费 Lottie 动画网站,帮你省下一个设计师的工资
前端
QT.qtqtqtqtqt6 分钟前
uni-app小程序前端开发笔记(更新中)
前端·笔记·小程序·uni-app
楚轩努力变强23 分钟前
iOS 自动化环境配置指南 (Appium + WebDriverAgent)
javascript·学习·macos·ios·appium·自动化
Aliex_git33 分钟前
跨域请求笔记
前端·网络·笔记·学习
John_ToDebug40 分钟前
引擎深处的漫游者:构建浏览器JavaScript引擎的哲学与技艺
javascript·chrome·js
37方寸44 分钟前
前端基础知识(Node.js)
前端·node.js
程序猿阿伟1 小时前
《TypeScript中Protobuf到运行时类型安全的转换指南》
javascript·安全·typescript
powerfulhell1 小时前
寒假python作业5
java·前端·python
木子啊1 小时前
前端组件化:模板继承拯救发际线
前端