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<pre class="prettyprint">xxx<code class="prettyprint">xxx<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