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

最好的转换方式是什么 ==Heading==<h2>Heading</h2>, , 或者 --bold--<b>bold</b>?这可以简单地使用正则表达式来完成吗?或者有人有一个简单的功能吗?

我是用 C# 编写的,但其他语言的示例可能也可以。

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

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

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

有帮助吗?

解决方案

这实际上并不是一个简单的问题,因为如果您要将内容显示给用户,您还需要清理输入以确保不会创建任何内容 跨站脚本 漏洞。

也就是说,您可能可以做一些非常简单的事情,正如您通过正则表达式替换最容易描述的那样。

例如

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

其他提示

还有一个 Perl模块 和一个 PHP项目 去做这个。两者的源代码对于开发您自己的解决方案可能很有用。

我使用 Markdown(与本网站使用的相同的轻量级标记语言)。对于 C#,有很多可用的源代码 这里. 。它完全支持 Markdown,尽管它似乎没有得到维护。但就目前而言,它运行得非常好,并且是免费开源的。

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

这实际上取决于您使用的 Wiki 语法,因为有几种不同的语法。显然,wiki 软件在某处具有此功能;如果您找不到可以为您执行此操作的软件包,您可以开始在 wiki 软件中查找相关代码。

或许 就是你所需要的。

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

对于你的 3 个标签来说可能有点大材小用,但如果它发展成一种成熟的标记语言,并且正则表达式开始看起来很可怕,那么你可能需要考虑 蚂蚁金服

正如 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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top