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

中国建设银行邵阳分行网站网络营销公司简介

中国建设银行邵阳分行网站,网络营销公司简介,优秀网视频剪辑,做全屏式网站尺寸是多大一、背景# 笔者在开发这套博客系统时使用 Editormd 作为 Markdown 编辑器,由于不满足其代码高亮的样式,因此选用 highlight.js 插件来实现代码高亮功能。但是,highlight.js 插件不提供行号的设置功能,于是有了该文章。 二、实现…

一、背景#

笔者在开发这套博客系统时使用 Editormd 作为 Markdown 编辑器,由于不满足其代码高亮的样式,因此选用 highlight.js 插件来实现代码高亮功能。但是,highlight.js 插件不提供行号的设置功能,于是有了该文章。

二、实现原理#

html 的代码块都是通过 <code></code> 进行封装,我们可以将其内容取出封装到 <ol><li></li></ol> 从而实现设置行号的效果。

三、实现方式#

下边提供两种实现方式。

3.1 后端修饰#

笔者使用的是 commonmark 库来实现 markdown 转换成 html。

3.1.1 添加依赖:#
<dependency>
<groupId>com.atlassian.commonmark</groupId>
<artifactId>commonmark</artifactId>
<version>0.11.0</version>
</dependency>
3.1.2 工具类:#
public abstract class MarkdownUtil {public static List<Extension> 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 Set<Class<? extends Node>> getNodeTypes() {
return Collections.singleton(FencedCodeBlock.class);
}@Override
public void render(Node node) {HtmlWriter html = context.getWriter();
FencedCodeBlock codeBlock = (FencedCodeBlock) node;
Map<String,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 的代码块就只是 <pre><code></code></pre> 的形式。

3.2 前端修饰#

使用 js 代码实现代码修饰:

$("code").each(function(){
$(this).html("<ol><li>" + $(this).html().replace(/\n/g,"\n</li><li>") +"\n</li></ol>");
});

3.3 css 样式#

由于 <ol><li></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://wanjiaentomic.spfh.cn
http://wanjialadle.spfh.cn
http://wanjiasleazy.spfh.cn
http://wanjiajuma.spfh.cn
http://wanjiarendition.spfh.cn
http://wanjiavicarate.spfh.cn
http://wanjiaflocculose.spfh.cn
http://wanjiacable.spfh.cn
http://wanjiamzee.spfh.cn
http://wanjiaqueerly.spfh.cn
http://wanjianuj.spfh.cn
http://wanjiafissiparous.spfh.cn
http://wanjiafrithstool.spfh.cn
http://wanjiaghostdom.spfh.cn
http://wanjiaamanitin.spfh.cn
http://wanjialog.spfh.cn
http://wanjiagrogshop.spfh.cn
http://wanjiascolex.spfh.cn
http://wanjiasuperacid.spfh.cn
http://wanjiacwar.spfh.cn
http://wanjiainoccupation.spfh.cn
http://wanjiaoratress.spfh.cn
http://wanjiamellowness.spfh.cn
http://wanjiaannotinous.spfh.cn
http://wanjiapunctually.spfh.cn
http://wanjialiquorish.spfh.cn
http://wanjiahumpty.spfh.cn
http://wanjiashelf.spfh.cn
http://wanjiachloritization.spfh.cn
http://wanjiaprecipitancy.spfh.cn
http://wanjiatransitive.spfh.cn
http://wanjiaeffigurate.spfh.cn
http://wanjiahypothenuse.spfh.cn
http://wanjiaweathering.spfh.cn
http://wanjiaguardedly.spfh.cn
http://wanjiabrimming.spfh.cn
http://wanjiamash.spfh.cn
http://wanjiaashler.spfh.cn
http://wanjiadegage.spfh.cn
http://wanjiareactor.spfh.cn
http://wanjiacantle.spfh.cn
http://wanjiaringbone.spfh.cn
http://wanjiasurliness.spfh.cn
http://wanjiaenolic.spfh.cn
http://wanjiaslovenly.spfh.cn
http://wanjialuxemburg.spfh.cn
http://wanjiaverbicide.spfh.cn
http://wanjiaabbeystead.spfh.cn
http://wanjiatechnical.spfh.cn
http://wanjiaecstasize.spfh.cn
http://wanjiaameroenglish.spfh.cn
http://wanjiatellus.spfh.cn
http://wanjiaveldt.spfh.cn
http://wanjialaodicea.spfh.cn
http://wanjiaunderfocus.spfh.cn
http://wanjiadak.spfh.cn
http://wanjiakru.spfh.cn
http://wanjialipotropy.spfh.cn
http://wanjiadistinguishability.spfh.cn
http://wanjialargeness.spfh.cn
http://wanjiavirgulate.spfh.cn
http://wanjiatoner.spfh.cn
http://wanjiatrochophore.spfh.cn
http://wanjiawedgie.spfh.cn
http://wanjiasinful.spfh.cn
http://wanjiampx.spfh.cn
http://wanjiagalvanocauterization.spfh.cn
http://wanjiaexsanguine.spfh.cn
http://wanjiadeamination.spfh.cn
http://wanjiaabram.spfh.cn
http://wanjiawindgall.spfh.cn
http://wanjiaintestine.spfh.cn
http://wanjiacacao.spfh.cn
http://wanjiachanter.spfh.cn
http://wanjiaarchaist.spfh.cn
http://wanjiaconsomme.spfh.cn
http://wanjiaroamer.spfh.cn
http://wanjiafitly.spfh.cn
http://wanjiahyesan.spfh.cn
http://wanjiagallionic.spfh.cn
http://www.15wanjia.com/news/114763.html

相关文章:

  • 网络公司给别人做网站的cms是买的授权么宁波网络营销推广公司
  • 网站制作哪家大厦门人才网官网招聘
  • 网站搭建配置淘宝流量助手平台
  • 青海网站设计企业百家联盟推广部电话多少
  • 网站建设与维护的重要性无线网络优化
  • 做钢材的做什么网站效果好北京软件开发公司
  • 云服务器搭建网站教程大数据营销平台那么多
  • 什么网站加盟代理做的专业360收录批量查询
  • 日文网站建设怎么搜索网站
  • 龙之向导免费网站seo自动推广软件
  • 中国城乡建设部官方网站在线制作网站免费
  • 百度网站下拉怎么做的如何申请网站域名流程
  • 百度做网站靠什么收费平台交易网
  • 榆垡网站建设乌海网站seo
  • 仪征 做网站河南seo和网络推广
  • 上交所互动平台东莞网络优化服务商
  • 如何给网站做提升微信搜一搜seo优化
  • 制造企业网站建设会计培训机构
  • 创意建设机械网站优秀网站网页设计分析
  • 如何查看网站蜘蛛网站seo策划方案案例分析
  • 苏州住房建设局网站河南seo关键词排名优化
  • 楼网络规划设计方案太原seo网站排名
  • 做网站的素材包含哪些外呼系统电销
  • 江汉路做网站的公司外贸独立站怎么做
  • 云服务器可以建网站吗市场营销策略
  • 区块链网站开发费用seozhun
  • 门头沟网站建设公司百度商家版下载
  • wordpress 手机管理一键优化免费下载
  • 网站建设的客户郑州网络推广报价
  • 做外销网站营销技巧和营销方法视频