Подтвердить что ты не робот

Вики или синтаксис типа Markdown для простых форм?

Есть ли простой язык, похожий на Markdown или один из Wiki Markups, который преобразуется в элементы формы HTML?

Например:

name* = ___________
sex = (x) Male () Female
phones = [] Android [x] iPhone [] Blackberry
city = {BOS, (SFO), NYC}

Будет преобразован в:

<label>Name (required):</label><input type="text" name="name" id="name"/>
<label>Sex:</label><input type="radio" name="sex" value="Male" checked="checked"/> <input type="radio" name="sex" value="Female"/>
<label>Phones:</label><input type="check" name="phones" value="Android"/> <input type="check" name="phones" value="iPhone" checked="checked"/> <input type="check" name="phones" value="Blackberry"/>
<label>City:</label> 
<select name="city">
  <option value="BOS">BOS</option>
  <option value="SFO" selected="selected">SFO</option>
  <option value="NYC">NYC</option>
</select>

Было бы просто создать его самостоятельно, но если какая-либо существующая библиотека/язык его уже поддерживает, это поможет мне немного времени в реализации, документации и обслуживании. Было бы предпочтительнее, если бы библиотека работала либо на Java (поэтому мы могли запускать ее на стороне сервера), либо JavaScript (чтобы мы могли запускать ее на стороне клиента).

Обновление. Я создал проект github для этого и maleldil реализовал его. Не стесняйтесь попробуйте!

4b9b3361

Ответ 1

Мне не удалось найти библиотеку, которая соответствует моим потребностям, поэтому я разветкил проект WMD (который использует SO для подсветки синтаксиса Markdown) и поместил проект в на Github. У меня не было времени его реализовать, но maleldil любезно сделал это сам, поэтому попробуйте!

Ответ 2

Не ответ.

Я думаю, что он должен читать

sex =() Мужчина() Женщина

чтобы получить переключатели, потому что

sex = [] Мужчина [] Женский

приведет к появлению флажков (что означает, что вы можете быть как мужскими, так и женскими)

Если вы собираетесь его реализовать. Кроме того, вам понадобится один вопрос в строке, чтобы вы знали, что нужно группировать, иначе любые два() будут связаны.

Я также предлагаю вам не пытаться помещать значения внутри() или [], так как проще их искать без текста внутри. Но вы можете также добавить() как выбранный и [], как отмечено. Если вы используете этот tho, вы не можете получить этот поток символов в вопросах.

Просто мои 2 цента в случае, если вы собираетесь его реализовать.

Ответ 3

Я понял, что проблема в https://github.com/bradgessler/formdown с немного другим синтаксисом:

Hi _________(Name)

How are you doing today? () Good () Ok () Bad

Could I have your email address? [email protected](Email)

Write a few lines that describe your mood: ____________///(Mood)

[ Submit your feelings ]

Это упакован как драгоценный камень formdown и может использоваться в Rails для визуализации форм через расширение файла .fmd (например, app/views/users/edit.fmd.html).

Ответ 5

<< GET "/post.php";
    label*: __|n="inputname"|v|p|i|c|l|disabled|readonly; 
    password: *|n|v|p|i|c;
    select: { 'multi word value'= 'Option', 'value2'='Option 2', !'value1'='Option 3' }&|n|i|c;
    (!)|n|v :label for previous radio; ()|n|v :label for previous;
    label for checkboxes: [!]|n|v; []|n|v;
    Message:____|rows|cols|c|p|v;
    File: ^|size||types|i|c
    @submit|v="Send Message";
    @reset|v="Reset Form";
>>
  • << и >> являются начальными и конечными знаками формы
  • "this is a label":
  • * сразу после метки для обязательных полей
  • __ - текстовый ввод
  • | атрибуты разделяются с помощью труб (n="name of the field"|c="class of the field")
  • ; предназначен для разделения поля.
  • {} select очень похож на ассоциативный массив.
  • ! для отмеченных/выбранных значений
  • :"label that comes after the value" для радиостанций и флажков
  • ____ - textarea
  • ^ для ввода файлов (знак вверх для загрузки)
  • @submit для кнопок

.. теперь только если кто-то выполнил это.:)

Ответ 6

Я работаю над решением PHP, которое расширяет Michelf Markdown. В настоящее время поддерживаются базовые элементы <input> и <textarea>. Он использует этот синтаксис:

?{type}("label" "value" "placeholder" rows*cols){.class}

Где type может быть типом ввода (<input type="...") или textarea, что приводит к текстовой области.

Смотрите https://github.com/rbnvrw/markdown-forms для кода и не стесняйтесь вносить свой вклад.