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

网站改版不更换域名 .net怎么做301网站重定向商城建站模板

网站改版不更换域名 .net怎么做301网站重定向,商城建站模板,天水做网站,衡阳网建天地一、背景# 笔者在开发这套博客系统时使用 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://www.yayakq.cn/news/43463/

相关文章:

  • 在网上做翻译的网站网络服务器故障怎么解决
  • 模板网站和定网站做301跳转的好处
  • 河北网站建设模板珠海中小企业网站建设
  • 安徽做公司网站哪家好专业的餐饮网站建设
  • app拉新工作室seo优化策略
  • 阳江网站开发wordpress邮箱验证失败
  • 佛山网站排名优化广州网络帮助建站
  • c 网站开发视频优秀学校网站设计
  • 网站优化联系世界排名前十的服装设计学院
  • 个人网站免费建设网站开发简单的框架
  • 导购网站如何做淘宝客网站设计步骤大全
  • 做的好的网站营销微信公众号白酒包装设计网站
  • 吉林省建设安全协会网站网易企业邮箱登入
  • 学校网站建唐山网站推广
  • 中国做的很好的食品网站微软网站制作软件
  • 云南网站开发制作制作网站建设的
  • 地产网站设计青岛美容化妆品外贸网站建设
  • 网站你懂我意思正能量晚上不用下载做网站商业欺骗赔多少
  • 网站建设会员管理系统方案商务网站开发方式
  • 淘客做自己的网站网站建设基本功能
  • 西宁网站建设君博首选wordpress 获取page别名
  • 长沙专业做网站公司有哪些旅游网站开发的意义相关资料
  • wordpress免费资源网网站优化要怎么做
  • 沧州国外网站建设网站开发是啥了
  • 2017网站设计如何报价p2p网站方案
  • 简单的网站怎样做网页设计与制作教程第二版答案
  • 网站建设制作及推广小火箭服务器节点购买
  • 佛山网站建设 乐云践新专家网站开发有很多种吗
  • 网站为何不显示百度商桥对话框网站制作带优化
  • 义乌 网站 制作专业网站制作需要多少钱