热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

博客园markdown代码块支持的语言

缘起今年发现博客园支持markdown语法,就开始用markdown些博客了.markdown写文章最大的好处就是不用局限在浏览器里写了,有个记事本就可以开始了.markdown里对代码块的引用语法是

缘起

今年发现博客园支持markdown语法,就开始用markdown些博客了.markdown写文章最大的好处就是不用局限在浏览器里写了,有个记事本就可以开始了.

markdown里对代码块的引用语法是三个撇[ ``` ],在其后可增加代码名称,比如java,js等标记该部分代码的类型.之后在页面展现的时候就可以高亮显示关键字了.

比如下面这段代码:

```java

package com.qyf404.learn.maven;

import org.junit.After;

import org.junit.Assert;

import org.junit.Before;

import org.junit.Test;

public class AppTest {

private App app;

@Before

public void setUp() {app = new App();}

@Test

public void testAdd() throws InterruptedException {

int a = 1;

int b = 2;

int result = app.add(a, b);

Assert.assertEquals(a + b, result);

}

@After

public void tearDown() throws Exception {

}

}

```

在页面展现成了这样:

package com.qyf404.learn.maven;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class AppTest {
private App app;
@Before
public void setUp() {
app = new App();
}
@Test
public void testAdd() throws InterruptedException {
int a = 1;
int b = 2;
int result = app.add(a, b);
Assert.assertEquals(a + b, result);
}
@After
public void tearDown() throws Exception {
}
}

后面让我们扒一扒页面源码探一探这其中的缘由.

其根本原因是博客园页面里引入了一段js,该段js可以解析markdown里的代码块,并高亮显示.

扒一扒页面源码

在页面源码中我们发现有个js很特别 http://www.cnblogs.com//bundles/blog-common.js?v=CLLiFNNgL6CohO3Olq2i7r9tPyHtCoryr0KngxdwUm41.

让我们在里面搜一搜java,就发现这么一段代码

来取出来整理整理:

function cb_CodeHighlight() {
var n=!1, t = $("pre");
(t.length && $.each(t, function() {
var t = $(this).attr("class");
t && t.indexOf("brush:") >= 0 && (n=!0, t.indexOf("gutter:true;") >= 0 && $(this).parent().addClass("sh-gutter"))
}), n) && (SyntaxHighlighter.autoloader.apply(null, shBushPathPrepare("applescript\t\t\t @shBrushAppleScript.js", "actionscript3 as3\t\t@shBrushAS3.js", "bash shell\t\t\t\t@shBrushBash.js", "coldfusion cf\t\t\t@shBrushColdFusion.js", "cpp c\t\t\t\t\t@shBrushCpp.js", "c# c-sharp csharp\t\t@shBrushCSharp.js", "css\t\t\t\t\t @shBrushCss.js", "delphi pascal pas\t\t@shBrushDelphi.js", "diff patch \t\t@shBrushDiff.js", "erl erlang\t\t\t\t@shBrushErlang.js", "groovy\t\t\t\t\t@shBrushGroovy.js", "java\t\t\t\t\t @shBrushJava.js", "jfx javafx\t\t\t\t@shBrushJavaFX.js", "js jscript Javascript\t@shBrushJScript.js", "perl pl Perl\t\t\t\t@shBrushPerl.js", "php\t\t\t\t\t @shBrushPhp.js", "text plain\t\t\t\t@shBrushPlain.js", "py python\t\t\t\t@shBrushPython.js", "ruby rails ror rb\t\t@shBrushRuby.js", "sass scss\t\t\t\t@shBrushSass.js", "scala\t\t\t\t\t@shBrushScala.js", "sql\t\t\t\t\t @shBrushSql.js", "vb vbnet\t\t\t\t @shBrushVb.js", "xml xhtml xslt html\t @shBrushXml.js?id=20150508", "objc obj-c @shBrushObjectiveC.js", "f# f-sharp fsharp @shBrushFSharp.js", "xpp dynamics-xpp @shBrushDynamics.js", "r s splus @shBrushR.js", "matlab @shBrushMatlab.js", "swift @shBrushSwift.js", "go golang @shBrushGo.js")), SyntaxHighlighter.config.strings.expandSource = "+ View Code", SyntaxHighlighter.vars.discoveredBrushes = null, SyntaxHighlighter.all())
}

原来博客园用了这个SyntaxHighlighter框架来作代码高亮显示啊.

支持高亮显示的语言

让我们现在整理个表格,看看博客园的markdown到底支持多少种语言高亮显示.

名称 关键字 调用的js 说明
AppleScript applescript shBrushAppleScript.js
ActionScript 3.0 actionscript3 , as3 shBrushAS3.js
Shell bash , shell shBrushBash.js
ColdFusion coldfusion , cf shBrushColdFusion.js
C cpp , c shBrushCpp.js
C# c# , c-sharp , csharp shBrushCSharp.js
CSS css shBrushCss.js
Delphi delphi , pascal , pas shBrushDelphi.js
diff&patch diff patch shBrushDiff.js 用代码版本库时,遇到代码冲突,其语法就是这个.
Erlang erl , erlang shBrushErlang.js
Groovy groovy shBrushGroovy.js
Java java shBrushJava.js
JavaFX jfx , javafx shBrushJavaFX.js
Javascript js , jscript , Javascript shBrushJScript.js
Perl perl , pl , Perl shBrushPerl.js
PHP php shBrushPhp.js
text text , plain shBrushPlain.js 就是普通文本.
Python py , python shBrushPython.js
Ruby ruby , rails , ror , rb shBrushRuby.js
SASS&SCSS sass , scss shBrushSass.js
Scala scala shBrushScala.js
SQL sql shBrushSql.js
Visual Basic vb , vbnet shBrushVb.js
XML xml , xhtml , xslt , html shBrushXml.js
Objective C objc , obj-c shBrushObjectiveC.js
F# f# f-sharp , fsharp shBrushFSharp.js
xpp , dynamics-xpp shBrushDynamics.js
R r , s , splus shBrushR.js
matlab matlab shBrushMatlab.js
swift swift shBrushSwift.js
GO go , golang shBrushGo.js

整理完又发现好几个没听说过的语言.里面有个xpp,我没查出来是个啥语言,如果谁知道烦劳留言告知.

关于作者


推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
author-avatar
小歆歆
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有