Как бы вы поступили с автоматическим определением текстиля по сравнению с уценкой?


Я рассматриваю возможность поддержки обоих Текстиль и Уценка по текущему проекту. Я бы предпочел не заставлять пользователей выбирать то или иное. Есть ли способ автоматически определить, какой пользователь использует? Как бы вы поступили по этому поводу? Я хотел бы найти/разработать решение как на JavaScript, так и на PHP, чтобы я мог предоставлять предварительные просмотры в реальном времени, а также обрабатывать вводимые пользователем данные на стороне сервера.

Author: Andrew Hedges, 2008-09-26

3 answers

Учтите, что пользователи могут использовать в публикации только один конкретный элемент синтаксиса, поэтому вам придется проверять все. Поиск "h1". очевидно, работает только в том случае, если пользователь использует именно этот элемент.

Это довольно просто с такими вещами, как заголовки, но учтите, что форматы уценки *this* как <em>this</em> и Textile преобразуют это в <strong>this</strong> вместо этого. Таким образом, у вас будут неоднозначные синтаксические конструкции, которые будут давать разные результаты на каждом языке.

Я бы предложил пойти с пользователем выбор. Попытайтесь выяснить, какой синтаксис обычно предпочитают ваши пользователи (или вы), установите флажок "использовать x вместо y" для тех, кто хочет выбрать другой вариант.

 6
Author: Lasar, 2008-09-26 09:55:54

Это действительно не должно быть так сложно. Markdown не поддерживает следующий синтаксис;

h1. Header

p. Paragraph

... поэтому вы просто сканируете это, чтобы проверить, является ли это текстилем. Очень простое регулярное выражение для начала работы (сканирует строки, начинающиеся с hX. или п.) в коде PHP:

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

Вероятно, вы сможете написать свое собственное регулярное выражение для сканирования на предмет уценки.

 3
Author: Vegard Larsen, 2008-09-26 09:38:22

Автоматическое обнаружение, я не знаю, оба основаны на "естественном" наборе текста.
Возможно, вы можете попросить пользователя выбрать формат с помощью пары переключателей или чего-то в этом роде.

 1
Author: PhiLho, 2008-09-26 07:57:31