将Wiki标记转换为HTML的最简单方法是什么?

时间:2008-09-05 15:04:17

标签: html wiki markup

我正在构建一个需要非常基本的标记功能的网站。我不能使用任何第三方插件,所以我只需要一种简单的方法将标记转换为HTML。我可能总共有3个标签。

==Heading==转换为<h2>Heading</h2>--bold--转换为<b>bold</b>的最佳方式是什么?这可以简单地用Regex完成,还是有人有一个简单的功能?

我是用C#编写的,但其他语言的例子可能会有效。

跟进: 这是我网站的一小部分,我喜欢使用简单的Regex替换的简单性。我使用以下代码在C#中完成了这项工作:

string html = Regex.Replace("==This will be inside h2==", "==([^=]*)==", "< h2>$1< /h2>")

.NET使用 $ 1 表示法,而不是其他语言中使用的 \ 1 表示法。

7 个答案:

答案 0 :(得分:6)

还有perl modulephp project来执行此操作。这些源代码可能对开发自己的解决方案很有用。

答案 1 :(得分:4)

这不是一个简单的问题,因为如果您要向用户显示内容,您还需要清理输入以确保不会创建任何cross site scripting个漏洞。

也就是说,你可以做一些非常简单的事情,因为你最容易用正则表达式替换来描述。

例如

replace the pattern ==([^=]*)== with <h2>\1</h2>

答案 2 :(得分:1)

我使用Markdown(与此网站上使用的相同的轻量级标记语言)。对于C#,有一些非常好的源代码here。它完全支持Markdown,虽然它似乎没有得到维护。但目前它的效果非常好,它是免费的开源。

最好的部分是,如果您在项目中包含此源,那么所有工作都已完成。它非常小;基本上是一个方法调用将一大块文本转换为HTML。

答案 3 :(得分:1)

这实际上取决于您使用的Wiki语法,因为有几种不同的语法。显然wiki软件在某个地方有这个功能;如果找不到能够为您完成此任务的软件包,您可以开始在您的wiki软件中查找相关代码。

答案 4 :(得分:1)

也许this是你需要的。

  

此页面是各种替代MediaWiki解析器(即MediaWiki本身以外的程序和项目)的链接,描述和状态报告的汇编,它们能够或意图将MediaWiki的文本标记语法转换为其他内容。

答案 5 :(得分:0)

你的3个标签可能有点过分,但如果它成为一个完全成熟的标记语言,并且正则表达式开始变得可怕,那么你可能要考虑antlr

答案 6 :(得分:0)

正如Joseph所说,Markdown是解决html问题的最佳解决方案。

MarkdownSharp是轻量级的,易于使用且经过充分测试,因为它是stackoverflow实现!

new Markdown().Transform("**markdown text**");

http://blog.stackoverflow.com/2009/12/introducing-markdownsharp/

有关Markdown语法的更多信息 - http://en.wikipedia.org/wiki/Markdown