php - How would you go about auto-detecting Textile versus Markdown? - Stack Overflow

I'm considering supporting both Textile and Markdown on a current project. I would prefer not forc

I'm considering supporting both Textile and Markdown on a current project. I would prefer not forcing users to choose one or the other. Is there a way to auto-detect which the user is using? How would you go about this? I'd like to find / develop both a JavaScript and a PHP solution so I can provide live previews as well as process the user input on the server-side.

I'm considering supporting both Textile and Markdown on a current project. I would prefer not forcing users to choose one or the other. Is there a way to auto-detect which the user is using? How would you go about this? I'd like to find / develop both a JavaScript and a PHP solution so I can provide live previews as well as process the user input on the server-side.

Share Improve this question asked Sep 26, 2008 at 7:38 Andrew HedgesAndrew Hedges 21.8k16 gold badges70 silver badges79 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 7

Consider that users might only use one specific syntax element in a posting, so you'd have to check for everything. Looking for "h1." obviously only works if the user uses exactly that element.

It's pretty easy with things like headers, but consider that markdown formats *this* as <em>this</em> and Textile will convert that to <strong>this</strong> instead. So you'd have ambiguous syntax constructs that would yield different results in each language.

I'd suggest going with a user choice. Try to find out what syntax is generally preferred by your users (or you), offer an "use x instead of y" checkbox for those who want the other choice.

This really shouldn't be that hard. Markdown does not support the following syntax;

h1. Header

p. Paragraph

... so you simply scan for that to check if it is textile. Very simple regular expression to get you started (scans for lines beginning with hX. or p.) in PHP code:

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

You will probably be able to write your own regex to scan for Markdown.

Auto-detection, I don't know, both are based on "natural" typing.
Perhaps you can ask the user to choose a format, with a pair of radio-buttons or something.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745648636a4638123.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信