uni-app markdown文件运行在内置web服务器中 不再支持html标签渲染

发布于 1周前 作者 wuwangju 来自 Uni-App

uni-app markdown文件运行在内置web服务器中 不再支持html标签渲染

操作步骤:

  • 现在只渲染markdown语法,html标签与js会被直接显示

预期结果:

  • 同之前一样都渲染

实际结果:

  • html标签与js会被直接显示

bug描述:

markdown文件运行在内置web服务器中,不再支持html标签渲染,之前是支持渲染html标签的,现在只渲染markdown语法,html标签与js会被直接显示

信息类型 信息
产品分类 HbuilderX
PC开发环境 Windows
PC开发环境版本 win11
开发工具版本 3.99

7 回复

如果方便,麻烦提供下具体示例,以便我们测试和定位问题。


点击预览,html与js不会再被解析,同时通过打印导出pdf的方案也不再可用,因为现在有滚动条了

这个问题能不能修复啊,不想切换为typora,HBuilderX方便些,代码、日程记录、markdown在一个工具中解决了

HBuilderX Alpha版本,已修复此问题。最近将会发布正式版。如果着急,建议先使用HBuilderX alpha版本。

回复 DCloud_HB_WDL: 4.15 图片描述文字 不能解析图片语法,试过本地地址与网络地址都不行

在 uni-app 中,如果你希望渲染 Markdown 文件,并且不再支持 HTML 标签渲染,可以采取以下步骤来实现。这里假设你使用的是基于 Vue.js 的 uni-app 框架。

1. 安装必要的依赖

首先,你需要安装 markedDOMPurify 这两个库。marked 用于将 Markdown 转换为 HTML,DOMPurify 用于清理 HTML,防止 XSS 攻击。

npm install marked dompurify

2. 创建 Markdown 渲染组件

接下来,你可以创建一个 Vue 组件来渲染 Markdown 文件。

<template>
  <div v-html="renderedMarkdown"></div>
</template>

<script>
import marked from 'marked';
import DOMPurify from 'dompurify';

export default {
  props: {
    markdown: {
      type: String,
      required: true
    }
  },
  computed: {
    renderedMarkdown() {
      // 将 Markdown 转换为 HTML
      const html = marked(this.markdown);
      // 清理 HTML,防止 XSS 攻击
      return DOMPurify.sanitize(html);
    }
  }
};
</script>

<style scoped>
/* 你可以在这里添加一些样式 */
</style>

3. 使用 Markdown 渲染组件

在你需要使用 Markdown 的地方,导入并使用这个组件。

<template>
  <div>
    <markdown-renderer :markdown="markdownContent" />
  </div>
</template>

<script>
import MarkdownRenderer from '@/components/MarkdownRenderer.vue';

export default {
  components: {
    MarkdownRenderer
  },
  data() {
    return {
      markdownContent: `
# 标题

这是一段 **加粗** 的文本。

- 列表项 1
- 列表项 2

[链接](https://example.com)
      `
    };
  }
};
</script>

4. 禁用 HTML 标签渲染

如果你希望完全禁用 HTML 标签渲染,可以在 marked 的配置中设置 sanitizetrue,这样 marked 会自动清理 HTML 标签。

marked.setOptions({
  sanitize: true
});

5. 运行内置 Web 服务器

确保你的 uni-app 项目已经配置好,并且可以通过内置的 Web 服务器运行。

npm run dev:%PLATFORM%
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!