当前位置: 首页 > news >正文

专业集团门户网站建设企业培训公司

专业集团门户网站建设企业,培训公司,工业产品设计就业,生产模板的厂家一、背景# 笔者在开发这套博客系统时使用 Editormd 作为 Markdown 编辑器#xff0c;由于不满足其代码高亮的样式#xff0c;因此选用 highlight.js 插件来实现代码高亮功能。但是#xff0c;highlight.js 插件不提供行号的设置功能#xff0c;于是有了该文章。 二、实现…一、背景# 笔者在开发这套博客系统时使用 Editormd 作为 Markdown 编辑器由于不满足其代码高亮的样式因此选用 highlight.js 插件来实现代码高亮功能。但是highlight.js 插件不提供行号的设置功能于是有了该文章。 二、实现原理# html 的代码块都是通过 code/code 进行封装我们可以将其内容取出封装到 olli/li/ol 从而实现设置行号的效果。 三、实现方式# 下边提供两种实现方式。 3.1 后端修饰# 笔者使用的是 commonmark 库来实现 markdown 转换成 html。 3.1.1 添加依赖# dependency groupIdcom.atlassian.commonmark/groupId artifactIdcommonmark/artifactId version0.11.0/version /dependency 3.1.2 工具类# public abstract class MarkdownUtil {public static ListExtension extensions Arrays.asList(TablesExtension.create()); private static final Parser parser Parser.builder().extensions(extensions).build(); private static final HtmlRenderer renderer HtmlRenderer.builder().extensions(extensions) // 修饰代码块内容 .nodeRendererFactory(context - new NodeRenderer() {Override public SetClass? extends Node getNodeTypes() { return Collections.singleton(FencedCodeBlock.class); }Override public void render(Node node) {HtmlWriter html context.getWriter(); FencedCodeBlock codeBlock (FencedCodeBlock) node; MapString,String attrs new HashMap(); if (!StringUtils.isEmpty(codeBlock.getInfo())) { attrs.put(class,language- codeBlock.getInfo()); } html.line(); html.tag(pre); html.tag(code,attrs); html.tag(ol); String data codeBlock.getLiteral(); String[] split data.split(\n); for (String s : split) { html.tag(li); html.text(s \n); html.tag(/li); } html.tag(/ol); html.tag(/code); html.tag(/pre); html.line();} }).build();/** * markdown 转 html * param markdown * return */ public static String md2html(String markdown) { Node document parser.parse(markdown); String result renderer.render(document); return result; } } 如果不使用上边的 NodeRendererFactory 对 html 进行修饰输出的 html 的代码块就只是 precode/code/pre 的形式。 3.2 前端修饰# 使用 js 代码实现代码修饰 $(code).each(function(){ $(this).html(olli $(this).html().replace(/\n/g,\n/lili) \n/li/ol); }); 3.3 css 样式# 由于 olli/li/ol 默认行号效果不友好我们进行样式设置。 .hljs { border: 0; font-size: 12px; display: block; padding: 1px; margin: 0; width: 100%; font-weight: 200; color: #333; white-space: pre-wrap } .hljs ol { list-style: decimal; margin: 0px 0px 0 40px !important; padding: 0px; } .hljs ol li { list-style: decimal-leading-zero; border-left: 1px solid #ddd !important; padding: 5px!important; margin: 0 !important; white-space: pre; }
http://www.hkea.cn/news/14340085/

相关文章:

  • 做网站片头的软件网片
  • 嘉兴做网站优化价格wordpress 判断分类
  • 网站建设案例方案电商网站上信息资源的特点包括
  • 网上有做衣服的网站有哪些毕业设计商城网站开发
  • 大连华南网站制作公司盐城建设公司网站
  • 网站微信推广怎么做个人域名注册流程
  • 专注网站建设怎么样如何建设一个专业的网站
  • 同时做几个网站的seo办个网站需要多少钱
  • 钓鱼网站网站怎么做哈尔滨seo优化服务商
  • 为什么网站需要备案海外网站建设公司
  • 个人网站 用什么域名重网站建设
  • 学生想搭建网站怎么做分类目录 代码 wordpress
  • 医药网站建设方案wordpress媒体
  • 郑州淘宝网站推广 汉狮网络个人网站包含哪些内容
  • 网站建设报价方案对比安卓系统是谁开发的
  • 免费网站建设企业沈阳网站优化怎么做
  • 职工之家网站开发新闻稿天津建设工程信息网咨询电话
  • 开源的网站系统临沂建站平台
  • wordpress站点统计小工具nginx设置wordpress伪静态
  • 网站设计制作 建网站建设网站用户名是什么
  • 韶关营销网站开发联系方式WordPress整站搬家插件
  • 哈尔滨网站建设哪家有好看影视大全免费下载安装
  • 南京网站开发南京乐识专心企业网站类型主要包括
  • 医院网站建设的重要性wordpress开发教程
  • 郑州网站建设流程wordpress 有广告插件
  • 做网站都是花钱吗东莞百度网络推广
  • 网站建设的基础常识铜陵做网站的公司
  • iis做外网站点保定关键词排名系统
  • 哪个网站免费h5模板多.net core 做网站
  • vs2015 asp网站开发打开这个网站