如何自动检测Textile和Markdown?

4

我正在考虑在当前项目中同时支持TextileMarkdown。我不想强迫用户选择其中之一。有没有办法自动检测用户使用的是哪个?你会如何处理这个问题?我希望找到/开发一个JavaScript和PHP解决方案,以便可以提供实时预览并在服务器端处理用户输入。

3个回答

7
考虑到用户可能只在帖子中使用一种特定的语法元素,因此您需要检查所有内容。如果用户使用的恰好是“h1.”,那么查找“h1.”显然很容易。
对于标题之类的东西来说,这很容易,但请注意,Markdown将*this*格式化为<em>this</em>,而Textile会将其转换为<strong>this</strong>。因此,在每种语言中,您都将得到不同的结果,这是模棱两可的语法结构。
我建议采用用户选择。尝试了解您的用户(或您)通常更喜欢哪种语法,并为那些想要其他选择的人提供“使用x代替y”的复选框。

3

这其实并不难。Markdown不支持以下语法;

h1. Header

p. Paragraph

...所以你只需要扫描一下,检查它是否为纺织品。以下是一个非常简单的正则表达式(用于扫描以hX.或p.开头的行)的PHP代码:

if (preg_match('/^(p|h[1-6])\. /m', $subject)) 
{
    // Successful match
} else 
{
    // Match attempt failed
}

你可能能够编写自己的正则表达式来扫描Markdown。


1

自动检测,我不知道,两者都基于“自然”输入。
也许您可以要求用户选择一种格式,使用一对单选按钮或其他方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接