博客园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.

o_sh001.png

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

o_sh002.png

来取出来整理整理:

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说明
AppleScriptapplescriptshBrushAppleScript.js
ActionScript 3.0actionscript3 , as3shBrushAS3.js
Shellbash , shellshBrushBash.js
ColdFusioncoldfusion , cfshBrushColdFusion.js
Ccpp , cshBrushCpp.js
C#c# , c-sharp , csharpshBrushCSharp.js
CSScssshBrushCss.js
Delphidelphi , pascal , passhBrushDelphi.js
diff&patchdiff patchshBrushDiff.js用代码版本库时,遇到代码冲突,其语法就是这个.
Erlangerl , erlangshBrushErlang.js
GroovygroovyshBrushGroovy.js
JavajavashBrushJava.js
JavaFXjfx , javafxshBrushJavaFX.js
JavaScriptjs , jscript , javascriptshBrushJScript.js
Perlperl , pl , PerlshBrushPerl.js
PHPphpshBrushPhp.js
texttext , plainshBrushPlain.js就是普通文本.
Pythonpy , pythonshBrushPython.js
Rubyruby , rails , ror , rbshBrushRuby.js
SASS&SCSSsass , scssshBrushSass.js
ScalascalashBrushScala.js
SQLsqlshBrushSql.js
Visual Basicvb , vbnetshBrushVb.js
XMLxml , xhtml , xslt , htmlshBrushXml.js
Objective Cobjc , obj-cshBrushObjectiveC.js
F#f# f-sharp , fsharpshBrushFSharp.js
xpp , dynamics-xppshBrushDynamics.js
Rr , s , splusshBrushR.js
matlabmatlabshBrushMatlab.js
swiftswiftshBrushSwift.js
GOgo , golangshBrushGo.js

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

关于作者

转载于:https://www.cnblogs.com/qyf404/p/5019631.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值