NancyWiki1.0.1更新 - 代码自动着色

简介:
NancyWiki是基于Google App Engine开发的,使用的语言是Python。Wiki标记语言采用的是Markdown,因为它简单,易用。 NancyWiki致力于打造用户真正想要的个人Wiki系统。多看书,多学习,多记笔记,就用NancyWiki!


看到有一些朋友下载并且使用NancyWiki,感到很欣慰!于是这个周末对NancyWiki进行了一些更新,希望使用NancyWiki的朋友之后能继续给我提意见,让NancyWiki越来越好用!

NancyWiki1.0.1版本更新如下:

1. 增加“索引”菜单链接。

2. 代码自动着色。(无需指定编程语言)

3. 修复代码中“_”被转义成“&# 95;” 的BUG。


代码自动着色

大部分代码着色工具,像syntaxhighlighter,使用时都需要指定代码所使用的语言。对于使用标准MarkDown来说,使用改变标准的方式去给一段代码着色是不太友好的,而且,用户使用起来也会比较麻烦。因为需要用户自己去写类似class="brush:python"之类的东西。于是,我想的是,在不改变MarkDown标准的情况下,不需要指定代码所使用的语言,就能对不同代码进行着色。

标准MarkDown贴代码的方式有两种:

1. 将代码放入``中,比如:

` printf( " Hello World " );`

2. ``的方式适用于单行,或是没有空白行的多行代码。如果需要贴多行代码,同时中间还有空白的行,可以使用四个空格或Tab。比如:

    int  a  =   1;

    a  =  a  +   1 ;

上述两种标记方法,都会被自动转化为以下的格式:

< pre >< code > xxx code> pre> 或 <code>xxx code>

知道转化原则后,我们再来突破一下着色难点,即,不需要指定代码语言的情况下,对代码进行着色。所幸,prettify 正是我所要的,它只需要在任何代码处,使用如下的格式就能进行着色:

< pre  class = " prettyprint " > xxx pre>


< cod class = " prettyprint " > xxx code>

嗯,和MarkDown转化的代码只差一步,就是class="prettyprint",我需要自动加上这个class。这时候,jquery就派上用场了。我需要给每个code节点自动加上class属性:

< script  type ="text/javascript" >
        $(
' code ' ).addClass( ' prettyprint ' );  
</ script >

 

于是,效果就出来了。你还是像往常一样贴代码,而NancyWiki会自动根据你的代码语言,进行着色。下面是效果:

 

原始的着色前的代码(代码行每行前面4个空格):

复制代码
C#代码示例:

    [TestMethod]
    
public   void  Test_ExecuteCommands()
    {
        Plateau plateau  =   new  Plateau( 5 5 );
        var roverFactory  =   new  NASARoverFactory();
        Rover rover1  =  roverFactory.Create();
        rover1.Deploy( 1 2 " N " , plateau);

        rover1.ExecuteCommands( " LMLMLMLMM " );
            
        Assert.AreEqual( " 1 3 N " , rover1.ReportState());

        Rover rover2  =  roverFactory.Create();
        rover2.Deploy( 3 3 " E " , plateau);

        rover2.ExecuteCommands( " MMRMMRMRRM " );
            
        Assert.AreEqual( " 5 1 E " , rover2.ReportState());
    }
复制代码

 

着色后的代码:


还等什么,下载NancyWiki1.0.1试试吧:

下载 : http://nancywiki.googlecode.com/files/nancywiki1.0.1.zip 

主页:http://nancywiki.googlecode.com

演示:http://wiki.coderzh.com

 

 

本文转自CoderZh博客园博客,原文链接:http://www.cnblogs.com/coderzh/archive/2010/11/08/nancywiki1_0_1.html,如需转载请自行联系原作者

相关文章
|
22天前
【word】论文、报告:①插入图表题注,交叉引用②快速插入图表目录③删改后一键更新
【word】论文、报告:①插入图表题注,交叉引用②快速插入图表目录③删改后一键更新
282 0
|
22天前
|
Web App开发 移动开发 监控
mPaaS问题之开始配置是灰色的如何解决
mPaaS配置是指在mPaaS平台上对移动应用进行的各项设置,以支持应用的定制化和优化运行;本合集将提供mPaaS配置的操作指南和最佳实践,助力开发者高效管理和调整移动应用的设置。
|
22天前
|
JavaScript 前端开发 Java
若依框架---选中某值 其他值自动回调填充
若依框架---选中某值 其他值自动回调填充
83 0
|
9月前
|
前端开发 开发者
|
11月前
|
前端开发 JavaScript
echarts tooltip设置正常却无法显示被遮挡设置层级堆叠顺序的问题解决方案
echarts tooltip设置正常却无法显示被遮挡设置层级堆叠顺序的问题解决方案
283 0
|
人工智能 JavaScript IDE
自动写代码?别闹了!
这几天,GitHub 上有个很火的插件在抖音刷屏了——Copilot。 这个神器有啥用呢?简单来讲,它就是一款由人工智能打造的编程辅助工具。 我们来看看它有啥用。
323 0
|
缓存
如何写一个Compose状态页组件 (修正篇)
在上个月前,我写了这样的一篇文章,开源 | 如何写一个好用的 JetPack Compose 状态页组件 。里面讲了如何去写一个 compose 状态页组件,结果这反而是错误的开始,本篇就是对上述的一个修正及反思过程。
225 0
如何写一个Compose状态页组件 (修正篇)
|
计算机视觉
Qt实用技巧:Qt设计器中QIcon的缩放(qss的放大和QIcon自动缩小(无法自动放大))
Qt实用技巧:Qt设计器中QIcon的缩放(qss的放大和QIcon自动缩小(无法自动放大))
Qt实用技巧:Qt设计器中QIcon的缩放(qss的放大和QIcon自动缩小(无法自动放大))
IDEA 重复代码的黄色波浪线取消设置
IDEA 重复代码的黄色波浪线取消设置
522 0
|
计算机视觉
Qt实用技巧:代码中QIcon缩放(QPixmap的手动放大和QIcon自动缩小)
Qt实用技巧:代码中QIcon缩放(QPixmap的手动放大和QIcon自动缩小)
Qt实用技巧:代码中QIcon缩放(QPixmap的手动放大和QIcon自动缩小)

热门文章

最新文章