uni-app markdown文件运行在内置web服务器中 不再支持html标签渲染
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 |
如果方便,麻烦提供下具体示例,以便我们测试和定位问题。
点击预览,html与js不会再被解析,同时通过打印导出pdf的方案也不再可用,因为现在有滚动条了
这个问题能不能修复啊,不想切换为typora,HBuilderX方便些,代码、日程记录、markdown在一个工具中解决了
HBuilderX Alpha版本,已修复此问题。最近将会发布正式版。如果着急,建议先使用HBuilderX alpha版本。
alpha下载地址:https://www.dcloud.io/hbuilderx.html
回复 DCloud_HB_WDL: 4.15 不能解析图片语法,试过本地地址与网络地址都不行
在 uni-app 中,如果你希望渲染 Markdown 文件,并且不再支持 HTML 标签渲染,可以采取以下步骤来实现。这里假设你使用的是基于 Vue.js 的 uni-app 框架。
1. 安装必要的依赖
首先,你需要安装 marked
和 DOMPurify
这两个库。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
的配置中设置 sanitize
为 true
,这样 marked
会自动清理 HTML 标签。
marked.setOptions({
sanitize: true
});
5. 运行内置 Web 服务器
确保你的 uni-app 项目已经配置好,并且可以通过内置的 Web 服务器运行。
npm run dev:%PLATFORM%