惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - xjb

利用PDF.js在微信小程序里预览PDF文件 用uniapp开发打包多端应用完整指南 微慕积分商城插件 微慕小程序开源版V4.6版发布 小程序富文本解析利器mp-html 微慕小程序专业版V3.8.0发布 微慕 rest api 缓存插件 微慕搜索助手插件:minapper-wechat-search 微慕小程序开源版v4.0发布 微慕小程序专业版V3.6-视频号扩展 微慕小程序专业版V3.5发布-小商店 微慕小程序开源版A标签优化说明 微慕WordPress小程序专业版v3.0发布 微慕WordPress小程序增强版v2.0发布 - xjb 微信小程序开放「分享到朋友圈」功能 微信小程序直播安装和开发指南 微慕小程序专业版支持WordPress自定义短代码 微慕WordPress小程序开源版v3.6发布 微信小程序订阅消息开发指南
让小程序支持代码高亮
xjb · 2021-08-13 · via 博客园 - xjb

对于编程技术类的小程序来说,在文章会有很多代码,那么代码高亮就是一个文章显得很出色的需求了。代码高亮功能的实现,主要是依靠小程序里对富文本内容的解析。对于富文本解析,微慕小程序专业版以前采用的开源的wxParse组件,但这个组件不支持代码高亮,且二次开发的难度较大。从微慕小程序专业版v3.8.0开始引入了mp-html组件,该组件提供对代码高亮显示的支持。

在小程序里通过mp-html实现代码高亮方式如下:

1.在小程序里引入mp-html

将mp-html的源码中对应平台的代码包(dist/platform)拷贝到 components 目录下,更名为 mp-html
在需要使用页面的 json 文件中添加如下代码:

2.在小程序里使用mp-html

1.在需要使用页面的 wxml 文件中添加

2.在需要使用页面的 js 文件中添加

3.在mp-html里引入代码高亮highlight插件

在mp-html的源代码里tools/config.js 中的 plugins 中启用highlight插件,设置完成后,可通过项目提供的命令行工具生成新的组件包。

编辑 plugins/highlight/config.js ,可以选择是否需要以下功能:

copyByLongPress 是否需要长按代码块时显示复制代码内容菜单
showLanguageName 是否在代码块右上角显示语言的名称
showLineNumber 是否在左侧显示行号

引入本插件后,html 中符合以下格式的 pre 将被高亮处理:

本插件的高亮功能依赖于prismjs,默认配置中仅支持 html、css、c-like、javascript 变成语言,如果需要更多语言下需要去prismjs网站下载对应的 prism.min.js 和 prism.css 并替换 plugins/highlight/ 目录下的文件。

目前微慕专业版小程序里代码高亮支持的编程语言是TIOBE排名前20的编程语言,比如C 、Java、Python 、C++、C Sharp、PHP等。

4.在wordpress里文章页面支持代码高亮

微慕小程序是通过wordpress的api构建的,因此如果在wordpress文章页面也同时支持代码高亮就完美了,做到这个其实比较简单,只要把mp-html目录下plugins/highlight/prism.min.js 和 prism.css 引入到wordpress的主题模板即可。

如果在wordpress的文章里代码高亮支持:显示行号,复制代码,显示语言,可以去prismjs下载相应的插件。
1.显示编程语言的prismjs插件:https://prismjs.com/plugins/show-language/
2.显示行号的prismjs插件:https://prismjs.com/plugins/line-numbers/
3.复制代码的prismjs插件:https://prismjs.com/plugins/copy-to-clipboard/

下载上述插件后,引入到wordpress主题里,在code 便签里加入data-prismjs-copy 和data-prismjs-copy-success,就可以支持上述三个功能了。

示例代码如下: