2024年最全微信小程序解析富文本(支持代码高亮)_小程序里使用highlight(1),数据库工程师面试自我介绍

数据结构与算法

这一块在笔试、面试的代码题中考核较多,其中常考的数据结构主要有:数组、链表、队列、栈、Set、Map、哈希表等,不同数据结构有不同的方法以及储存原理,这些算是技术岗的必备知识。算法部分主要分为两大块,排序算法与一些其他算法题

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

排序算法根据考频高低主要有:快速排序、归并排序、堆排序、冒泡排序、插入排序、选择排序、希尔排序、桶排序、基数排序、Timsort这十种,这类考核点要么是算法的时间、空间复杂度、稳定度,要么是直接手写代码,故在理解算法原理的同时,对JS语言版的排序算法代码也要加强记忆。

  • 二叉树层序遍历
  • B 树的特性,B 树和 B+树的区别
  • 尾递归
  • 如何写一个大数阶乘?递归的方法会出现什么问题?
  • 把多维数组变成一维数组的方法
  • 知道的排序算法 说一下冒泡快排的原理
  • Heap 排序方法的原理?复杂度?
  • 几种常见的排序算法,手写
  • 数组的去重,尽可能写出多个方法
  • 如果有一个大的数组,都是整型,怎么找出最大的前 10 个数
  • 知道数据结构里面的常见的数据结构
  • 找出数组中第 k 大的数组出现多少次,比如数组【1,2, 4,4,3,5】第二大的数字是 4,出现两次,所以返回 2
  • 合并两个有序数组
  • 给一个数,去一个已经排好序的数组中寻找这个数的位 置(通过快速查找,二分查找)

在这里插入图片描述
这对个人的开发者来说确实挺不友好的,在开放文档中查找web-view的时候还发现了另一个可以解析的组件rich-text
在这里插入图片描述
上手了之后遇到了几点问题。

  1. 解析<code></code> <pre></pre>标签会显示空白
  2. 图片太大会超出屏幕
  3. 没有代码高亮

所有只能放弃小程序内置的组件了,在百度了几分钟后,看到目前比较热门的是wxParse插件,功能还是比较多
在这里插入图片描述
但好像没有我需要的代码高亮功能,于是又百度了几分钟,

最终找到了完美解决上述问题的插件html2wxml,目前有三种使用方法,我使用的是组件版本

  1. 首先将html2wxml-component整个文件复制到小程序的目录
    在这里插入图片描述
  2. 在你要使用的页面的对应的 json文件,例如我使用的是article页面,就在article.json中添加组件的声明。注意文件的相对路径
{
  "usingComponents": {
    "htmltowxml": "../../html2wxml-component/html2wxml"
  }
}

  1. 之后在你要使用到的wxml文件中加入
<htmltowxml text="{{data}}" ></htmltowxml>

其中{{data}}为你要渲染的HTML数据。
html2wxml的GitHub官网中有详细的介绍。
在这里插入图片描述

// 将Page中的content数据作为HTML格式渲染
<htmltowxml text="{{content}}" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>

// 禁用代码高亮功能
<htmltowxml text="{{content}}" highlight="{{false}}" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>

// 禁用代码行号显示功能
<htmltowxml text="{{content}}" linenums="{{false}}" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>

// 代码高亮样式改为tomorrow
<htmltowxml text="{{content}}" highlightStyle="tomorrow" bindWxmlTagATap="wxmlTagATap" ></htmltowxml>

// 设置代码高亮检测语言 (最多6个,自行搭建服务不受限制)


### 最后

本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是给大家的。知识点涉及比较全面,包括但不限于**前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等**

>**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**

![](https://img-blog.csdnimg.cn/img_convert/009673f78a9138fefe3f9570e95f6112.webp?x-oss-process=image/format,png)

**前端视频资料:**
![](https://img-blog.csdnimg.cn/img_convert/7c9233b090ff41f14ea33a78b019a646.webp?x-oss-process=image/format,png)

*

[外链图片转存中...(img-QMUfGI9K-1715682277526)]

**前端视频资料:**
[外链图片转存中...(img-tVGwz3as-1715682277526)]

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 UniApp 项目中使用 markdown 渲染并实现代码块背景、代码高亮和复制功能,需要使用以下步骤: 1. 在你的 UniApp 项目根目录下,通过命令行安装 markdown-it、highlight.js 和 clipboard.js: ```shell npm install markdown-it highlight.js clipboard --save ``` 2. 在你需要使用 markdown 的页面或组件中,引入 markdown-it、highlight.js 和 clipboard.js: ```javascript import MarkdownIt from 'markdown-it' import hljs from 'highlight.js' import ClipboardJS from 'clipboard' ``` 3. 创建一个 markdown-it 实例,并进行相应的配置: ```javascript const md = new MarkdownIt({ highlight: function (str, lang) { if (lang && hljs.getLanguage(lang)) { try { return '<pre class="hljs"><code>' + hljs.highlight(lang, str, true).value + '</code></pre>'; } catch (__) {} } return '<pre class="hljs"><code>' + md.utils.escapeHtml(str) + '</code></pre>'; } }) ``` 4. 在页面中定义一个方法,用于初始化复制功能: ```javascript methods: { initClipboard() { const codeBlocks = document.querySelectorAll('pre code') for (let i = 0; i < codeBlocks.length; i++) { const codeBlock = codeBlocks[i] const btn = document.createElement('button') btn.className = 'copy-btn' btn.textContent = 'Copy' codeBlock.parentNode.insertBefore(btn, codeBlock) } const clipboard = new ClipboardJS('.copy-btn', { target: function (trigger) { return trigger.nextElementSibling; } }) clipboard.on('success', function (e) { e.clearSelection() uni.showToast({ title: 'Copied', icon: 'none' }) }) clipboard.on('error', function (e) { uni.showToast({ title: 'Copy Failed', icon: 'none' }) }) } } ``` 5. 在页面中使用 markdown-it 解析 markdown 文本,并将结果渲染到页面中: ```javascript mounted() { const result = md.render('# Hello, Markdown!') this.result = result this.$nextTick(() => { this.initClipboard() }) } ``` 6. 在页面中使用渲染结果,并添加相应的样式: ```html <template> <view class="container"> <rich-text :nodes="result"></rich-text> </view> </template> <style> pre.hljs { background-color: #333; color: #fff; padding: 10px; } .copy-btn { position: absolute; top: 8px; right: 8px; border: none; background-color: transparent; font-size: 14px; color: #999; cursor: pointer; } </style> ``` 这样,你就可以在 UniApp 项目中使用 markdown-it、highlight.js 和 clipboard.js 来渲染 Markdown 文本,并实现代码块背景、代码高亮和复制功能了。在页面中,使用 `<rich-text>` 组件来展示渲染结果,并通过添加相应的样式来实现代码块背景和复制按钮。记得根据你的实际需求进行配置和使用,以适配 APP 端、微信小程序端和 H5 端的展示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值