vue3 项目构建-8-展示 markdown 文档

第一步,下载插件

复制代码
npm install markdown-it

第二步,使用插件渲染

javascript 复制代码
<template>
  <div v-html="htmlContent"></div>
</template>

<script setup>
import { ref, computed } from 'vue';
import MarkdownIt from 'markdown-it';
// 创建 MarkdownIt 实例
const md = new MarkdownIt();
// 定义一个响应式的 Markdown 文本
const markdownText = ref('# Hello, World!\nThis is a markdown paragraph in script setup.');
// 通过计算属性将 Markdown 文本转换为 HTML 内容
const htmlContent = computed(() => md.render(markdownText.value));
</script>

实际页面的应用:

javascript 复制代码
<script setup>
import { inject, onMounted, ref, computed, watch } from 'vue';
import MarkdownIt from 'markdown-it';
const axios = inject('$axios');
const view = ref([]);
const getPostArticleView = async () => {
    const res = await axios({
        method: 'post',
        url: '/articles/view/1',
    });
    view.value = res.data.data;
    console.log(view);
};

let hasExecuted = false;

onMounted(() => {
    if (!hasExecuted) {
        getPostArticleView();
        hasExecuted = true;
    }
});

const md = new MarkdownIt();
// 用于存储转换后的HTML内容,初始为空
const htmlContent = ref('');
watch(view, (newView) => {
    if (newView && newView.body && newView.body.content) {
        // 当view有有效数据时,进行Markdown转换
        htmlContent.value = md.render(newView.body.content);
    }
}, { immediate: false });
</script>

<template>
    <div id="article">
        <div class="textSpring">
            <h1>{{view.title}}</h1>
            <hr>
            <div v-html="htmlContent"></div>
        </div>
    </div>
</template>

<style scoped>
    #article{
        padding: 20px;
    }

    .textSpring{
        margin: 0 auto;
        border: 1px solid black;
        border-radius: 5px;
        width: 60%;
    }
</style>

文章封面:

相关推荐
骑着蜗牛撵大象3276 分钟前
豆包 Seed 驱动的记账智能体:从拍票抽取到月报生成的全链路落地记录
java·前端·javascript·结构化输出·豆包seed·多模态识别·记账系统
溪语流沙8 分钟前
【Web全栈进阶】前端世界观:现代工具链与框架为什么存在
前端·javascript·vue.js
kyriewen30 分钟前
我逐个测了 JSON.stringify 的 7 个坑:第 1 个就在丢数据
前端·javascript·程序员
积流成海1 小时前
用代码实现哈希计算器:Web Crypto API 实战
前端·算法·哈希算法·哈希函数·盘子工具站
data analyse 4561 小时前
服务端访问日志聚合 PV 与 UV 怎么实现?日志采集与口径设计
大数据·前端·数据分析
JavaGuide1 小时前
DeepSeek Harness 重磅更新,Codex、Claude Code 子智能体进官方插件列表了,还有 Git 工作树和思考翻译!
前端·后端
WeiXin_DZbishe1 小时前
基于微信小程序的本地闲置物品交易平台-计算机毕设 附源码【课程设计】26825
vue.js·spring boot·python·微信小程序·架构·php·课程设计
小羊没烦恼!1 小时前
OS X 上使用.NET开发应用程序
开发语言·前端·数据库·人工智能·c#·策略模式
高级程序源2 小时前
springboot本地生活服务平台33399-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·小程序·flask·课程设计
高级程序源2 小时前
springboot社区旧物回收管理系统25381-计算机课程设计、毕业设计
vue.js·spring boot·python·django·课程设计