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

时间:2020-03-05 18:48:16  来源:igfitidea点击:

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

将" == Heading =="转换为" <h2> Heading </ h2>"或者将" --bold--"转换为" <b> bold </ b>"的最佳方法是什么?可以使用Regex轻松完成此操作,还是有人可以使用简单的功能?

我正在用C#编写此代码,但其他语言的示例也可能会起作用。

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

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

.NET使用$ 1表示法代替其他语言中使用的\ 1表示法。

解决方案

回答

这并不是一个简单的问题,因为如果我们要向用户显示内容,则还需要清理输入内容以确保不创建任何跨站点脚本漏洞。

也就是说,使用正则表达式替换最容易描述,我们可能会做一些非常简单的事情。

例如

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

回答

我使用Markdown(此网站上使用的轻量级标记语言)。对于Cthere,这里有很多很好的源代码。它完全支持Markdown,尽管它似乎没有得到维护。但是目前它确实运行良好,并且是免费的开放源代码。

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

回答

这实际上取决于我们使用的Wiki语法,因为有几种不同的语法。显然,Wiki软件在某处具有此功能。如果找不到适合软件包,则可以开始在Wiki软件中寻找相关代码。

回答

3个标记可能过大了,但是如果它变成一种成熟的标记语言,并且正则表达式开始变得令人恐惧,那么我们​​可能要考虑使用antlr

回答

还有一个perl模块和一个php项目可以做到这一点。二者之一的源代码在开发我们自己的解决方案时可能很有用。